Skip to content

[Linux] 將『上下左右』方向鍵映射至快捷鍵

有時候,我們會希望能夠將鍵盤上不同功能的按鈕,比如說方向鍵的『上下左右』對應至快捷鍵 “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” 按下時進行轉義的關係。

所以在進行這種按鍵轉換對應的配置時,還是需要多加小心是否有鍵盤之間指令犯衝的問題,不過所幸這只是簡單的配置檔,只要取消配置就會恢復正常了。


References

Tags:

Leave a Reply