使用setxkbmap进行简单的重新映射(类似于xmodmap)


13

使用xmodmap重新映射键盘后,我遇到了一些问题:设置在应用后2-20分钟后会随机重置。用谷歌搜索它,但没有帮助:有些东西使它们复位,但是所有提及都适用于xfce,而我在通常的14.04 Ubuntu下具有统一性。

我看到过诸如“使用xkb,忘记xmodmap”之类的短语,但仍然不知道该怎么做。它要么是分类的,要么是非常复杂的,因为关于它的信息量比xmodmap方法要少得多。

这是我的自定义列表:

xmodmap -e "keycode 84 = Down"
xmodmap -e "keycode 79 = Home"
xmodmap -e "keycode 80 = Up"
xmodmap -e "keycode 83 = Left"
xmodmap -e "keycode 85 = Right"
xmodmap -e "keycode 87 = End"
xmodmap -e "keycode 90 = Insert"
xmodmap -e "keycode 91 = Delete"
xmodmap -e "keycode 89 = Next"
xmodmap -e "keycode 81 = Prior"

其中键码是numpad上的相应键,并且numlock = off(基本上,我用Delete替换KP_Del,用Home替换KP_Home等等-不要问为什么))

有人可以帮忙找到一种使用xkb的方法-至少其中之一吗?以及在哪里可以找到其他键的“名称”,以便我可以通过示例完成其余工作?


5
是的 有完全一样的问题。参见此处:rlog.rgtti.com/2014/05/01/…askubuntu.com/questions/422650/…。如果您xkb无需重写系统文件就能找到使用方法,请在此处写下答案...您将获得无数的赞誉。
Rmano 2014年

哇-终于有了一个xkb重新映射指南,使事情变得更清楚了...但是我看不到有关重新映射Home,Delete和Up-&Down-rows的事情。它总是与一些希腊字母或西班牙字母有关。到目前为止,我走了另一条路-尝试阻止系统覆盖我的Xmodmap设置(来自此处的食谱3:programmingiroiro.blogspot.com/2013/03/…
Den Drobiazko 2014年

1
坏主意-此后没有可用的布局切换(
Den Drobiazko 2014年

Answers:


4

对于类似的问题,您可以遵循我的回答中看到的一般想法; 如果您仍然希望进行布局切换(尽管仍然很糟),您应该定义一个新的布局或变形

请注意,很难找到要复制和修改以编辑键盘的模板。例如,在我的键盘中,几何图形为“ pc105”;这是在中定义的/usr/share/X11/xkb/symbols/pc。如果您调查一下,它包括

[...]
key <SPCE> {        [        space          ]       };

include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"

key <BKSP> {        [ BackSpace, BackSpace  ]       };
[...]

键盘在文件中定义 /usr/share/X11/xkb/symbols/keypad

[...] 
default  partial hidden keypad_keys
xkb_symbols "x11" {
   include "keypad(operators)"

   key  <KP7> {        [  KP_Home,     KP_7    ]       };
   key  <KP8> {        [  KP_Up,       KP_8    ]       };
[...]

对于键符号(keysims)的名称,最好的查找位置是文件/usr/include/X11/keysymdef.h;您可能需要安装开发包才能拥有(或通过安装来安装x11proto-core-dev):

[...]
/* Cursor control & motion */

#define XK_Home                          0xff50
#define XK_Left                          0xff51  /* Move left, left arrow */
#define XK_Up                            0xff52  /* Move up, up arrow */
[...]

keysym名称是您曾经删除过“ XK_”字符串的名称。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.