setxkbmap
就我而言,这一直是一种健康的黑魔法。我最近安装了迪亚洛APL。当我运行该命令时dyalog
,它会将我的键盘配置全局更改为 APL 模式,这实际上禁用了我使用 Super 键执行其他操作的能力。现在,这实际上非常好尽管我用的是APL。但是当我关闭该进程时,我留下了一个几乎毫无价值的超级键,它无法执行任何常用功能,例如在窗口之间切换或打开“活动”菜单。所以我的问题是,如何改回来?
setxkbmap -print
具体来说,这是新登录时的“正常”输出。
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+us:2+inet(evdev)+capslock(ctrl_modifier)"};
xkb_geometry { include "pc(pc105)" };
};
(大写锁定/ctrl修饰符与这个问题无关,所以请随意忽略它)
当我运行 Dyalog 时,它会更改我的键盘映射,因此setxkbmap -print
变为
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+apl(dyalog):2+us:3+inet(evdev)+group(win_switch)+capslock(ctrl_modifier)" };
xkb_geometry { include "pc(pc105)" };
};
那么setxkbmap
我可以运行什么命令来从第二个状态回到第一个状态?我希望能够根据需要恢复超级键的默认行为。
我正在运行 Ubuntu 18.04.3 LTS,在 X11 上运行 Gnome 3.28.4,如果其中任何一个对于这个问题的目的很重要的话。
答案1
我不相信您可以使用 的输出setxkbmap -print
来实现这一点,但至少还有其他三种方法可以恢复默认键盘状态。
选项0
执行
xkbcomp "$DISPLAY" normal.xkb
而键盘处于默认状态。Xkbcomp创建normal.xkb
文件,键盘的完整默认键盘映射。使用完 Dyalog 后,可以使用以下命令轻松恢复键盘状态
xkbcomp normal.xkb "$DISPLAY"
选项1
从man keyboard
,对于基于 Debian 的系统:
udevadm trigger --subsystem-match=input --action=change
选项2
/etc/default/keyboard
从相关设置 中检索命令setxkbmap
:
setxkbmap [-model xkb_model] [-layout xkb_layout] [-variant xkb_variant] [-option xkb_options]
例如,鉴于此/etc/default/keyboard
,
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="caps:swapescape,terminate:ctrl_alt_bksp"
您可以使用以下命令恢复默认状态
setxkbmap -model 'pc105' -layout 'us' -option 'caps:escape,terminate:ctrl_alt_bksp'
答案2
直接使用XKB附带的APL键盘映射怎么样?
看看/usr/share/X11/符号/apl,您可以将其用作辅助布局。