Caribou 屏幕键盘上的 Shift 键不起作用

Caribou 屏幕键盘上的 Shift 键不起作用

我最近买了一个新的 Wacom Mobile Studio Pro 13。这是一台平板电脑(没有触控板,没有物理键盘,只有左侧的几个按钮,带有一支 Wacom 手写笔)。

当我第一次登录帐户时,使用屏幕键盘输入密码,Shift 键工作正常。但登录后,在锁定屏幕上,Shift 键在使用时实际上不会将字母大写,即使键盘看起来可以正常工作。这使得无法从锁定屏幕登录,需要硬启动。

我在文本编辑器中进行了测试,以确认它没有按描述工作。

我不确定我是否遗漏了什么,并且我不确定如何开始解决这个问题。

如果我的描述不够充分,以下是该问题的快速屏幕截图。

https://youtu.be/IFC93g2B8yc

答案1

啊,是你吗?之前给我发了几个步骤,你把它放在这里很好,这样更容易检索,以防人们在即将发布的版本中需要它

答案2

这是一个仅适用于 Xorg 而不适用于 Wayland 的解决方案。

我们将修改二进制文件/usr/lib/gnome-shell/libgnome-shell.so

  1. 备份原始文件。

    sudo cp /usr/lib/gnome-shell/libgnome-shell.so /usr/lib/gnome-shell/libgnome-shell.so.original
    
  2. 查看我们将要修改的文件部分。

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

    输出将如下所示,显示 Caribou 使用 Gnome Shell 的新功能LocalAdapter来处理虚拟按键。

    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. 注释掉告诉 Caribou 使用 Gnome Shell 的代码部分LocalAdapter。然后 Caribou 将默认使用其自己的XAdapter,这仅适用于 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. 验证/usr/lib/gnome-shell/libgnome-shell.so修改是否正确。

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

    输出将如下所示,显示该行现已被注释掉。

    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. 禁用 Wayland 并在 GDM(登录)屏幕上使用 X11。

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

    确保已取消注释并在 GDM 配置中将WaylandEnable其设置为。false

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

    输出应该看起来完全像这样。

    # Uncoment the line below to force the login screen to use Xorg
    WaylandEnable=false
    
  6. 最后,重新启动以使更改生效。

由于上述解决方案只是一种解决方法,请在 Launchpad 和 Bugzilla 上注册,然后将自己标记为受影响,以便修复此错误...

撤消/恢复更改

如果步骤 4 和步骤 5 的输出与上面显示的内容相符,则表示更改已成功完成。如果需要还原这些更改,请执行以下操作:

要撤消步骤 4 中的更改...

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

要撤消步骤 5 中的更改...

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

相关内容