Изменить языковой макет в блокировке экрана

Я пользователь Xubuntu 14.04.2. У меня есть две раскладки клавиатуры: русская и английская. Иногда, когда я закрываю свой ноутбук, а затем возвращаюсь и пытаюсь продолжить работу, Xubuntu требует, чтобы я ввел свой пароль пользователя (мой пароль состоит из английских букв и цифр).

Однако, часто моя раскладка клавиатуры была установлена ​​на русский язык, и переключение клавиш не работает.

Мне нужно перезагрузить ноутбук, чтобы исправить это.

Как мне поступить?

3 ответа

Решение

У меня точно такая же проблема, как и у вас, и я делаю это:

  • избавляться от gnome-screensaver от:

    sudo apt-get purge gnome-screensaver
    
  • Установите заставку X:

    sudo apt-get install xscreensaver xscreensaver-data xscreensaver-gl
    

Всякий раз, когда вы забыли переключиться обратно на английский до того, как система заблокируется, нажмите Ctrl+Alt+F1, чтобы войти в систему как пользователь-администратор и kill -9 xscreensaver и ты вернулся!

(Это просто обходной путь, а не реальное "решение", но оно работает для меня и определенно лучше, чем выключение и перезапуск)

Xscreensaver великолепен, но разработчик, JWZ, ясно дал понять, что не собирается поддерживать несколько клавиатур.

xsecurelock - лучшее решение. Он поддерживает переключение раскладок клавиатуры из заставки, а также выдает жирное красное уведомление, если включена блокировка заглавных букв. У него нет встроенного таймера, как у xscreensaver, поэтому вам нужно будет следовать инструкциям на их веб-странице, чтобы он запускался автоматически после тайм-аута.

[Редактировать] Это может быть обходной путь, но сейчас его путаница с другими сочетаниями клавиш переключения макетов

[Оригинал] Этот работал для меня, НО я не мог запустить его при запуске и поддерживать его в фоновом режиме.

Прослушайте сигнал блокировки и измените раскладку на пароль. (уродливый обходной путь, но, кажется, работает)

dbus-monitor --session "type=signal,interface=org.gnome.ScreenSaver" | 
  while read MSG; do
    LOCK_STAT=`echo $MSG | grep boolean | awk '{print $2}'`
    if [[ "$LOCK_STAT" == "true" ]]; then
        setxkbmap us
    else
        setxkbmap -option grp:switch,grp:alt_shift_toggle,grp_led:scroll us,il
    fi
  done

Ubuntu 16.04 использует другое имя интерфейса:

dbus-monitor --session "type=signal,interface=com.canonical.Unity.Session" | 
  while read MSG; do
    LOCK_STAT=`echo $MSG | egrep -o member='.*' | cut -d '=' -f 2`
    if [[ "$LOCK_STAT" == "Locked" ]]; then
        CURRENTL=$(setxkbmap -query | grep layout | awk '{print $2}')
        echo "Locked with current layout ${CURRENTL}"
        setxkbmap us
    fi
    if [[ "$LOCK_STAT" == "Unlocked" ]]; then
        setxkbmap $CURRENTL
        echo -n "Returning to"
        setxkbmap -query | grep layout
    fi
  done
Другие вопросы по тегам