プログラムでキーボードレイアウトを切り替える

プログラムでキーボードレイアウトを切り替える

私は3つの異なるレイアウトを使用しており、関数を介して.bashrcプログラムでレイアウトを変更するコードを見ています。

答え1

たとえば、米国のレイアウトを取得するには(しかし、プログラミングに最適です。これ質問)。

Xで試してくださいsetxkbmap -layout us

Linuxコンソールで;を追加し、XKBLAYOUT="us"スーパー/etc/default/keyboardユーザーsetupconとして実行します。またはdpkg-reconfigure keyboard-configuration(スーパーユーザーとして)を使用してください。 ;を使用して、Xとは異なり、コンソールで他のマップを使用することもできますKMAP。を見てください/etc/console-setup/

.bashrcこれには少しの操作が必要な場合があります。おそらく、高速アクセスのためにファイルにエイリアスおよび/または関数を作成したいと思うかもしれません。前後に切り替える予定の場合は、次の点を確認してください。書く要点は、より良い解決策があるということです。もちろん、全く別の文字で書かない限り。

答え2

特定のレイアウトに切り替えるための標準ツールが提供されていないことは本当に奇妙ですX11(複数のレイアウト定義を使用するときsetxkbmap)。

しかし、私はこれを行うためのツールを見つけました。xkblayout-state

これにより、レイアウトスタックの名前または位置で現在のレイアウトを取得または設定できます。

答え3

真剣に見えるかもしれませんが、魅力的に動作します。

setxkbmap -layout ru && setxkbmap -layout ru,us
setxkbmap -layout us && setxkbmap -layout us,ru

強制切り替え:

setxkbmap -layout ru && setxkbmap -layout us && setxkbmap -layout us,ru

必要に応じてループをプログラムできます。

関連情報