对于锁定屏幕,Gnome 使用锁定屏幕之前最后使用的键盘布局。是否有可能以这样的方式配置 gnome,使其始终将键盘布局切换为锁定屏幕的某个特定值?
示例,现在如何工作:您配置了两种布局,
en
和abc
。您已经使用键盘布局 abc
输入了一些文本,然后通过按 Meta + L 或将计算机置于睡眠模式来锁定屏幕。到达锁定屏幕后,您会发现键盘布局是abc
。您将其切换到 en
并输入密码,解锁屏幕,然后看到您的活动 gnome 桌面键盘布局是 abc
。
期望:您配置了两种布局,
en
和abc
。您已经使用键盘布局 abc
输入了一些文本,然后通过按 Meta + L 或将计算机置于睡眠模式来锁定屏幕。到达锁定屏幕时,您会发现您的键盘布局是 en
,因为您设法以某种方式配置 gnome(或使用一些锁定屏幕激活脚本/挂钩?)以始终切换到 en
进行锁定屏幕。解锁后的桌面键盘布局可以保留(abc
),但这在给定问题的范围内并不重要。
找到了!
Gnome 设置 → 区域和语言 → 输入源部分。单击“登录屏幕”按钮可以修改与登录屏幕相关的输入源。按钮本身位于窗口装饰栏上,“公开隐藏”,很难在视觉上找到。
您可以安装 g3kb-switch 来从命令行控制 GNOME 中的当前键盘布局。要在锁定屏幕上自动将键盘布局更改为英文,您可以使用脚本(将其放入 GNOME 自动启动中):
#!/bin/bash
dbus-monitor --session "type=signal,interface=org.gnome.ScreenSaver" |
while read MSG; do
MSG_STAT=`echo $MSG | grep boolean | awk '{print $2}'`
if [[ "$MSG_STAT" == "true" ]]; then
echo "Screen locking actions"
gdbus call --session --dest org.gnome.Shell --object-path /org/g3kbswitch/G3kbSwitch --method org.g3kbswitch.G3kbSwitch.Set 0
fi
done
出于安全原因,GNOME 禁用锁定屏幕激活上的所有扩展。因此,您需要从
disable()
中的 ~/.local/share/gnome-shell/extensions/[email protected]/extension.js
方法中删除所有内容,如here所述,然后重新启动。
我编写了一个 gnome 扩展,它可以在屏幕保护程序激活时重置键盘布局。您可以通过 https://github.com/galets/gnome-keyboard-reset
访问它