2011年11月29日 星期二

如何把右邊的Alt鍵在ubuntu中改為Win (Super)鍵


有用過IBM鍵盤的人都會著迷於那舒適的回饋手感以及獨家秘方小紅點,然而IBM的鍵盤卻有著一個最大的致命缺陷,就是這鍵盤缺乏著Win (Super)鍵。在Windows環境中頂多只是少了一個叫出"開始"的快速鍵而已,然而在ubuntu環境中Win (Super)鍵卻是擔任著許多重要的任務,包括切換視窗等等重要的快捷鍵,都需要搭配Win (Super)鍵搭配服用。

在這種狀況下我也試圖尋找解決方案,無意間發現有高手拿右邊的Alt鍵來轉換為Win (Super)鍵使用。這真是相當聰明的辦法,畢竟若要將左邊的Alt鍵拔除實在不太可能,但我相信絕大多數的人卻都很少使用到右邊的Ctrl鍵以及Alt鍵,因此拿右邊的Alt鍵當作Win (Super)鍵使用再聰明不過了。

在ubuntu中我們需要使用到xmodmap這個程式來修改X Window中的鍵盤與滑鼠對應。

1. 安裝xmodmap
首先確認您目前是否已經安裝好xmodmap,但通常ubuntu安裝好以後預設都是已經有安裝了。如果在terminal中沒有xmodmap可以執行,就需要安裝x11-xserver-utils。
sudo apt-get install x11-xserver-utils

2. 確認目前的keymap
先在terminal中執行xmodmap確認ALT_R是落在mod1中(如果不是,稍候的.Xmodmap設定檔就需要做相對應的調整)。


接著確認你右邊的Alt鍵的keycode是108(轉為十六進位就是上圖看到的0x6C),需要透過xev這個程式。在終端機執行xev後會跳出一個白色視窗,內有一個黑色小框。接著按下右邊的Alt後終端機就會跳出相對應的資訊,而其中的keycode欄位應該要出現108(如果不是108,稍候的.Xmodmap設定檔就需要做相對應的調整)。


3. 設定.Xmodmap如下


接著將此檔案存放在使用者目錄下,只要每次開機就會自動生效。若要馬上生效,直接執行xmodmap指令讀取設定檔亦可。
$xmodmap .Xmodmap

參考資料
xmodmap man page
xev man page
Ubuntu and my favourite keyboard IBM SK-8835
How to set right Alt to work as a Win(Super) key?