Linux、Ubuntu 和 Apple 铝制键盘:使用波浪号重新映射更大/更少

kol*_*pto 6 linux keyboard remapping xmodmap setxkbmap

我有一个 Apple 铝制键盘。在1键的左边我有less/greater ( < >) 键,而不是grave/tilde ( ` ~)。

xmodmap对我不起作用:布局切换(完成setxkbmap)会重置我的 xmodmap 更改。.Xmodmap文件也没有帮助。

如何重新映射波浪号键?

kol*_*pto 6

xmodmap方式

首先,检查出。

这是我的版本.xsession

#! /usr/bin/env sh
GTK_IM_MODULE=xim
QT_IM_MODULE=xim
xmodmap ~/.Xmodmap-Apple
Run Code Online (Sandbox Code Playgroud)

和相应的~/.Xmodmap-Apple(对于俄语版本):

keycode 94 = grave asciitilde Cyrillic_io Cyrillic_IO
keycode 191 = Print Sys_Req Print Sys_Req Print Sys_Req
keycode 192 = Scroll_Lock NoSymbol Scroll_Lock NoSymbol Scroll_Lock
keycode 193 = Pause Break Pause Break Pause Break
keycode 49 = less greater less greater
keycode 108 = Multi_key Alt_L Multi_key Alt_L
Run Code Online (Sandbox Code Playgroud)

setxkbmap 方式

在 Linux 中,setxkbmap用于切换键盘布局。唉,setxkbmap&xmodmap不能一起工作:它们会重置彼此的更改:( 您必须选择以下之一:

  • 只是不要切换布局
  • xmodmap每次布局切换后调用(或进行脚本替换setxkbmap
  • 修改xkb键盘的键映射。

我们将使用后者。首先,检查您使用的布局:

$ setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete+caps(internal)"       };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us+ru:2+inet(evdev)+altwin(meta_win)+group(alt_shift_toggle)+compose(ralt)+eurosign(e)+terminate(ctrl_alt_bksp)+macintosh_vndr/apple(alupckeys)"    };
        xkb_geometry  { include "pc(pc104)"     };
};
Run Code Online (Sandbox Code Playgroud)

这是您的符号地图: xkb_symbols ... macintosh_vndr/apple(alupckeys)

在 Ubuntu 中,我们在这里有一个苹果键盘的映射:'/usr/share/X11/xkb/ symbols/macintosh_vndr/apple '。首先,备份这个文件。这个文件有几个部分,每个部分都是这样开始的:

xkb_symbols "extended" {
xkb_symbols "laptop" {
xkb_symbols "laptop_bad_switch" {
xkb_symbols "alukbd" {
xkb_symbols "alupckeys" {
Run Code Online (Sandbox Code Playgroud)

后者的映射"alupckeys",替换F13-F15PrintScreenScrollLockPause。如果您缺少这些键,请使用它:)

从上面的命令输出中选择您获得的部分,并在}该部分的最后部分之前附加以下内容:

    key <LSGT> { [ grave, asciitilde, grave, asciitilde ] };
};
Run Code Online (Sandbox Code Playgroud)

现在,重新启动 X. Yeehaw,享受在正确位置上的波浪号键 :)

此命令还可以帮助:

$ setxkbmap -option "apple:alupckeys" -print | xkbcomp - $DISPLAY
Run Code Online (Sandbox Code Playgroud)