4

I recently got a new Wacom Mobile Studio Pro 13. A tablet computer (no trackpad, no physical keyboard, just a few buttons on the left hand side, with a Wacom stylus).

When I first login into an account, typing in the password with the on screen keyboard, the shift key works just fine. But after login, and at the lock screen, the shift key doesn't actually capitalize letters when used, even though keyboard visually looks like it is working. This makes it impossible to login in from the lock screen, requiring a hard boot.

I tested in a text editor to confirm that it isn't working as described.

I am not sure if there is something I am missing, and I am not sure how to begin troubleshooting this problem.

Here is a quick screen capture of the problem in case my description doesn't suffice.

https://youtu.be/IFC93g2B8yc

2 Answers2

0

Here is a solution that will only work on Xorg, not Wayland.

We will modify the binary file, /usr/lib/gnome-shell/libgnome-shell.so.

  1. Make a backup of the original file.

    sudo cp /usr/lib/gnome-shell/libgnome-shell.so /usr/lib/gnome-shell/libgnome-shell.so.original
    
  2. View the portion of the file that we will modify.

    xxd /usr/lib/gnome-shell/libgnome-shell.so | grep -A3 "ribou.DisplayA"
    

    The output will look like this, showing that Caribou uses Gnome Shell's new LocalAdapter to handle virtual key presses.

    001150d0: 4361 7269 626f 752e 4469 7370 6c61 7941  Caribou.DisplayA
    001150e0: 6461 7074 6572 2e73 6574 5f64 6566 6175  dapter.set_defau
    001150f0: 6c74 286e 6577 204c 6f63 616c 4164 6170  lt(new LocalAdap
    00115100: 7465 7228 2929 3b0a 0a20 2020 2020 2020  ter());.. 
    
  3. Comment out the part of the code that tells Caribou to use Gnome Shell's LocalAdapter. Caribou will then default to its own XAdapter, which works only in X11.

    sudo sed -i 's|\x43\x61\x72\x69\x62\x6f\x75\x2e\x44\x69\x73\x70\x6c\x61\x79\x41|\x2f\x2f\x72\x69\x62\x6f\x75\x2e\x44\x69\x73\x70\x6c\x61\x79\x41|g' /usr/lib/gnome-shell/libgnome-shell.so
    
  4. Verify that /usr/lib/gnome-shell/libgnome-shell.so was modified correctly.

    xxd /usr/lib/gnome-shell/libgnome-shell.so | grep -A3 "ribou.DisplayA"
    

    The output will look like this, showing that the line has now been commented out.

    001150d0: 2f2f 7269 626f 752e 4469 7370 6c61 7941  //ribou.DisplayA
    001150e0: 6461 7074 6572 2e73 6574 5f64 6566 6175  dapter.set_defau
    001150f0: 6c74 286e 6577 204c 6f63 616c 4164 6170  lt(new LocalAdap
    00115100: 7465 7228 2929 3b0a 0a20 2020 2020 2020  ter());..
    
  5. Disable Wayland and use X11 on the GDM (login) screen.

    sudo sed -i "s|#WaylandEnable=false|WaylandEnable=false|g" /etc/gdm3/custom.conf
    

    Make sure WaylandEnable has been uncommented and that it is set to false in the GDM configuration.

    cat /etc/gdm3/custom.conf | grep -B1 WaylandEnable
    

    The output should look exactly like this.

    # Uncoment the line below to force the login screen to use Xorg
    WaylandEnable=false
    
  6. Finally, reboot to make the changes effective.

Since the solution above is only a workaround, register on Launchpad and Bugzilla, and mark yourself as impacted, so this bug gets fixed...

Undo / Revert Changes

If your outputs from steps 4 and 5 match what is shown above, then the changes were made successfully. If you need to revert these changes, do the following:

To un-do the changes in step 4...

sudo cp /usr/lib/gnome-shell/libgnome-shell.so.original /usr/lib/gnome-shell/libgnome-shell.so

To un-do the changes in step 5...

sudo sed -i "s|WaylandEnable=false|#WaylandEnable=false|g" /etc/gdm3/custom.conf
Enterprise
  • 12,792
0

Ah is that you, emailing me the steps before Good that you put it here, so It is easier to retrieve, in case, people need it in upcoming release

Son Nguyen
  • 11
  • 1