在 Gnome 中,我经常在选择俄语时输入 sudo 密码。等待密码验证失败,然后切换到英语并重新输入密码,真是烦人!
有没有办法强制在密码输入对话框中使用英语?特别是在登录屏幕上。
答案1
使用 gsettings
它与 Ubuntu 13.10 或更高版本上的 Gnome/Unity Indicator/Layout 开关配合良好。
运行gsettings list-recursively org.gnome.desktop.input-sources
以检查您的活动布局和输入系统。
问题:
在锁定对话框情况下,无法恢复上次使用的键盘。因此解锁后总是en
对于 sudo(别名)
nano ~/.bashrc
附加此行
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"
用于锁定对话框(代理人)
cd /usr/lib/gnome-screensaver/ sudo mv gnome-screensaver-dialog gnome-screensaver-dialog_orig sudo nano gnome-screensaver-dialog_proxy
将其放入:
#!/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
修复链接:
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
使用 setxkbmap 的旧答案
仅当您的布局使用setxkbmap
命令设置时才使用它。
上面提到了完整的步骤。我只保留了不同的步骤。我正在使用 us,ara (英语、阿拉伯语),运行setxkbmap -query
来检查您的。
问题:
setxkbmap 在 X 级别更改布局,这确实会覆盖有效的 Unity/Gnome 布局。指示器继续显示最后的布局。它还会破坏一些布局切换键盘快捷键。为避免这种情况,请将快捷键选项添加到setxkbmap
命令中。示例:setxkbmap us,ara -option grp:rshift_toggle -option grp:rctrl_switch
。
在锁定对话框的情况下,无法恢复上次使用的键盘。
对于 sudo
nano ~/.bashrc
附加此行
alias sudo="sudo_success='' ; last_kbd=$(setxkbmap -query | awk 'FNR == 3 {print $2}') ; setxkbmap us,ara ; sudo echo -n && sudo_success='1' ; setxkbmap $last_kbd ; test $sudo_success && sudo"
用于锁定对话框
nano gnome-screensaver-dialog_proxy
将其放入:
#!/usr/bin/env bash last_kbd=$(setxkbmap -query | awk 'FNR == 3 {print $2}') setxkbmap us,ara /usr/lib/gnome-screensaver/gnome-screensaver-dialog_orig $@ setxkbmap $last_kbd