我最近买了一个新的 Wacom Mobile Studio Pro 13。这是一台平板电脑(没有触控板,没有物理键盘,只有左侧的几个按钮,带有一支 Wacom 手写笔)。
当我第一次登录帐户时,使用屏幕键盘输入密码,Shift 键工作正常。但登录后,在锁定屏幕上,Shift 键在使用时实际上不会将字母大写,即使键盘看起来可以正常工作。这使得无法从锁定屏幕登录,需要硬启动。
我在文本编辑器中进行了测试,以确认它没有按描述工作。
我不确定我是否遗漏了什么,并且我不确定如何开始解决这个问题。
如果我的描述不够充分,以下是该问题的快速屏幕截图。
答案1
啊,是你吗?之前给我发了几个步骤,你把它放在这里很好,这样更容易检索,以防人们在即将发布的版本中需要它
答案2
这是一个仅适用于 Xorg 而不适用于 Wayland 的解决方案。
我们将修改二进制文件/usr/lib/gnome-shell/libgnome-shell.so
。
备份原始文件。
sudo cp /usr/lib/gnome-shell/libgnome-shell.so /usr/lib/gnome-shell/libgnome-shell.so.original
查看我们将要修改的文件部分。
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());..
注释掉告诉 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
验证
/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());..
禁用 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
最后,重新启动以使更改生效。
由于上述解决方案只是一种解决方法,请在 Launchpad 和 Bugzilla 上注册,然后将自己标记为受影响,以便修复此错误...
- Launchpad 错误 #1730211(适用于 Ubuntu)
- Gnome 错误 #790104
撤消/恢复更改
如果步骤 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