如何在密碼輸入對話方塊中指定語言始終為英語?

如何在密碼輸入對話方塊中指定語言始終為英語?

在 Gnome 中,當選擇俄語時,我經常輸入 sudo 密碼。等待密碼驗證失敗,切換到英文並重新輸入密碼真是太煩人了!

有沒有辦法在密碼輸入對話框中強制使用英文?特別是在登入畫面上。

答案1

使用 gsettings

它與 Ubuntu 13.10 或更高版本上的 Gnome/Unity Indicator/Layout 開關配合良好。

運行gsettings list-recursively org.gnome.desktop.input-sources以檢查您的活動佈局和輸入系統。

問題

在鎖定對話方塊情況下,無法恢復上次使用的鍵盤。所以解鎖後總是en

  • 對於須藤(別名)

    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命令設定時才使用它。

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

問題

setxkbmap 在 X 層級更改佈局,這會覆寫有效的 Unity/Gnome 佈局。指示器保持顯示最後的佈局。它還破壞了一些佈局切換鍵盤快捷鍵。為了避免這種情況,請將快捷方式選項新增至setxkbmap命令中。例:setxkbmap us,ara -option grp:rshift_toggle -option grp:rctrl_switch

在鎖定對話方塊情況下,無法恢復上次使用的鍵盤。

  • 對於須藤

    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
    

相關內容