
有趣的是,事實證明這幾乎是不可能的。將 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 來實現這一目標?
答案1
您可以使用X鍵帽。
這是我的.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
答案2
你應該能夠使用xdo工具並additionalKeys
從XMonad.Util.EZConfig用於此的模組。只需安裝 xdotool,然後在您的~/.xmonad/xmonad.hs
設定檔中您可以像這樣配置 extraKeys:
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")
]