恢复默认超级键行为 (xkbmap)

恢复默认超级键行为 (xkbmap)

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,您可以将其用作辅助布局。

相关内容