如何将 Super + UpArrow 映射到 PageUp?

如何将 Super + UpArrow 映射到 PageUp?

我想绘制地图

  • Super+UpArrowPageUp

  • Super+DownArrowPageDown

  • Super+LeftHome

  • Super+RightEnd

在 Apple 铝制无线键盘上。了解键盘的人会注意到,Fn默认情况下,它已经使用按键执行这些操作;这很好,我想保留这一点,但也能使用单手按键组合执行相同的操作,因此我想要映射Super

我已经搜索了 3 个小时,寻找通过 xmodmap 实现此目的的可能方法,但没有任何效果。

答案1

尝试编辑 /usr/share/X11/xkb/symbols/pc 键盘定义

(这将全局改变您的绑定,如果您想要进行更精细的调整,还需要做更多的工作,例如创建自定义键映射或自定义变体)

正如你在这里看到的:

键 { [ 先前 ] };
键 { [ 下一步 ] };

如您所见,键 PGUP 已绑定到“Prior”。而:

键 { [ 左 ] };
 键 { [ 向下 ] };

LEFT 和 DOWN 键绑定到“左”和“下”。

括号内[ ]是要生成的符号列表。您可以放置​​多个。第一个是与未修改的键关联的符号,而其他位置是与键 + 某些修改器关联的符号。

通常它用于定义键加上“SHIFT”修饰符的行为:

  键 { [ l, L ] };
  键 { [ 分号, 冒号 ] };

但也可以指定其他修饰符,例如在世界语映射(epo)中:

  键 { [ jcircumflex, Jcircumflex, bracketleft, braceleft ] };
  键 { [ hcircumflex, Hcircumflex, bracketright, braceright ] };

您可以通过键入 AltGr + 键(美国键盘映射上的 [ 键)来键入 [ 字符,通过 Shift+AltGr + 键来键入 {。

到目前为止一切顺利。通过查看一些简单示例,我们可以理解以下顺序:

plain shift altgr shift+altgr


但是,我们希望能够将 LEFT 和 RIGHT 键绑定到普通和 CTRL+ALT 修饰键。如何实现?

我不知道,也从未尝试过,但我可以从 /usr/share/X11/xkb/symbols/pc 中获得灵感:

xkb_symbols“函数”{
    钥匙 {
        类型=“CTRL+ALT”,
        符号[组1]= [ F1,XF86_Switch_VT_1 ]
    };

也许我们可以对箭头键做同样的事情。让我们尝试添加以下几行:

键 { type="CTRL+ALT", 符号[Group1]= [ Left, Prior ] };
 键 { type="CTRL+ALT", 符号[Group1]= [ 向下, 下一个 ] };

就在‘pc’文件的底部,LEFT 和 DOWN 的原始定义的正下方。

然后重新启动 X 服务器。抱歉,我现在无法关闭会话来测试它。

顺便说一句,你可能感兴趣http://code.google.com/p/partiwm/wiki/xpra,这样您就可以重新启动 X 会话并且在重新启动后仍保留一些应用程序。

答案2

我尝试使用 xmodmap 及其同源词进行类似操作,但没有成功。尝试xbindkeys与 结合使用xdotool。这是我输入的内容~/.xbindkeysrc,用于将数字键盘 1 和 2 绑定到Ctrl-PageUpCtrl- PageDown

"xdotool key ctrl+Prior" 
  Release + KP_End

"xdotool key ctrl+Next" 
  Release + KP_Down

相关内容