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 の設定ファイルでキーボードをセットアップします(例は下を見てください).

lxpanel のキーボードレイアウトハンドラー
はキーボードレイアウトハンドラーをパネルアイテムとして提供します.



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 の場合) というアクションを 、、 がすべて押されているときの -  に割り当てます. 同様の効果は と  が押されているときにも発生するはずです.

First, search for the file in the directory which handles the existing assignments for the Function keys. This file is. The entry in this file for, which is intended to be modified, is:

There are two things to note with this entry:
 * It is of type "CTRL+ALT"; it thus takes the standard four shift key settings with and, plus a fifth setting of +. Since the goal is to use ++, and there is no suitable existing type, a new one needs to be created.
 * The "action"  is just a defined symbol in the xkb system. Its semantics are given to it by an entry in a file in the  directory, namely . There is no symbol   (or higher) - instead, steal the otherwise unused existing symbols F13, F14, ..., F24.

Creating the new type CTRL+ALT+SHIFT
Having located "CTRL+ALT" in, it is easy enough to copy it, rename the copy to "CTRL+ALT+SHIFT" and extend this to allow the modifier key combination ++. The result looks like this:

Activating the symbols F13, ..., F24
The symbol  is swiftly located in. It is a simple matter to copy its form, creating assignments for the symbols F13, ..., F24. The definition for the first of these symbols, F13, in then looks like:

Analogous definitions for F14, ..., F24 should also be put into the file.

Amending the entries in symbols for keys, ...,
Now that the new type CTRL+ALT+SHIFT and definitions for the symbols F13, ..., F24 are defined, amend the key definitions for the function keys in. The one for is mentioned below, analogous definitions also need to be inserted for the other function keys:

After making these changes to, , and , and restarting the X server, switching from X directly to virtual terminals 13 and above is now possible - provided that these have been configured in the /etc/inittab (or systemd equivalent) of course.