GNU/Linux Information

When I first got the Sensel Morph (Nov 2017), I plugged it in and it didn’t work with GIMP immediately so I set it aside to revisit when I had more time. Well, I finally have more time (Jan 2018). I don’t see many posts related to GNU/Linux support, so I thought I’d post my findings here.

GNU/Linux flavor I’m using is openSUSE Leap 42.3, kernel 4.4.104-39-default

I have the Sensel Morph model S0001 with Keyboard, Art and Video Editing overlays

The first crucial step is to update the firmware on the Morph. Unfortunately, as of this writing, the Sensel App doesn’t run on GNU/Linux. I used a MacBook Air to download and install the app. The app is pretty straight-forward to operate. It became apparent that I needed to tell the Morph which overlays I had and with what settings I wanted the overlays to have. After doing the firmware update and defining the overlays, the Morph worked on my GNU/Linux boxen.

Keyboard - no changes, works as expected, though the tactile feel is no match for my mechanical keyboard.

Art - I redefined the sliders and buttons to have some of the shortcuts in GIMP. For example, the top-left “.” is Undo (ctrl-z) and the top-left “…” is Redo (ctrl-y).

Video Editing - I redefined a few buttons to work with Kdenlive, but I’ll need to revisit this.

This is a “dmesg” dump of the Sensel Morph mounted:

[ 7694.914813] usb 4-1.1: USB disconnect, device number 12
[ 7695.168694] cdc_acm 4-1.1:1.0: ttyACM0: USB ACM device
[ 7699.300697] usb 4-1.1: new full-speed USB device number 13 using ehci-pci
[ 7699.372621] usb 4-1.1: device descriptor read/64, error -32
[ 7699.548618] usb 4-1.1: device descriptor read/64, error -32
[ 7699.724632] usb 4-1.1: new full-speed USB device number 14 using ehci-pci
[ 7700.012736] usb 4-1.1: device descriptor read/64, error -71
[ 7700.219216] usb 4-1.1: New USB device found, idVendor=2c2f, idProduct=0003
[ 7700.219219] usb 4-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 7700.219221] usb 4-1.1: Product: Sensel Morph
[ 7700.219223] usb 4-1.1: Manufacturer: Sensel
[ 7700.219224] usb 4-1.1: SerialNumber: 204838384E33
[ 7700.219888] cdc_acm 4-1.1:1.0: ttyACM0: USB ACM device
[ 7700.222451] input: Sensel Sensel Morph as /devices/pci0000:00/0000:00:1d.7/usb4/4-1/4-1.1/4-1.1:1.2/0003:2C2F:0003.0013/input/input39
[ 7700.277198] hid-generic 0003:2C2F:0003.0013: input,hidraw3: USB HID v1.00 Mouse [Sensel Sensel Morph] on usb-0000:00:1d.7-1.1/input2
[ 7700.281977] input: Sensel Sensel Morph Pen as /devices/pci0000:00/0000:00:1d.7/usb4/4-1/4-1.1/4-1.1:1.4/0003:2C2F:0003.0014/input/input40
[ 7700.282188] input: Sensel Sensel Morph as /devices/pci0000:00/0000:00:1d.7/usb4/4-1/4-1.1/4-1.1:1.4/0003:2C2F:0003.0014/input/input41
[ 7700.282467] hid-multitouch 0003:2C2F:0003.0014: input,hiddev0,hidraw4: USB HID v1.00 Device [Sensel Sensel Morph] on usb-0000:00:1d.7-1.1/input4
[ 7700.286582] input: Sensel Sensel Morph Touchpad as /devices/pci0000:00/0000:00:1d.7/usb4/4-1/4-1.1/4-1.1:1.5/0003:2C2F:0003.0015/input/input42
[ 7700.286849] hid-multitouch 0003:2C2F:0003.0015: input,hiddev0,hidraw5: USB HID v1.00 Mouse [Sensel Sensel Morph] on usb-0000:00:1d.7-1.1/input5

