Keyboard layout switching/ja

キーボードレイアウトはキーボードからのスキャンコードをアプリケーションに送信される文字へと変換します. またキーボードレイアウトは、それ自体は文字を出力しませんがその後のキーの出力を変更するいわゆるデッドキーを通じて、より複雑な変換を行うこともできます. ASCII集合以外の文字を入力するためにQWERTYキーボードと非QWERTYキーボードの両方をサポートするには、適切なキーボードレイアウトが必要です.

OpenRC
デフォルトのコンソールキーマップは で適切なキーマップを keymap の値に割り当てることによって設定されています. keymap の値は で定義されており、ほとんどのユーザーは  にある値を使うことになるでしょう. 必要に応じて、 のような適切なインクルードディレクトリから extended_keymaps 変数に値を設定します. たとえば多くのキーボードで E と C となっている位置を Alt-Gr と同時に押すことでユーロとセント(訳註: の通貨記号)が得られるようにするには、extended_keymaps="euro2" を設定します.

最後に を boot ランレベルに追加します.

変更を適用するために keymaps を再起動します.

ターミナルに非ASCII文字を表示する必要がある場合は を編集してフォントを変更しなければなりません

consolefont を再起動します

また、boot ランレベルに追加します

カスタムキーマップ
カスタムキーマップを作るには 内の既存のキーマップを参照します:

これはスラッシュとアポストロフィーのキーが入れ替わっている以外は U.S. QWERTY キーマップと同様のカスタムキーマップの例です:

キーに対応付けられているキーコードを見つけるには の出力を見ます:

上のコマンドを使ってもキーが見つけられない場合、以下を実行します:

キーを押すとそのキーコードが表示されます. 終わったら、数秒待てば は終了します.

systemd
systemd は を使用してターミナルフォントとキーボードレイアウト設定の両方を読み込みますが、OpenRC にあるような詳細な設定はありません. 有効な値は OpenRC が対応する変数でサポートしているものと同様のはずです.

X11
現代の X11 アプリケーションは通常 libXklavier (「klavier」は「keyboard」にあたるドイツ語です)を使っており、 を使用して設定することができます. さらに、X11 は仮想ターミナルでサポートされているものよりずっと広範なキーボードレイアウトをサポートしています. しっかりしたデスクトップ環境は自らキーボードレイアウトを管理していることを覚えておくべきでしょう. 先述したアプリケーションを直接使う必要はありませんが、キーボードレイアウトの管理が壊れていたり無い場合には役に立つかもしれません.

KDE4 / Plasma
を開き モジュールへ移動します.

sddm ログインマネージャーで追加の言語を利用できるようにするには、 ファイルを編集して setxkbmap コマンドと選択肢にしたい言語のコンマ区切りリストを追加します.

たとえばドイツ語をデフォルトとして有効化し、また US をもーボードレイアウトとして示すには以下を追加します:

一般的なデスクトップ環境
を編集して をそこから実行するか、Xorg の設定ファイルでキーボードをセットアップします(例は下を見てください).

setxkbmap を使用する
これらの変更は永続的ではなく、ユーザーが X11 を再起動するまでの間のみ保持されます. もちろん、このコマンドをスタートアップスクリプトから呼び出して X サーバーが起動するたびに適切なパラメーターがセットされるようにすることもできます.

既存の設定を調べるには:

キーボードレイアウトの設定:

キーボードレイアウト、バリエーション、モデルの設定:

2つのキーボードレイアウトと LED 表示のセットアップ:

キーボードの設定オプションの完全なリストについては  マニュアルを読むことをおすすめします:

サポートされているレイアウト、バリエーション、またはその他の xkb プロパティの値をこのアプリケーションで調べることはできないようですが、それらのほとんどは ファイルに列挙されています. 最も網羅的なリストは 内の他のファイルを調べることでのみ得られるようです. 設定を正常に保つために、適切なデスクトップ環境のキーボードレイアウト管理を用いることをおすすめします.

