更改屏幕锁定中的语言布局

我是Xubuntu 14.04.2用户。 我有两种键盘布局:俄语和英语。 有时当我关闭笔记本电脑然后回去尝试继续工作时,Xubuntu要我输入我的用户密码(我的密码由英文字母和数字组成)。

但是,我的键盘布局通常设置为俄语,切换键盘不起作用。

我需要重启我的笔记本电脑来解决它。

我该怎么办?

我和你有完全相同的问题,我这样做:

  • 通过以下方式摆脱gnome-screensaver

     sudo apt-get purge gnome-screensaver 
  • 通过以下方式安装X屏幕保护程序:

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

每当你在系统锁定之前忘记切换回英语时, 按Ctrl + Alt + 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