diff --git a/.shuttle-go.json b/.shuttle-go.json index ad78480..c61a421 100644 --- a/.shuttle-go.json +++ b/.shuttle-go.json @@ -10,6 +10,7 @@ "F5": "a", "F6": "s", "F7": "i", + "B1": "hebrew_finalnun", "JogL": "parenleft", "JogR": "parenright", "SlowJogL": "comma", @@ -22,13 +23,13 @@ "S-2": "W", "S-1": "Q", "S0": "k", - "S1": "KP_1", - "S2": "KP_2", + "S1": "Z", + "S2": "X", "S3": "l", - "S4": "KP_3", - "S5": "KP_4", - "S6": "KP_5", - "S7": "KP_6" + "S4": "C", + "S5": "V", + "S6": "B", + "S7": "N" } } ] diff --git a/README.md b/README.md index 4e1073f..d6426f1 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,15 @@ Linux driver for Contour Design Shuttle Pro V2 My goal is to set it up for the Lightworks Non-Linear Editor. +This program supports having modifiers for your Shuttle Pro V2 +buttons. Avoid Lightworks key bindings with modifiers however. Capital +letters are great as they cannot be combined, and are more direct and +they are less likely to conflict with your other bindings and +Lightworks recognizes them. All key names used here will work: +http://www.tcl.tk/man/tcl8.4/TkCmd/keysyms.htm - +Right now, you need to install `xdotool` from your package +repositories. Eventually, we'll get rid of this dependency. Buttons layout on the Contour Design Shuttle Pro v2: @@ -24,30 +31,11 @@ Buttons layout on the Contour Design Shuttle Pro v2: B2 B3 B1 B4 +You can also use `SlowJogL` and `SlowJogR`, to use Frame nudge for example. -See +## Disable the native mouse pointer - -TODO ----- - -* Fix up timings, make sure we properly support shortcuts with - Ctrl+Shift and it doesn't clog the program. Perhaps optimize and - keep certain keys pressed, until not needed anymore. Especially - using the Jog and Shuttle. - -* Make sure we have a solution to ignore the device as a generic HID - under Ubuntu. We can't have mouse clicks on top of our bindings! - -* Check udev, DISPLAY=:0.0 to start ? - * Retry ? Check the error message going out. - -* Try the xdotool with the latest bindings, XTest-based. - * Use xgb's `xtest` package and send the FakeInput directly there.. should work - a lot better. - - -Disable the native mouse pointer provided by the Shuttle with: +The Shuttle acts as a mouse when you plug it into Ubuntu. Disable it with: $ xinput --list "Virtual core pointer" id=0 [XPointer] @@ -59,3 +47,18 @@ Disable the native mouse pointer provided by the Shuttle with: $ xinput set-int-prop 2 "Device Enabled" 8 0 Ref: https://unix.stackexchange.com/questions/91075/how-to-disable-keyboard + + + +TODO +---- + +* Don't require `xdotool` + * Use xgb's `xtest` package and send the FakeInput directly there.. should work + a lot better. + * Document in here all the keys that are work and their proper syntax. Add a few helpers. + +* Watch the configuration file, and reload on change. + +* Check udev, DISPLAY=:0.0 to start ? + * Retry ? Check the error message going out. diff --git a/mapper.go b/mapper.go index cc1cc6c..1cabfc2 100644 --- a/mapper.go +++ b/mapper.go @@ -161,6 +161,8 @@ func (m *Mapper) executeBinding(binding *deviceBinding) error { holdButtons := binding.holdButtons pressButton := binding.pressButton + time.Sleep(100 * time.Millisecond) + //xtest.FakeInputChecked(m.watcher.conn, m.watcher.rootWin) fmt.Println("xdotool key --clearmodifiers", binding.original) return exec.Command("xdotool", "key", "--clearmodifiers", binding.original).Run()