Last Updated on 2021-06-19 by Clay
有時候,我們會希望能夠將鍵盤上不同功能的按鈕,比如說方向鍵的『上下左右』對應至快捷鍵 "Alt" + "WSAD" 。根據 StackOverFlow 上的網友說明,這樣的設置可以保護他的手部。
今天就來紀錄如何透過 "xmodmap" 這個指令來實現這樣的功能。
配置快捷鍵
首先,我們需要知道 "Alt" 鍵的 Keycode。我們可以使用 "xev" 來檢查我們想要的按鍵的 Keycode。在 Terminal 中輸入以下指令:
xev
我們會看到以下這樣的畫面:
我們只需要將滑鼠移動到跳出的小視窗上,點擊後,按下自己想要的鍵盤按鍵,比如說我想要知道 "Alt" 的 Keycode,所以按下了 "Alt":
我們可以看到,我們想要的按鍵 "Alt_L" (就是左邊的 Alt 按鍵),其 Keycode 就是 64。
Step 0: 安裝 xcape 套件
然後接下來我們需要事先安裝 "xcape" 工具。這個套件可以讓我們設定某個按鍵為另外一個按鍵的功能。
sudo apt install xcape
Step 1: 製作 ~/.xmodmap 檔案
然後我們來實際撰寫配置程式,首先製作一個 xmodmap 文件。
vim ~/.xmodmap
以我們想要製作 "Alt" + "WSAD" 對應方向鍵的功能為例,我們就在配置文件裡寫下這樣的配置:
keycode 64 = Mode_switch
keysym a = a A Left
keysym d = d D Right
keysym w = w W Up
keysym s = s S Down
儲存關閉。
Step 2: 製作執行腳本
開啟個執行檔:
vim ~/xmodmap.sh
在裡面寫下:
xmodmap ~/.xmodmap
xcape -r 'Mode_switch=Escape'
儲存檔案後,我們設定這個檔案的權限:
chmod +x ~/xmodmap.sh
Step 3: 製作開機自動執行的檔案
vim ~/.config/autostart/xmodmap.desktop
在裡面寫下:
[Desktop Entry]
Type=Application
Exec=sh -c "$HOME/xmodmap.sh"
Hidden=false
X-GNOME-Autostart-enabled=true
Name=xmodmap
Comment=xmodmap script
儲存關閉後,若要讓設定馬上生效,直接執行剛才設定好的 "xmodmap.sh" 檔案即可。不過在我經歷過一次重新開機後,我發現設定沒有自動生效,所以我又再次進行了以下動作:
來到 "~/.config/autostart/" 這個資料夾,直接設定 "xmodmap.desktop" 檔案:
將其 "Allow executing file as program" 打勾。
雙鍵點擊這個檔案。
選擇信任。
經歷了重新開機後,我的配置終於生效了。
心得
雖然最後設定生效了,但是我的 Terminal 快捷鍵 (Ctrl + Alt + T) 卻失效了。我想這是我將 "Alt" 按下時進行轉義的關係。
所以在進行這種按鍵轉換對應的配置時,還是需要多加小心是否有鍵盤之間指令犯衝的問題,不過所幸這只是簡單的配置檔,只要取消配置就會恢復正常了。