如何在密码输入对话框中指定语言始终为英语?

zub*_*uba 5 gnome password

在 Gnome 中,我经常在选择俄语时输入 sudo 密码。等待密码验证失败,切换到英文重新输入密码,好烦啊!

有没有办法在密码输入对话框中强制使用英语?特别是在登录屏幕上。

use*_*.dz 2

使用 gsettings

它与 Ubuntu 13.10 或更高版本上的 Gnome/Unity Indicator/Layout 开关配合良好。

运行gsettings list-recursively org.gnome.desktop.input-sources以检查您的活动布局和输入系统。

问题

在锁定对话框情况下,无法恢复上次使用的键盘。所以解锁后总是en

  • 对于 sudo(别名)

    nano ~/.bashrc
    
    Run Code Online (Sandbox Code Playgroud)

    追加这一行

    alias sudo="sudo_success='' ; last_kbd=`gsettings get org.gnome.desktop.input-sources current | awk '{print $2}'` ; gsettings set org.gnome.desktop.input-sources current 0 ; sudo echo -n  && sudo_success='1' ; gsettings set org.gnome.desktop.input-sources current $last_kbd ; test $sudo_success && sudo"
    
    Run Code Online (Sandbox Code Playgroud)
  • 对于锁定对话框(代理)

    cd /usr/lib/gnome-screensaver/
    sudo mv gnome-screensaver-dialog gnome-screensaver-dialog_orig
    sudo nano gnome-screensaver-dialog_proxy
    
    Run Code Online (Sandbox Code Playgroud)

    把这个放进去:

    #!/usr/bin/env bash
    last_kbd=`gsettings get org.gnome.desktop.input-sources current | awk '{print $2}'`
    gsettings set org.gnome.desktop.input-sources current 0
    /usr/lib/gnome-screensaver/gnome-screensaver-dialog_orig $@
    gsettings set org.gnome.desktop.input-sources current $last_kbd
    
    Run Code Online (Sandbox Code Playgroud)

    修复一个链接:

    sudo chown root:root gnome-screensaver-dialog_proxy
    sudo chmod +x root:root gnome-screensaver-dialog_proxy
    sudo ln -s gnome-screensaver-dialog_proxy gnome-screensaver-dialog
    
    Run Code Online (Sandbox Code Playgroud)

使用 setxkbmap 的旧答案

仅当您的布局是通过setxkbmap命令设置时才使用它。

完整步骤如上所述。我只保留了不同的步骤。我正在使用我们,ara(英语,阿拉伯语),跑去setxkbmap -query检查你的。

问题

setxkbmap 在 X 级别更改布局,这会覆盖有效的 Unity/Gnome 布局。指示器保持显示最后的布局。它还破坏了一些布局切换键盘快捷键。为了避免这种情况,请将快捷方式选项添加到setxkbmap命令中。例子:setxkbmap us,ara -option grp:rshift_toggle -option grp:rctrl_switch

在锁定对话框情况下,无法恢复上次使用的键盘。