Как сделать так, чтобы в диалоговом окне ввода пароля язык всегда был английским?

Как сделать так, чтобы в диалоговом окне ввода пароля язык всегда был английским?

В Gnome я часто ввожу пароль sudo, когда выбирается русский язык. Так раздражает ждать, пока проверка пароля не пройдет, переключаться на английский и вводить пароль заново!

Есть ли способ принудительно включить английский язык в диалоговом окне ввода пароля? Особенно на экране входа в систему.

решение1

Использование gsettings

Он хорошо работает с Gnome/Unity Indicator/Layout switch в Ubuntu 13.10 или более поздней версии.

Запустите 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команды.

Полные шаги указаны выше. Я сохранил только разные шаги. Я использую us,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
    

Связанный контент