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

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

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

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

我需要重新启动笔记本电脑来修复它。

我该如何继续?

答案1

我和你遇到了完全相同的问题,我通过这样做来解决这个问题:

  • 摆脱gnome-screensaver

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

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

无论何时,如果您在系统锁定之前忘记切换回英语,请点击CtrlAlt++”F1以管理员用户身份登录,kill -9 xscreensaver然后您就可以重新登录了!

(这只是一种解决方法,而不是真正的“解决方案”,但它对我来说很有效,而且绝对比关机并重新启动更好)

答案2

我正在运行 Ubuntu 21.04,“dbus-monitor”解决方案对我来说不起作用,所以我分享了我的解决方法。
使用xscreensaver-command我们可以监视屏幕保护程序的状态变化。
然后,当状态更改为时LOCK,我们可以将布局更改为us,并在屏幕保护程序“释放”桌面后将其更改回来

一旦我有了脚本,我就会将其设置为在登录期间运行。

xscreensaver-command --watch | 
  while read MSG; do
    CMD=`echo $MSG | awk '{print $1}'`
    if [[ "$CMD" == "LOCK" ]]; then
        ##### CURRENTL=$(setxkbmap -query | grep layout | awk '{print $2}')
        echo "Locked with current layout ${CURRENTL}"
        setxkbmap us
    fi

    if [[ "$CMD" == "UNBLANK" ]]; then
        ##### setxkbmap $CURRENTL
        setxkbmap us,il,us
        echo -n "Returning to "
        setxkbmap -query | grep layout | awk '{ print $2 }'
    fi
    # echo $CMD
  done

答案3

[编辑] 这可能是一种解决方法,但现在它会干扰其他布局切换键绑定

[原文] 这个对我有用,但是我无法在启动时运行它并让它在后台运行。

监听锁定信号并将布局更改为密码布局。(不太好的解决方法但似乎有效)

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

答案4

xscreensaver 很棒,但是维护者 JWZ 明确表示他无意支持多键盘。

xsecurelock 是一个更好的解决方案。它支持在屏幕保护程序中切换键盘布局,如果启用了大写锁定,它还会向您显示醒目的红色通知。它没有像 xscreensaver 那样的内置计时器,因此您需要按照其网页上的说明让它在超时后自动运行。

相关内容