Ere*_*kin 7 gnome keyboard shortcut-keys xmodmap xmonad
有趣的是,事实证明这几乎是不可能的。重新映射 Alt 键以充当另一个 Ctrl 键不是解决方案,因为您失去了 Alt 键功能(其中一些是必不可少的,例如Alt+Tab
)。
那么如何获得类似于 MacOS 的行为,其中 cmd 键用于键盘快捷键(也用于在窗口之间切换cmd+Tab
)?
我知道在将Ctrl+Tab
Alt 键重新映射为 Ctrl 键后,我可以指定在窗口之间切换。但是后来我失去了Ctrl+Tab
某些应用程序中的真正功能,这些功能也很重要,例如在 Chrome 中切换标签页。基本上我的 Ctrl 和 Alt 键将成为同一个键,并且这两个修饰键不可能有两组不同的快捷键。
对我来说一个好的解决方案可能是Alt+C, Alt+V, Alt+X, etc.
在窗口管理级别捕获并将 a 发送Ctrl+C or Ctrl+V or Ctrl+X etc.
到聚焦窗口的方法。在 Windows 上,这可以通过 AutoHotKey 实现。在 Linux 上,我听说过一个名为 AutoKey 的应用程序,但与 AutoHotKey 不同的是,您必须使用 GUI 来设置快捷方式。由于我将手动编写几乎所有 Alt 组合,因此我不希望 GUI 应用程序这样做。我应该能够通过编写文本文件来配置它。
是否可以使用 Gnome 或 Xmonad 实现这一目标?
您可以使用XKeyCaps。
这是我的.Xmodmap
文件,我有一个苹果键盘。
! Swap Alt and Cmd keys.
keycode 37 = Control_L
keycode 133 = Alt_L Meta_L
keycode 64 = Super_L
keycode 108 = Super_R
keycode 134 = ISO_Level3_Shift Multi_key
keycode 105 = Control_R Multi_key
clear Shift
clear Lock
clear Control
clear Mod1
clear Mod2
clear Mod3
clear Mod4
clear Mod5
add Shift = Shift_L Shift_R
add Lock = Caps_Lock
add Control = Control_L Control_R
add Mod1 = Alt_L 0x007D
add Mod2 = Num_Lock
add Mod4 = Super_L Super_R
add Mod5 = Mode_switch ISO_Level3_Shift ISO_Level3_Shift ISO_Level3_Shift
! Configure '=' key on numpad as '='.
keycode 0x7D = equal
Run Code Online (Sandbox Code Playgroud)
您应该能够使用xdotool和XMonad.Util.EZConfigadditionalKeys
模块来实现此目的。只需安装 xdotool,然后在您的配置文件中您可以像这样配置 extraKeys:~/.xmonad/xmonad.hs
import XMonad.Util.EZConfig
...
main = xmonad $ defaultConfig { ... }
`additionalKeys`
[ ((mod1Mask, xK_c), spawn "xdotool key alt+c")
, ((mod1Mask, xK_v), spawn "xdotool key alt+v")
, ((mod1Mask, xK_x), spawn "xdotool key alt+x")
]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5510 次 |
最近记录: |