如何更改 Ubuntu Gnome 锁定屏幕的语言?

如何更改 Ubuntu Gnome 锁定屏幕的语言?

我最近改用 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),然后从系统>首选项>启动应用程序将其添加到启动应用程序中。

希望这也能减轻其他用户的烦恼!

相关内容