システム全体のレイアウト設定とショートカットを使用する
この方法はデスクトップ環境がない構成、言い換えるとウィンドウマネージャを使った単なる X11 におすすめです. ファイルを作成して適切なキーボード設定を構成します.

上の例は + を切り替えのショートカットとして US とブラジル語のキーボードレイアウトを構成しています. ブラジル語レイアウトはキーボードのスクロールロック LED によって示されます.

可能な追加設定
キーボードマッピングの設定の際に使えるバリエーションや選択肢は数多くあります. これらの多くは ファイルで見つけることができます.

たとえば、 バリエーションを使うといくつかの国際文字を出力できる US レイアウトを構成できます:

これで を国際文字を入力するための修飾キーとして使うことができます.

Xorg はコンポジション、すなわち コンポーズキーに続けて一連の文字を押すことによって国際文字や様々なシンボル文字を入力するオプションを提供しています. コンポジションを有効化するには  オプションを追加します:

上の  オプションは  をコンポーズキーに設定します. この設定では:


 * 度の記号 '°' を入力するには を押してから 'oo' とタイプします
 * 著作権記号 '©' を入力するには を押してから 'oc' とタイプします
 * 笑顔 '☺' を入力するには を押してから ':)' とタイプします
 * 上付き文字の2 ('²') を入力するには を押してから '^2' とタイプします
 * 下付き文字の2 ('₂') を入力するには を押してから '_2' とタイプします
 * 直径記号 '⌀' を入力するには を押してから 'di' とタイプします

...などなど. ファイルには使用可能なすべてのコンポジションの情報源が列挙されています.

X のキーボードレイアウトを強化する
キー割当ての追加やファンクションキーへのアクションの追加などのより広範囲な変更をキーボードレイアウトに加える必要がある場合、この方法が必要です. こうした変更は実際のところパッケージのソースファイルの強化にあたるので、パッケージを次にアップデートしたときに変更が保持されるようにユーザーパッチの仕組みを使用することをおすすめします.

基本
関連する Gentoo パッケージは です. X でのキーボード設定は仮想コンソールでのそれよりも複雑です. 関連する設定ファイルは のサブディレクトリにあります:


 * これらのファイルはキーコードをシンボル名に関連付けます. これを変更したくなることはおそらくないでしょう.
 * これらのファイルはキーコードをシンボル名に関連付けます. これを変更したくなることはおそらくないでしょう.


 * これはキーボードの物理的な形状で、キーボードの図を描画するようなソフトウェアによって使用されます. これも変更したくなる可能性は低いでしょう.
 * これはキーボードの物理的な形状で、キーボードの図を描画するようなソフトウェアによって使用されます. これも変更したくなる可能性は低いでしょう.


 * ここにあるファイル群は「タイプ」を作成します. タイプはキーの宣言で使用され、そのキーとどのシフトキーの組み合わせが使用できるかを指定します.
 * ここにあるファイル群は「タイプ」を作成します. タイプはキーの宣言で使用され、そのキーとどのシフトキーの組み合わせが使用できるかを指定します.


 * これらのファイルは実際のキー割当てを指定します.
 * これらのファイルは実際のキー割当てを指定します.


 * ここにあるファイル群はキーに割り当てられる「アクション」(たとえば仮想ターミナルへの切り替えなど)を指定し、名前を与えます.
 * ここにあるファイル群はキーに割り当てられる「アクション」(たとえば仮想ターミナルへの切り替えなど)を指定し、名前を与えます.


 * これらのファイルはキーボードタイプや言語といった引数を受け取り、他のディレクトリの適切な仕様を有効化します.
 * これらのファイルはキーボードタイプや言語といった引数を受け取り、他のディレクトリの適切な仕様を有効化します.

これらのディレクトリ内のファイルについてのより完全な説明は An Unreliable Guide to XKB Configuration by Doug Palmer にあります. これは名前が示すよりもずっと高品質です. さらなるドキュメンテーションは xkeyboard-config のホームページ freedesktop.org にあります.

