將鍵盤快速鍵(複製、貼上等)重新映射為 Alt 鍵而不是 Ctrl

將鍵盤快速鍵(複製、貼上等)重新映射為 Alt 鍵而不是 Ctrl

有趣的是,事實證明這幾乎是不可能的。將 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工具additionalKeysXMonad.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")
                 ]

相關內容