Я пользователь Xubuntu 14.04.2. У меня есть две раскладки клавиатуры: русская и английская. Иногда, когда я закрываю свой ноутбук, а затем возвращаюсь и пытаюсь продолжить работу, Xubuntu просит меня ввести свой пароль пользователя (мой пароль состоит из английских букв и цифр).
Однако, часто моя раскладка клавиатуры была установлена на русский язык, и переключение клавиатуры не работает.
Мне нужно перезагрузить ноутбук, чтобы починить его.
Как мне поступить?
У меня есть та же самая проблема, как Вы и я двигаемся путем выполнения этого:
избавляются от gnome-screensaver
:
sudo apt-get purge gnome-screensaver
Установка X экранных заставок:
sudo apt-get install xscreensaver xscreensaver-data xscreensaver-gl
Каждый раз, когда Вы забыли переключаться назад на английский язык, прежде чем система блокирует себя, поразите Ctrl + Высокий звук + F1 входит в систему как Ваш администраторский пользователь и kill -9 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
xscreensaver великолепен, но сопровождающий, JWZ, ясно дал понять, что он не намерен поддерживать несколько клавиатур.
xsecurelock является лучшим решением. Он поддерживает переключение раскладок клавиатуры из заставки, а также даст вам жирное красное уведомление, если замок caps включен. Он не имеет встроенного таймера, как xscreensaver, поэтому вам нужно будет следовать инструкциям на их веб-странице, чтобы заставить его автоматически запускаться после тайм-аута.