Xkb はキーの名前を「」のように表します. これは「英数字 (Alphanumeric) 領域の C 行(すなわち下から3番目の行、CapsLock のある行です)のキー番号 01 、行の1番左のキー」という意味です. このキーは英語レイアウトでは です. 他の領域のキーは、 が「」、左コントロールキーが「」というように異なった名前を持っています.

キー割当ての追加
例としてこの節ではイギリス英語キーボードレイアウトを、 と共に 、、 とタイプするとドイツ語のウムラウト文字 ä、ö、ü が生成されるように強化します. また大文字版についても適切に扱えるようにする必要があります. 強化するキーは ()、 ()、 () になります. (ß の文字は既に + に割り当てられています. )

xkb におけるウムラウト付き文字の名前は「adiaeresis」といった具合になります. これらの名前は ファイルにありますが、名前を得るには先頭の「XK_」を取り除く必要があります.

ディレクトリから正しいファイルを特定してください. これらのファイルのほとんどは2文字の国名コード(グレートブリテンなら のような)から名付けられているので、現在 X で選択されているキーボードレイアウトと同じものを推測します. この例では を強化します.

上の情報を使い、 の既存のスキーマをコピーして新しいエントリを作成します. この例ではこれらのエントリを「basic」セクション内に追加します. 内容から容易に想像できるとおり、各キーのエントリの波括弧と角括弧に囲まれた4つの項目は順に通常(キーの組み合わせなし)、、、+ です:

追加後、このセクションはこのようになります:

このファイルをセーブしたら X Window を再起動しましょう. 典型的なデスクトップ環境の1つである XFCE は起動する度に上の設定ファイルを再読み込みします. もしエラーがあればエラーメッセージが通常の に書き込まれます - X Window がコマンドラインから起動された場合、 はその開始された仮想ターミナルでしょう.

ファンクションキーにアクションを追加する
例として「仮想ターミナル n に切替える」(n > 12 の場合) というアクションを 、、 がすべて押されているときの -  に割り当てます. 同様の効果は と  が押されているときにも発生するはずです.

まず、 ディレクトリ内でファンクションキーの既存の割当てを扱っているファイルを探します. そのファイルは です. これから編集しようとしている、このファイルの エントリは以下のとおりです:

このエントリについては2つ補足があります:
 * これは「CTRL+ALT」タイプです; したがって標準的な と  を使う4つのシフトキー設定に加え、+ という5番目の設定があります. 今回の目標は ++ を使うことなので、既存のタイプの中には適切なものがなく新しく作る必要があります.
 * 「アクション」 は xkb システムにおいて定義されている単なるシンボルです. その意味は  内のあるファイル、具体的には  によって与えられています.   (以降)のシンボルは存在しません - 代わりに、他に使われていない既存のシンボルであるF13、F14、...、F24 を流用します.

CTRL+ALT+SHIFT タイプを新しく作成する
に「CTRL+ALT」があるので、これをコピーして「CTRL+ALT+SHIFT」にリネームし ++ という修飾キーの組み合わせを使えるようにするのは簡単です. 結果はこのようになります:

F13、...、F24 シンボルを有効化する
シンボルは を見るとすぐ見つかります. この形式をコピーして F13、...、F24 シンボルの割当てを作成するのは簡単です. これらのシンボルの最初の1つである F13 は ではこのようになります:

F14、...、F24 についても似たような定義をファイルに追加してください.

、...、 キーのシンボルのエントリを修正する
これで新しいタイプ CTRL+ALT+SHIFT と F13、...、F24 シンボルが定義されたので、 にあるファンクションキーの定義を修正します. 以下では の定義について触れますが、他のファンクションキーについても似たような定義を挿入する必要があります:

、、 にこれらの変更を行い X を再起動したら、X から仮想ターミナル 13 以降に直接切替えることができます - もちろん、これらが /etc/inittab で設定されている場合に限ります.