キーボードレイアウト/マッピングを変更できましたXウィンドウシステム使用中です~/.Xmodmap
(私の考えではあなたも合格できると思います)X-プロトコル直接使用図書館Xプロトコル呼び出しのためのラッパーとして)。
コンソール/ ttyで.onを使用できました(例:Xが実行されていないとき)loadkeys
。
キーボードレイアウトを同様にカスタマイズする方法はありますか?単一ソース、次のようにXとコンソールに影響を与えます。 「Xとコンソールにこだわらない」方法で?
(私が考えることができる唯一の方法は、カーネルの入力インターフェースと会話し、必要な入力をevdev
(uinput
?経由で)送信する「キーボードドライバ」を作成することです。しかし、それが意味があるかどうかはわかりません。
答え1
はい、方法があります。これが実際にDebianのコンソール設定パッケージが行うことです。
- キーボードレイアウトは、管理者がファイル名で生成します
keyboard
。/etc/default/keyboard
これは単一のソースであり、テキストエディタを使用して編集できます。 - プログラム
setxkbmap
には同じXKB設定があり、それに応じてX11サーバーを構成します。- キーボード設定パッケージのインストール後にメンテナンスプログラムスクリプトにX11モニタがあることがわかったら、
setxkbmap
単にセットアップを実行して設定します。/etc/default/keyboard
したがって、dpkg-reconfigure keyboard-configuration
X11 GUI端末エミュレータで実行すると、X11キーボードのレイアウトに影響します。
- キーボード設定パッケージのインストール後にメンテナンスプログラムスクリプトにX11モニタがあることがわかったら、
- スクリプト
setupcon
はこれらのXKB設定を取得してユーティリティに渡してキーマップを生成し、ckbcomp
キーマップをカーネル仮想端末に使用/ロードします。loadkeys
kbdcontrol
- このスクリプトは、システムが起動するとサービスによって実行されます。
- 他の時間に手動で実行することもできます。
他のシステムオペレーティングシステムは異なる動作をしますが、単一のソースもあります。
- XKB レイアウト、バリアント、オプションは
/etc/X11/xorg.conf.d/00-keyboard.conf
単一のソースに保存されます。- このファイルは起動時にX11サーバーから直接読み取られ、X11キーマップを直接設定します。
- このファイルは起動時に解析されます
systemd-localed
。systemd-localed
サービスは独自のメモリ情報でファイルを上書きするため、実行中はテキストエディタでファイルを便利に編集できません。 localectl
XKB情報を変更するには、他のサーバーと通信し、再び他のサーバーと通信する実行が必要ですsystemd-localed
。
systemd-localed
のマッピングを使用してXKB設定を仮想端末キーマップ名に変換して/usr/share/systemd/kbd-model-map
作成します/etc/vconsole.conf
。 Debianシステムとは異なり、XKB情報に基づいてマップを動的に生成するのではなく、マップファイルにリストされている事前提供静的マップのみを選択します。systemd-vconsole-setup
ブートローダで実行し、を/etc/vconsole.conf
実行してキーマップを読み取り、カーネル仮想端末にロードしますloadkeys
。
追加読書
keyboard
。 コンソール設定ユーザーガイド。ダーバン。ckbcomp
。 コンソール設定ユーザーガイド。ダーバン。- アンドリューT.ヤング(2011)。キーボード構成。
- Xkbはどこで構成を取得しますか?
- https://unix.stackexchange.com/a/326804/5132