web-dev-qa-db-ja.com

ターミナル(デスクトップ環境なし)で構成キーを定義する方法は?

私のシステム(Debian Sid "Wheezy")にcomposeキーを定義したいと思います。 Xorgを使用していません(デスクトップ環境も必要ありません)。ターミナルのみ。

Alt-Grキー(右Alt)に設定したいと思います。しばらく試しましたが、設定方法がわかりません。

私は調査していて、いくつかの方向を見つけました:

  • $ showkeyAlt-Grキーのキーコードを教えてくれます(#100)

  • $ dumpkeysおよび$ dumpkeys --compose-onlyは、keymapsページに従って、manで指定された形式で「キーボードのドライバーの現在の内容」を出力します

  • $ loadkeysキーボード変換テーブルを読み込む

それほど難しくはないと思いますが、どう対処すればいいのかわかりません...

18
cedbeu

新しいDebianおよびUbuntuシステムでは、キーボード設定は_/etc/default/keyboard_に入れられ、Xとコンソール間で共有されます。とにかく走れ

_Sudo dpkg-reconfigure keyboard-configuration
_

適切な画面で_Compose key:_ Right Alt (AltGr)を選択します。

_XKBOPTIONS=compose:ralt_を_/etc/default/keyboard_に入れて実行することもできます

_Sudo dpkg-reconfigure console-setup
_

古いシステムでは、デフォルトでコンソールにComposeキーがあります。 usレイアウトでbothを押す Alt キーは一緒に機能します Compose1

例えば: Alt+AltGr、 "、 A =>Ä

ご希望の場合 AltGr するだけ Compose、変更する必要があります

_alt keycode 100 = Compose
_

アクティブなキーボードマップで

_keycode 100 = Compose
_

これを行う最も簡単な方法は、上記の_/lib/kbd/keymaps/i386/include/linux-with-alt-and-altgr.inc_を変更することです。

より良い方法は、上記の行で_/lib/kbd/keymaps/i386/include/altgr-is-compose.inc_という名前の新しいファイルを作成し、それを含む新しいキーマップを作成して、それをデフォルトのキーマップに設定することです。

  1. PrtScn としても機能します Compose デフォルトでは。
11
Mikel

コンソールで「作成」すると、2つの文字を入力できますが、3番目の文字が出力されます。

問題は、コンポーズ定義がbytesを2つの入力として使用することです(つまり、コンポーズを型付きキーで定義することはできませんが、型付きシンボルでのみ定義できます)。

マルチバイト(少なくとも1〜4バイト)であるUTF-8で機能させるには、コンソール入力の処理方法を大幅に変更し、現在使用されている単純なchar配列をより複雑なものに置き換える必要があります。そうする計画はないようです(カーネル開発者の間のコンセンサスは、コンソールはコンソールであり、単純なものであり、最後の手段でのみ使用されるということです。実際にユニコードが必要な場合は、おそらくビディ、シェーピングなども必要です。次に、グラフィカル端末を実行することをお勧めします(X11ではフルスクリーンxterm。他の可能性もあります)。

したがって、実際には、コンソール上のマルチバイト文字では機能せず、機能しません。ただし、構成定義をプレーンASCIIに制限しても機能します。

また、出力がiso-8859-1(0x00ffまでのUnicode値に対応する)の場合にも機能することもわかりました。そのため、開始スクリプトに次の行を入れることができます。

    loadkeys/somepath/somefile

そして、そのファイルに必要な構成定義を入れます(ISO-8859-1エンコーディングでファイルを保存し、出力として0x7fより大きい文字を使用するように注意してください)。このようなファイルの構文は非常に単純で、次のような行です。

    「somechar」「somotherchar」を「desiredoutput」に作成

例えば:

構成 'a' 'a'から 'å' 
構成 'a' 'e'から 'æ' 

アポストロフィはエスケープする必要があります。

無効な発音区別符号キーの効果もそのファイルで定義されています。 dead_acute + aの場合、次のような行を定義します。

    「\」「a」を「á」に作成

dead_Graveはバックティック( `)を使用し、dead_diaeresisは二重引用符(")を使用し、dead_circumflexはサーカムフレックス(^)を使用し、dead_tildeはチルダ(〜)を使用します。

2
Pablo Saratxaga