我習慣按Fn+Left來模擬Home按鍵,按Fn+Right來模擬End。
Home在具有實體和按鍵的鍵盤上End,使用這些Fn鍵盤快捷鍵不起作用。
如何映射自訂Fn鍵盤快捷鍵烏班圖Linux?
答案1
與 Alt 和 Ctrl 等修飾符不同,按下 Fn 鍵永遠不會傳達給作業系統。此鍵僅修改其他鍵的掃描碼,因此按Fn+Right會模擬 End 鍵,即使它實際上可能不存在,但作業系統無法區分它們。這種行為僅由鍵盤電子設備控制,因此在不擾亂電路或微控制器的情況下無法改變。
答案2
在大多數系統上,不可能檢測Fn密鑰本身,但您可以嘗試使用:
$ xev | grep --line-buffered keysym
找出哪些密鑰Fn-Left並Fn-Right發送。 (這grep
只是降低噪音。)
如果幸運的話,這些按鍵會將不重要的按鍵傳送到機器,然後您可以重新映射。
例如,在我的系統上,xev
顯示我的Fn-Left按鍵實際上發送了一個XF86AudioPrev
事件:
state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,
我可以輕鬆地將其重新映射為Home關鍵事件:
$ xmodmap -e 'keysym XF86AudioPrev = Home'
希望您能夠對 End、PageUp 和 PageDown 執行相同的操作。
不幸的是,如果 xev 在您按下時沒有收到任何獨特的訊息,Fn-Left那麼您就不走運了。
令人遺憾的是,Fn按鍵沒有像其他修飾鍵那樣直接發送。如果是的話,我們將有更多的能力透過軟體配置它們的含義。
答案3
我xev
在終端機打開。當我按下Shift、Ctrl、Alt和Win( Super) 時,它會被偵測到,但當我按下該Fn鍵時,它不會被偵測到。
所以軟體與密鑰無關Fn;由硬體決定將什麼金鑰傳送到軟體(例如Home或End金鑰)。
因此,您的鍵盤必須已經具備該功能才能執行此操作。