我最近改用 Gnome 桌面环境,大多数操作都运行顺利。但是,我的机器上安装了两种语言(波斯语和英语),当键盘设置为波斯语时屏幕被锁定,我找不到将其切换回英语以解锁屏幕的方法。我知道的唯一方法是重新启动计算机。
在互联网上搜索后,我发现唯一可疑的“解决方法”是清除gnome-screensaver
并安装xscreensaver
。但这不是真正的解决方案,因为您仍然无法更改输入语言,您所能做的就是xscreensaver
从非图形“虚拟终端”之一中终止。
编辑
我正在运行 Ubuntu 17.04 64 位。运行命令gsettings get org.gnome.desktop.input-sources sources
输出:
[('xkb', 'us'), ('xkb', 'ir')]
此外,跑步cat /etc/default/keyboard
还能带来以下回报:
# Check /usr/share/doc/keyboard-configuration/README.Debian for
# documentation on what to do after having modified this file.
# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.
XKBMODEL="pc105"
XKBLAYOUT="us,ir"
XKBVARIANT=","
XKBOPTIONS="grp:alt_shift_toggle,grp_led:scroll"
# If you don't want to use the XKB layout on the console, you can
# specify an alternative keymap. Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz
BACKSPACE="guess"
解决方法:
正如 Gunnar Hjalmarsson 在评论中提到的,如果从 LightDM 切换到 GDM3,就可以避免这个问题。
答案1
目前,将 Ubuntu 的默认显示管理器 LightDM 与 GNOME shell 一起使用存在一些问题。因此,从 LightDM 切换到 GNOME 的 GDM 可能会有所帮助。
答案2
这个问题让我苦恼了很久。最后我编写了一个自定义脚本,确保每次屏幕锁定时自动将语言环境切换为英语。
基本脚本如下:
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | \
(
while true; do
read X
if echo $X | grep "boolean true" &> /dev/null; then
setxkbmap us;
fi
done
)
请注意,这适用于大多数版本的 Ubuntu,包括最新版本(截至撰写本文时),但对于某些版本,您需要对其进行一些调整。检查此主题,如果这不是您的命令。
我将此脚本保存在一个文件中language.sh
,将其添加为可执行脚本(sudo chmod +x language.sh
),然后从系统>首选项>启动应用程序将其添加到启动应用程序中。
希望这也能减轻其他用户的烦恼!