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 (英語、アラビア語)、run を使用して、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