如何註冊在icewm中輸入變音符號的快速鍵?

如何註冊在icewm中輸入變音符號的快速鍵?

我正在嘗試設定快捷鍵來鍵入常見的變音符號。我可以讓 xdotool 在終端機或從icewm命令列(甚至從gmrun)中輸入變音符號:

xdotool key Aacute

但以下鍵映射(在icewm鍵檔中)不起作用:

key "Ctrl+Alt+a"                  xdotool key Aacute
key "Ctrl+Alt+a"                  xdotool --delay 1000 key Aacute

相反,當我鍵入快捷方式時(如果在終端或文字編輯器中),我只看到遊標閃爍一次,但沒有其他反應。以下確實顯示了一個彈出窗口,因此密鑰代碼本身是正確的:

key "Ctrl+Alt+a"                  zenity --info --text="shortcut works"

有沒有人有辦法註冊鍵綁定,以便在活動應用程式中實際鍵入變音符號?

答案1

使用setxkbmaporxmodmap似乎是正確的做法,但 FWIW 和 FTR 在我遇到這個問題後,我發現以下內容對我有用。我希望這可以幫助其他想要使用的人xdotool

我有 xdotool 模擬這些按鍵,因為我的鍵盤上沒有它們。請注意使用&在背景執行該命令,以便 IceWM 可以從處理熱鍵中返回並避免干擾 xdotool。

200 毫秒是我可以使用且仍能可靠工作的最短延遲。我不確定--clearmodifiers對您的用例是否有意義。

key "Ctrl+Up"          xdotool sleep 0.2 key --clearmodifiers Page_Up &
key "Ctrl+Down"        xdotool sleep 0.2 key --clearmodifiers Page_Down &
key "Ctrl+Shift+Up"    xdotool sleep 0.2 key --clearmodifiers Home &
key "Ctrl+Shift+Down"  xdotool sleep 0.2 key --clearmodifiers End &

另請注意,按住這些鍵不會導致預期的重複行為(因為 IceWM 熱鍵不是最佳選擇),但這對我的目的來說很好。

答案2

我無法讓原始的解決方案發揮作用,因此我更改了鍵盤映射。預設的美國鍵盤映射沒有我需要的變音符號,但國際版本有。試試一下:

setxkbmap -layout 'us(intl)'

但國際版本預設對某些按鍵使用組合。例如,' 字元不再立即回應。因此,我選擇基於美國鍵盤建立自己的鍵盤映射。

我建立了一個新檔案:/usr/share/X11/xkb/symbols/erik

partial default alphanumeric_keys
xkb_symbols "basic" {
  include "us"
  include "eurosign(5)"

    key <AC01> { [         a,          A,        aacute,           Aacute ] };
    key <AD03> { [         e,          E,        eacute,           Eacute ] };
    key <AD08> { [         i,          I,        iacute,           Iacute ] };
    key <AD09> { [         o,          O,        oacute,           Oacute ] };
    key <AD07> { [         u,          U,        uacute,           Uacute ] };

    key <RALT>  { type[Group1]="TWO_LEVEL", [ ISO_Level3_Shift, Multi_key ]   };  

    modifier_map Mod5   { <RALT> };
};

讓 xkb 接受更改:

sudo dpkg-reconfigure xkb-data

嘗試鍵盤映射:

setxkbmap -layout erik

現在 alt_gr + [aeiou] 應該輸入 [áéíóú]。

我透過使用icewm啟動檔案在啟動時呼叫上述命令來使更改永久化。我認為應該可以使用您的發行版鍵盤切換器來選擇佈局,但我還沒有對此進行測試。請隨意將該文件命名為其他名稱,除非您想給我以我的名字命名您的鍵盤映射的巨大榮譽。請務必避免使用 2 個字母代碼,因為所有預設國家/地區映射都是如此命名的。

注意:
您可以查看符號目錄中的其他映射檔案作為範例。
可以在此處找到一些用於了解文件格式的資源:
https://www.x.org/wiki/XKB/

相關內容