Keyboard
地圖超級+左f_噸|里格_ht_大號和F噸|R一世GH噸Left|Right到首頁/終點
我如何映射鍵“超級”,所以當與左/右結合時,它會產生鍵碼 Home/End?
我目前的 setxkbmap:
setxkbmap \ -model pc105 \ -layout 'us(dvorak-intl),us(alt-intl)' \ -option \ -option grp:lctrl_lshift_toggle \ -option compose:rwin
您不能僅使用 setkxbmap 選項來執行此操作,因為沒有預設選項可以滿足您的要求。
但是您可以通過在較低級別定義關鍵行為來做到這一點。
該頁面http://madduck.net/docs/extending-xkb/幫助我理解並找到了一種方法來做到這一點。
創建一個文件 ~/.xkb/keymap/mykbd 放置 setxkbmap 的輸出,它將是您的基本鍵盤定義;例如:
setxkbmap -print > ~/.xkb/keymap/mykbd
然後我們將創建一個
~/.xkb/types/mytypes
文件並將以下內容放入:partial xkb_types "super_level2" { Virtual_modifiers Super; type "SUPER_LEVEL2" { modifiers= Super; map[Super]= Level2; level_name[Level1]= "Base"; level_name[Level2]= "Super"; }; };
它定義了一個 SUPER_LEVEL2 類型,可以輕鬆定義在按下鍵時發送的符號
Super
。然後,
~/.xkb/symbols/mysymbols
放入以下行:partial modifier_keys xkb_symbols "super_arrows_home_end" { key <LEFT> { type[Group1] = "SUPER_LEVEL2", symbols[Group1] = [ Left, Home ] }; key <RGHT> { type[Group1] = "SUPER_LEVEL2", symbols[Group1] = [ Right, End ] }; };
(注意使用我們定義的“SUPER_LEVEL2 類型”,這意味著當按下 Super 鍵(而不是 Shift 鍵)時觸發符號行上的第二個(級別 2)符號。
最後,編輯
~/.xkb/keymap/mykbd
文件以載入我們編寫的程式碼片段:
- 在行中
xkb_types
添加+mytypes(super_level2)
引號內- 在行中
xkb_symbols
添加+mysymbols(super_arrows_home_end)
引號。現在你可以載入它
xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
測試您的左/右鍵,它們應該可以按您的意願工作。