スペイン語 eñe 文字のキー設定

スペイン語 eñe 文字のキー設定

スペイン語のeñe文字をキーの組み合わせにマッピングする方法は?この目的に適したアプリケーションは何ですか(xmodmap、、xbindkeys...)?

Caps Lock+を押すとn入力する必要があります。ñ

Caps Lock+を押すとN入力する必要があります。Ñ

キーボードレイアウトを切り替えずにこれを実行したいと思います。英語のキーボードレイアウトだけを使いたいです。

答え1

正確に望むわけではありませんが、Caps Lock次のものを使用できますAltGr

AltGr+n 生産ñ

AltGr+N 生産Ñ

この機能を得るには、xmodmapビルドを知る必要がありますN

xmodmap -pke | grep "n N n N"

そこから、次の結果が得られますkeycode 57 = n N n N n N。これは、キーコードがキーを57表すことを意味します。n

次に、このキーコードを再マップして生成し、ñ次の操作を行いますÑ

xmodmap -e "keycode  57 = n N n N ntilde Ntilde"

=(このコマンドを使用すると、 でキーを入力すると次の 5 番目の位置が生成され、 と一緒に押すとAltGr6 番目の位置が生成されます。)AltGrShift

これがうまくいけばログイン後に自動的に実行することができます。

答え2

この回答では、xmodmapを使用して設定する方法について説明します。次の構成フラグメントを配置し~/.Xmodmap、実行してxmodmap <~/.Xmodmap適用します。展開と設定によっては、~/.Xmodmapログイン時に自動的にロードされたり、明示的に呼び出されたり、xmodmap適用するにはデスクトップ環境を構成する必要があります。~/.xinitrc~/.xsession~/.Xmodmap

Xにはキー記号(つまり抽象キー名)がありますMode_switch。米国外のラテンスクリプト言語のほとんどのキーマップでは、このキーシンボルは正しいAltGrキーAltを置き換えるラベル付きキーにバインドされています。Mode_switchたとえば、別のキーにマッピングすることを選択できますCaps Lock。 PCキーボードのキーコード(ハー​​ドウェアから転送)Caps Lockは66なので、バインディングをに変更してMode_switchCaps Lock修飾子を削除します。

keycode 66 = Mode_switch
clear Lock

また、修飾子をに関連付ける必要がありますMode_switchMod1を通過する5つのカスタム修飾子がありますMod5。どちらでも大丈夫ですが、一つは必須です。実行して、xmodmap -pmどの修飾子が使用されているかを確認し、未使用の修飾子の5つのうちの1つを選択し、次の行を追加します.Xmodmap

add Mod3 = Mode_switch

xmodmap キー仕様では、キーが送信した文字はシンボルの後ろの 3 番目の列にMode_switchあり、+ は 4 番目の列にあります。 (最初の2つの列は修飾子のないキーと同じキーに適用されます。)ディレクティブを使用して、キーコードに関係なく現在送信されているキーを再バインドできます。=Mode_switchShiftShiftkeysymn

keysym n = n N ntilde Ntilde

右側の名前は実際にはキーシンボル名です。/usr/include/X11/keysymdef.hたとえば、この行は、Unicode文字U + 00D1に対応する#define XK_Ntilde 0x00d1というキー記号があることを示します。Ntilde一部の文字にはキー記号名がありません。代わりにUnicode番号を使用できます。

! U+2030 is PER MILLE SIGN, U+2031 is PER TEN THOUSAND SIGN
keysym 5 = 5 percent U2030 U2031

〜2009〜2011ビンテージシステムで修飾子を移動すると、次の問題が発生する可能性があります。X_SetModifierMapping抜け穴。必ずしもそうではありませんが、一般的にclear Lockエラーはを使用して解決できます。

答え3

Caps Lockが「Caps Lock」キーで機能しなくなったことに気が付かない場合は、「altgrに似た」状態に再マップできますxmodmap -e 'keysym Caps_Lock = ISO_Level3_Shift'

関連情報