如何设置正确的Alt用作Win(超级)键?


11

尽管有很多不同的文章,如何更改左侧的Alt以模拟win,我还是想映射右侧的Alt来做到这一点。我想移至11.10,我退回到2d并没有获胜钥匙。我甚至在发现的文章中都没有得到键码...有什么帮助或好的建议?

Answers:


12

您可以使用xmodmap重新映射键盘上的任何键;特别是,您可以重新映射正确的Alt以充当Super / Win键。

.Xmodmap在您的主目录中创建一个包含以下内容的文件:

! free up right-Alt for remapping
remove mod1 = Alt_R

! Right-Alt remapped to Super
clear mod4
keycode 108 = Super_R
add mod4 = Super_R

当您注销然后再次登录时,GNOME会询问您是否要加载.Xmodmap文件。回答“是”,就可以开始了。(您只会问一次。)

或者,您可以随时.Xmodmap从终端加载配置:

xmodmap .Xmodmap

根据X服务器版本和键盘型号,有些事情可能会有所不同。以下各项可以帮助您使.Xmodmap文件适应特定的环境。

  1. 检查你的右Alt键是最初在MOD1:发出命令 xmodmap在终端窗口中,你应该得到一个输出 这样:

    xmodmap:  up to 3 keys per modifier, (keycodes in parentheses):
    
    shift       Shift_L (0x32),  Shift_R (0x3e)
    lock        Caps_Lock (0x9),  Caps_Lock (0x4e)
    control     Control_L (0x25),  Control_R (0x69)
    mod1        Alt_L (0x40),  Alt_R (0x6c),  Alt_L (0xcc)
    mod2      
    mod3        Mode_switch (0xcb)
    mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce)
    mod5      
    

    如果Alt_R标签未出现在mod1行中,而是出现在另一行中,请.Xmodmap相应地进行调整。

  2. 检查您的右Alt键是键码108:在终端窗口中,输入命令xev,然后聚焦弹出的小方形窗口。如果在此处键入右Alt键,则应该在终端窗口中看到行。寻找这样的节:

    KeyPress event, serial 25, synthetic NO, window 0x5000001,
        root 0xbd, subw 0x5000002, time 867397196, (53,48), root:(54,49),
        state 0x0, keycode 108 (keysym 0xffea, Alt_R), same_screen YES,
        XLookupString gives 0 bytes: 
        XmbLookupString gives 0 bytes: 
        XFilterEvent returns: False
    

    keycode单词后的数字是您要在 .Xmodmap文件中重新映射正确的数字Alt


谢谢。我可以为我需要的所有东西全力以赴。
起飞

奇怪的是,尽管该解决方案曾经可以使用,但现在停止了???当我重新启动PC并重新创建解决方案时,它会一直工作到下一次重新启动...
11

1
@deckoff这表示.Xmodmap在X会话开始时未读取您的文件。尝试添加xmodmap ~/.Xmodmap到您的.gnomerc(或等效文件)中。
Riccardo Murri

我会试试。禁用密码登录后,它似乎不起作用。如果我看到登录屏幕(无论我是注销还是登录,或者是否在启动时启用了密码登录,都可以使用)。如果您愿意提供帮助,请查看此处。似乎文件已加载,但未正确执行。
2011年

1
是的,将xmodmap〜/ .Xmodmap添加到.gnomerc可以正常工作
停工

3

我发现这很简单:

remove mod1 = Alt_R
add mod4 = Alt_R

如预期般运作。我是否会丢失此方法的任何“陷阱”?

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.