web-dev-qa-db-ja.com

素晴らしいウィンドウマネージャーで、キーバインディングにキーボードイベントを送信させるにはどうすればよいですか?

タイトルはおそらくあまり役​​に立たないと思いますが、ここに私の問題があります:

私は素晴らしいウィンドウマネージャーを使用していて、キーバインディングのフレーバーをOSXの特別なキーと同じにしようとしています。私はドイツ語を学んでいるので、ウムラウト(二重の点)が上にある母音を定期的に入力する必要があります。 OSXでは、これを行うには、Alt + Uと入力してから、必要な母音を入力します。

明らかに、それは素晴らしいことでは実現可能ではありませんが、私が欲しいのは、私がumlaut-edキーを押したような印象を与えるキーボードイベントを送信するmodkey +です。

最初にキーボードレイアウトを変更する必要がありますか?コードがレイアウトを変更し、対応するイベントを送信してから、元に戻すように?または、レイアウトを変更せずにイベントを送信できますか?

可能であれば、そもそもイベントを送信するにはどうすればよいですか?

11
Brian

これは、ウィンドウマネージャーではなく、 Xmodmap を介して行います。これは、ウィンドウマネージャーではなく、キーボードレイアウト/キーマップに直接関係しています。

Xmodmapを変更するには、~/.Xmodmapという名前のファイルを作成し、次のコンテンツを追加します。これにより、altgr + uを使用してüäößを直接入力できるようになります。

keysym a = a A adiaeresis Adiaeresis
keysym o = o O odiaeresis Odiaeresis
keysym u = u U udiaeresis Udiaeresis
keysym s = s S ssharp section

その後、このファイルのコンテンツをxmodmap ~/.Xmodmapで適用する必要があります

Umlautsを入力する別の方法は、usインターナショナルレイアウトを使用することです。これにより、 "+ charでumlautsを入力できます。äを入力するには、"aを入力する必要があります。国際レイアウトは、Windowsでも、OSXで私が知る限りでも利用できます。

setxkbmap -layout us -variant intl
5
Ulrich Dangel

あらゆる種類の 異なるキーシーケンス の作成キーを設定できます。

特定の手順があります buntuの場合 が、GnomeやXfceなどのデスクトップ環境を実行していることを前提としています。

スタンドアロンのウィンドウマネージャーとしてawesomeを使用している場合は、.xinitrcファイルに次のようにコンポーズキーを設定できます(この例では、右を使用しています) Alt キー):

setxkbmap -option compose:ralt

次に、たとえば、äを作成するには、次のように入力します。 CtrlRAlt"a

Composeキーの詳細については、 Wikipediaページ を参照してください。

11
jasonwryan

コンポーズキーに加えて、「国際的な」キーボードレイアウトの1つを選択することにより、いわゆる「第3レベル」を選択するためのキーを設定することもできます。 Debianでは、「英語(国際的なAltGrデッドキー)」を使用しています。 PCキーボードでは、 AltGr は実際にはこの目的のためにmeantであり、Xはデフォルトでそれを第3レベルのシフトに割り当てるのが好きです。これを明示的に行うこともできます。

この作業を行うために必要なのは、長押しすることだけです AltGr キーボードのキーを押します(基本的には別のShiftキーです)。これはまさにこれがMacでも機能する方法です。

アクセントはウムラウトよりも直感的にアクセスできます。 AltGr+a 問題á。 umlautバージョンは、キーボードの母音キーの近くのキーを使用します。

AltGr+Qä

AltGr+Rë(わかりました、umlaut;完全性のためにリストするだけではありません)

AltGr+Jï(同上)

AltGr+Pö

AltGr+Yü

これらを押して Shift キーを押して大文字のバージョンを取得します。例: AltGr+Shift+QÄ

6
Alexios