xmodmap 不再适用于 XF86 键?

xmodmap 不再适用于 XF86 键?

我最近在 gentoo linux 上将 xorg-server 升级到 1.7.7(以及许多其他升级……)。似乎 xmodmap 不再接受我的 .Xmodmap 文件。我收到类似以下错误

/usr/bin/xmodmap:  /home/oz/.Xmodmap:82:  bad keysym name 'XF86Sleep' in keysym list
/usr/bin/xmodmap:  /home/oz/.Xmodmap:83:  bad keysym name 'XF86WakeUp' in keysym list
/usr/bin/xmodmap:  /home/oz/.Xmodmap:85:  bad keysym name 'XF86Favorites' in keysym list
/usr/bin/xmodmap:  /home/oz/.Xmodmap:87:  bad keysym name 'XF86Stop' in keysym list
/usr/bin/xmodmap:  /home/oz/.Xmodmap:88:  bad keysym name 'XF86HomePage' in keysym list
[snip]

我四处寻找并找到了该/usr/include/X11/XF86keysym.h文件,其中现在包含类似内容XF86XK_Foo,因此我更改了 .Xmodmap,现在我收到如下错误:

/usr/bin/xmodmap:  /home/oz/.Xmodmap:82:  bad keysym name 'XF86XK_Sleep' in keysym list
/usr/bin/xmodmap:  /home/oz/.Xmodmap:83:  bad keysym name 'XF86XK_WakeUp' in keysym list
/usr/bin/xmodmap:  /home/oz/.Xmodmap:85:  bad keysym name 'XF86XK_Favorites' in keysym list
/usr/bin/xmodmap:  /home/oz/.Xmodmap:87:  bad keysym name 'XF86XK_Stop' in keysym list
/usr/bin/xmodmap:  /home/oz/.Xmodmap:88:  bad keysym name 'XF86XK_HomePage' in keysym list
[snip]

我的 XF86 键去哪了?我需要更改 xorg-server 的标志吗?这是在 xmodmap-1.0.4 下。

答案1

XF86keysym.h 中始终包含带有 XF86XK_* 的名称 - C 代码中使用的 #define 与 xmodmap 使用的 keysym 名称不同。

如果您使用的是 libX11 1.3.5 或更早版本,您应该从诸如/usr/share/X11/XKeysymDB(在 libX11 1.4 中,这些名称移入 libX11 内置表)之类的文件中获取键符号名称。

相关内容