If you have a dual monitor setup, the touchpad on the Morph will cover the space of both monitors. This makes it awkward to work with GIMP on only one of the monitors. Here’s how to restrict the touchpad to only one monitor:

  1. You will need two programs:

xinput - might not be already installed, so you may need to install it on your GNU/Linux boxen. It’s the program to allow you to query which device id’s the Morph mounted at and allow you to restrict the touchpad to only one monitor.

xrandr - tells you which monitors you have on your system


xinput

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Razer Razer Taipan id=8 [slave pointer (2)]
⎜ ↳ Razer Razer Taipan id=9 [slave pointer (2)]
⎜ ↳ Sensel Sensel Morph id=11 [slave pointer (2)]
⎜ ↳ Sensel Sensel Morph Touchpad id=13 [slave pointer (2)]
⎜ ↳ Sensel Sensel Morph id=14 [slave pointer (2)]
⎜ ↳ Sensel Sensel Morph Pen Pen (0) id=18 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Razer Razer Taipan id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=15 [slave keyboard (3)]
↳ Razer Razer Taipan id=16 [slave keyboard (3)]
↳ Sensel Sensel Morph id=12 [slave keyboard (3)]
↳ Sensel Sensel Morph Pen id=17 [slave keyboard (3)]

The Morph is using device id’s 11, 13, 14 and 18 on my computer.

xrandr

Screen 0: minimum 8 x 8, current 3600 x 1200, maximum 8192 x 8192
DVI-I-0 disconnected (normal left inverted right x axis y axis)
VGA-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 474mm x 296mm
1680x1050 59.88*+ 59.95
1280x1024 75.02 60.02
1280x960 60.00
1152x864 75.00
1024x768 75.03 70.07 60.00
800x600 75.00 72.19 60.32 56.25
640x480 75.00 72.81 59.94
DVI-I-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected primary 1920x1200+1680+0 (normal left inverted right x axis y axis) 518mm x 324mm
1920x1200 59.95*+ 59.88
1920x1080 60.00 59.94 50.00 29.97 25.00 23.97 60.05 60.00 50.04
1600x1200 60.00
1280x1024 75.02 60.02
1280x720 60.00 59.94 50.00
1152x864 75.00
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00 50.08
720x480 59.94 60.05
640x480 75.00 59.94 59.93

I have monitors on VGA-0 and HDMI-0.

Here are the commands to restrict the Morph to the monitor on HDMI-0:

xinput map-to-output 11 HDMI-0
xinput map-to-output 13 HDMI-0
xinput map-to-output 14 HDMI-0
xinput map-to-output 18 HDMI-0

Morph and GIMP:

At the top of the Art overlay, there are three buttons: pencil, paint and hand. The pencil does palm rejection. The paint does not. The hand is to have the overlay function like a mouse, which means the pointer will not jump around; it stays where it is left off.

In pencil mode, the Morph will sound an audible “click” when the pressure is enough to activate drawing or the pressure is released to stop drawing. Paint mode does not. Hand mode "click"s when the overlay is pressed enough for a mouse click (one finger - left mouse button, two fingers - right mouse button).


GIMP 2.8 Input Setup

Launch GIMP and select this menu item, Edit/Input Devices, which will pop up a Configure Input Devices window. You will see Sensel Sensel Morph, Sensel Sensel Morph Pen Pen (0) and Sensel Sensel Morph Touchpad. For each of these, change the Mode from “Disabled” to “Screen”, then Save.

Now, select a tool where pressure sensitivity is useful, like Pencil, Paintbrush, Eraser, Airbrush, Clone, Heal, Perspective Clone, Blur/Sharpen, Smudge, or Dodge/Burn. You’ll notice under Tool Options that there’s a Dynamics section which defaults to Pressure Opacity. While this Dynamics mode will work, it’s not a very “natural” media mode. To better mimic a pencil, paintbrush or airbrush, select a different Dynamics mode by clicking on the icon to the left of the word “Dynamics” (three dots with blue arrow). Select either Pencil Generic or Pen Generic. (The other Dynamics modes are probably good for different uses, but for me, these are what I’m after.)

Give it a whirl. You should see the pressure vary the opacity and width of the line.