重新映射电源键以删除


14

我有一个运行FluxBox的Ubuntu 13.10的Macbook Pro。不幸的是,电源按钮在物理上位于我希望删除键所在的退格上方。在OS X中,PowerKey程序可用于重新映射要删除的电源键。如何在X Windows中执行类似操作?

我通过编辑/etc/systemd/logind.conf和设置禁用了电源键。HandlePowerKey = ignore 在此之后,无需关闭笔记本电脑就可以按电源按钮。

运行xev -event keyboard表明,电源键的KeyPress通常被另一进程占用:

MappingNotify event, serial 36, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeymapNotify event, serial 36, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeymapNotify event, serial 37, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

但是,通过直接从控制台仅运行xterm,我能够成功获取密钥代码并重新映射密钥。

xinit /usr/bin/xterm -- :1
xev -event keyboard | tee /tmp/junk.txt
tail -n ???? /tmp/junk.txt
MappingNotify event, serial 28, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 29, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

此时,还可以使用xmodmap映射键。我将其映射到反斜杠,这比删除更容易看到:

 xmodmap -e "keycode 124 = backslash bar"

通过将其添加到其中,我几乎无法获得等效的功能来运行,~/.fluxbox/keys但这既丑陋又缓慢,以至于无法使用。

  # Remap the power off to a delete key...
  XF86PowerOff :Exec xdotool key Delete

如何与普通窗口管理器同时使用xmodmap或setxkbmap来使用电源按钮?

Answers:


3

我不完全理解最后一句话,但我可以提到问题的标题:“重新映射要删除的电源键”。

尝试用/ usr / share / X11 / xkb / symbols / inet中的“ Delete”替换任何“ XF86PowerOff”或仅替换与键盘对应的键盘。

您需要在更新该文件的系统更新后重复此操作。


有关详细信息,请参见askubuntu.com/questions/325272/…。这个答案应该被接受。
phil294

1

这不是确切答案,但是您是否尝试按fn+ delete?与实际的“退格”操作相比,它应该是真正的Delete,并且非常接近电源键。

另一个提示:

fn+ enter充当“ 插入”按钮,因此您应该能够像按中键一样按下shift+ fn+ enter粘贴


0

很难肯定地说。这些可能是您已经尝试过的方法,但是它们可能会导致一个简单的解决方案。

xmodmap是否可用于其他键,还是fluxbox正在做的事情完全破坏了xmodmap?

如果启动x,对功率键进行modmap,然后启动fluxbox,会发生什么?映射是否坚持?

如果在fluxbox起作用之前运行xmodmap并保留您的设置,则可以编写一个shell脚本以正确的顺序调用它们,或者如果您使用的是gdm,它应该在fluxbox进入图片之前为您自动读取~/.xmodmap~/.xmodmaprc自动读取。


是的,xmodmap有效。现在,我使用xmodmap重新映射了正确的alt和right命令,分别使用xmodmap -e“ remove mod1 = Alt_L” -e“ remove mod4 = Super_L” -e“ add mod1 = Super_L” -e“ add mod4 = Alt_L “ -e”删除mod1 = Alt_R“ -e”删除mod4 = Super_R“ -e” keysym Alt_R =删除“ -e” keysym Super_R =插入“
nathan

您可以在fluxbox中包含xmodmap -pke的输出吗?
Mike Fairhurst,2014年

@nathan,所以这是在fluxbox之后或之前运行xmodmap的问题。很棒的wm
遇到
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.