xscreensaver 不显示当前的键盘布局,所以有时我无法输入密码,因为我在不知情的情况下切换到了西里尔字母。我发现关于同一问题的讨论http://forum.xfce.org/viewtopic.php?id=6877, 例如。
有没有办法让它显示当前的键盘布局,或者总是切换到英语?
我的系统是 Debian Wheezy。
答案1
至少在 ubuntu 上以下对我有用:
- 创建的文件夹:
mkdir ~/.startup
- 还有一个文件
touch ~/.startup/xscreensaver-reset-kbd-us.pl
- 修改了它
chmod 755 ~/.startup/xscreensaver-reset-kbd-us.pl
编辑(复制并粘贴下面的代码)
gedit ~/.startup/xscreensaver-reset-kbd-us.pl
#!/usr/bin/perl my $blanked = 0; open (IN, "xscreensaver-command -watch |"); while (<IN>) { if (m/^(BLANK|LOCK)/) { if (!$blanked) { system "setxkbmap -layout us"; $blanked = 1; } } elsif (m/^UNBLANK/) { system "setxkbmap -layout us,ru"; $blanked = 0; } }
将脚本添加到启动应用程序
它监视来自 xscreensaver 的事件,并仅在锁定时将键盘布局重置为英语,并在取消空白时添加 ru 布局。
答案2
可以通过在锁定之前执行几行 setxkbmap 行来完成(在 xfce 中, into /usr/bin/xflock4
,请参阅:http://www.reddit.com/r/xfce/comments/11yi34/reset_the_keyboard_layout_on_xscreensaver_lock/如同:
setxkbmap -layout us
setxkbmap -layout us,ru
这应该禁用然后重新启用国际布局,据说将当前布局切换为美国布局。似乎工作正常。刚刚重新测试了一下,还是不行。但一般的解决方案是沿着这些思路,只是需要更多的实验。
答案3
另一个选择是安装不同的屏幕锁定实用程序,例如刚才我尝试了“i3lock”http://i3wm.org/i3lock/,它无需对键盘布局进行任何修改即可工作。
答案4
一个选择是使用快捷方式始终切换到第一个键盘布局。例如,我使用WIN+Space切换到下一个布局,使用LCTRL+LWIN始终切换到第一个布局。
如何选择该选项取决于您用来选择键盘布局和切换选项的程序。这里有 2 个例子:
- 如果来自
localectl set-x11-keymap
命令行,则用于切换的选项将在参数中传递OPTIONS
(请参阅man localectl
语法和man xkeyboard-config
选项列表的“选项 > 切换到另一个布局”部分)。例如,在我的笔记本电脑上,它看起来为localectl set-x11-keymap "us,ru" thinkpad "" "grp:win_space_toggle,grp:lctrl_lwin_rctrl_menu"
.参数的当前值localectl set-x11-keymap
可以在 的输出中看到setxkbmap -query
。新设置仅在重新启动 xorg 后(例如重新启动操作系统后)才起作用。 - 在 cinnamon GUI(内部调用
/usr/bin/python2 /usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py keyboard
)中,它是“菜单 > 键盘 > 布局 > 选项 > 切换到另一个布局”。
在这两种情况下,您可能需要选择描述中带有“第一个布局”字样的选项。然后(例如,假设第一个布局us
可以用于输入密码)您可以按LCTRL+LWIN切换到us
并输入密码。