web-dev-qa-db-ja.com

icewmで分音記号を入力するためのショートカットキーを登録する方法

一般的な発音区別符号を入力するショートカットキーを設定しようとしています。 xdotoolに、端末で、またはicewmコマンドバーから(またはgmrunからでも)、発音区別符号を入力させることができます。

xdotool key Aacute

ただし、次のキーマッピング(icewmキーファイル内)は機能しません。

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

代わりに、ショートカットを入力すると(ターミナルエディターまたはテキストエディターの場合)カーソルが1回点滅するだけですが、それ以外は何も起こりません。以下はポップアップを表示するので、キーコード自体は正しいです:

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

誰かがキーバインディングを登録して、発音区別符号が実際にアクティブなアプリケーションに入力されるようにする方法はありますか?

1
Erik Lievaart

元のソリューションを機能させることができなかったため、代わりにキーボードのマッピングを変更しました。デフォルトのusキーボードマッピングには必要な発音区別符号はありませんが、国際バージョンにはあります。試してみるには:

setxkbmap -layout 'us(intl)'

しかし、国際版は特定のキーに対してデフォルトでcomposeを使用します。たとえば、 '文字はすぐに応答しなくなります。代わりに、私はusキーボードに基づいて独自のキーボードマッピングを作成することを選択しました。

新しいファイルを作成しました:/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文字のコードは避けてください。

ノート:
symbolsディレクトリにある他のマッピングファイルで例を確認できます。
ファイル形式を理解するためのいくつかのリソースはここにあります:
https://www.x.org/wiki/XKB/

0
Erik Lievaart