Недавно я получил новую Wacom Mobile Studio Pro 13. Планшетный компьютер (без трекпада, без физической клавиатуры, всего несколько кнопок с левой стороны, с стилусом Wacom).
Когда я сначала войдите в учетную запись, введите пароль с помощью экранной клавиатуры, клавиша сдвига работает просто отлично. Но после входа в систему и на экране блокировки клавиша shift фактически не использует буквы при использовании, даже если клавиатура визуально выглядит так, как будто она работает. Это делает невозможным вход в систему с экрана блокировки, требуя жесткой загрузки.
Я протестировал в текстовом редакторе, чтобы убедиться, что он не работает, как описано.
Я не уверен, что что-то мне не хватает, и я не знаю, как начать устранение этой проблемы.
Вот быстрый захват экрана проблемы в случае, если мое описание не достаточно.
https://youtu.be/IFC93g2B8yc
Вот решение, которое будет работать только на 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 использует новую функцию LocalAdapter Gnome Shell для обработки виртуальных нажатий клавиш. 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());..
Прокомментируйте часть кода, которая говорит Карибу использовать 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 и использовать X11 на экране GDM (логин). sudo sed -i "s|#WaylandEnable=false|WaylandEnable=false|g" /etc/gdm3/custom.conf
Убедитесь, что WaylandEnable раскоментирован, и что он установлен в false в конфигурации GDM. cat /etc/gdm3/custom.conf | grep -B1 WaylandEnable
Результат должен выглядеть точно так. # Uncoment the line below to force the login screen to use Xorg
WaylandEnable=false
Наконец, перезагрузитесь, чтобы сделать изменения эффективными. Поскольку решение выше - это только обходной путь, зарегистрируйтесь на Launchpad и Bugzilla, и отметьте себя, как удар, поэтому эта ошибка исправлена ...
Ошибка запуска # 1730211 (для Ubuntu ) Gnome Bug # 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
Ах, что вы, написав мне, шаги до того хорошо, что вы поставили его здесь, так легче извлечь, в случае, людей нужно в предстоящем выпуске
Вот решение, которое будет работать только на 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 использует новую функцию LocalAdapter Gnome Shell для обработки виртуальных нажатий клавиш. 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());..
Прокомментируйте часть кода, которая говорит Карибу использовать 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 и использовать X11 на экране GDM (логин). sudo sed -i "s|#WaylandEnable=false|WaylandEnable=false|g" /etc/gdm3/custom.conf
Убедитесь, что WaylandEnable раскоментирован, и что он установлен в false в конфигурации GDM. cat /etc/gdm3/custom.conf | grep -B1 WaylandEnable
Результат должен выглядеть точно так. # Uncoment the line below to force the login screen to use Xorg
WaylandEnable=false
Наконец, перезагрузитесь, чтобы сделать изменения эффективными. Поскольку решение выше - это только обходной путь, зарегистрируйтесь на Launchpad и Bugzilla, и отметьте себя, как удар, поэтому эта ошибка исправлена ...
Ошибка запуска # 1730211 (для Ubuntu ) Gnome Bug # 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
Ах, что вы, написав мне, шаги до того хорошо, что вы поставили его здесь, так легче извлечь, в случае, людей нужно в предстоящем выпуске