現在選択されているキーボードレイアウトをコマンドラインから変更するにはどうすればよいですか?


12

キーボードレイアウト(そのうちの2つ)があり、次のコマンドで構成を切り替えます。

setxkbmap -layout us,ru -option -option "grp:lctrl_lshift_toggle,ctrl:nocaps"

ここでus、コマンドラインコマンドを使用して、レイアウトに切り替えます。それは可能ですか?

回答:


13

xkb-switchを使用できます(-n次のレイアウトに切り替えます):

xkb-switch -n

またはxkblayout-stateset +1ラップアラウンドするには、あなたの場合):

xkblayout-state set +1

またはxteからxautomationシミュレートするために、Control_L+ Shift_L:キーを押す/リリース

xte 'keydown Control_L' 'keydown Shift_L' 'keyup Shift_L' 'keyup Control_L'

xkblayout-stateは素晴らしいです、ありがとう!を使用するだけxkblayout-state set 1で、すぐにusレイアウトを取得できます。
-Rogach

2

Stack Exchangeでkbdmapを検索すると、その単語が記載されていないこのページが見つかります。明確にするために、ここに答えがあります(質問のX11タグに正確に適合していませんが、誰かに役立つはずです)…

仮想コンソールに制限されている場合

– X なし

kbdmap(1)

kbdmapvidfont-sysconsおよびvtのフロントエンド

…利用可能なキーマップを簡単に設定できます…

本当に、それは簡単で、(私にとっては、英国のキーボードレイアウトに変更すると)効果的です。

Xを使用する場合

–たとえば、FreeBSDベースのTrueOSデスクトップを使用します。

キーボードレイアウトの変更の下の投稿5から?| FreeBSDフォーラム(2015-08-03):

kbdmapコンソール用です。setxkbmapX11に必要なユーティリティです。…

たとえば、U nited Kingdom に変更する場合、警告があります。

$ kbdmap
kbdcontrol: getting keymap: Inappropriate ioctl for device
You are not on a virtual console - expect certain strange side-effects
lang_default = en
dialect = en_...UTF-8
lang_abk = en

…

keymap="uk.kbd"
$ 

1

キーボードレイアウトのディストリビューションに応じて、コマンドは

loadkeys <path/to/file>

loadkey /lib/kbd/keymaps/i386/qwerty/pt_PT.map.gz

私が正しく覚えていれば。特定のキーを特定の動作に割り当てる場合は、ロードキーのマンページも確認してください。


問題は、私は(例えば)行った後ということでloadkeys us、それは(それらの間の2つのレイアウトおよびスイッチング)私はsetxkbmapで作成した設定をリセットします
Rogach

私が知っている限り、これがレイアウトを変更するコマンドであり、特定のものがある場合、最善の方法は、yout設定でロードキーを呼び出すエイリアスをシェルに持つことだと思います。例:load_usはusキーボードをロードし、実際にはloadkey /lib/kbd/keymaps/i386/qwerty/us.map.gzなどを呼び出します。他のレイアウトでも同じです。
BitsOfNix

しかし、その後キーボード設定をどのように変更しますか?現在、Ctrlキーを押しながらShiftキーを押しながらロードキーを使用してレイアウトを変更します。
-Rogach

ここから戻って、コマンドラインからtty端末について言及していると仮定します。xterm / terminology / gnome-terminalまたはその他のエミュレーターを使用していないが、実際にはXサーバーのない環境にいることを意味します。これを取ると、あなたの質問に従って、ロードキーを使用する必要があります、私はあなたにコマンドラインを与えました。特定のキーをマップする場合は、独自のレイアウトを作成し、cliビューのロードキーを使用してリクエストに応じてロードする必要があります。代わりにショートカットが必要な場合は、質問を更新してください。
-BitsOfNix

いいえ、確かに、私は特にグラフィカル環境とgnome-terminalを使用しています。いくつかのイベントに対応して、プログラムでXレイアウトを変更する必要があるだけです。したがって、ttyのものは動作しません。
-Rogach

0

次のタイトルのHOWTO FORGEの記事をご覧ください。 さまざまなディストリビューション言語とキーボードのレイアウトを変更するください。さまざまなディストリビューションでキーボードレイアウトを変更するためのさまざまなコマンドについて説明しています。

これらのコマンドのほとんどはGUIとして表示されますが、見ればコマンドラインからも実行できます。たとえば、Fedora(Red Hatベースのディストリビューション)を使用しています。system-config-keyboard引数なしでコマンドを実行すると、GUIが表示されます。

しかし、実行するsystem-config-keyboard --helpと、コマンドラインからも実行できます:

$ system-config-keyboard --help
Usage: system-config-keyboard [--help] [--noui] [--text] [<keyboardtype>]
       --help            Print out this message.
       --noui            Run in command line mode.
       --text            Run in text interface mode.

       <keyboardtype> options are: ar-azerty, ar-azerty-digits, ar-digits, ar-qwerty, ar-qwerty-digits, be-latin1, ben, ben-probhat, bg_bds-utf8, bg_pho-utf8, br-abnt2, cf, croat, cz-lat2, cz-us-qwertz, de, de-latin1, de-latin1-nodeadkeys, dev, dk, dk-latin1, dvorak, es, et, fi, fi-latin1, fr, fr-latin1, fr-latin9, fr-pc, fr_CH, fr_CH-latin1, gr, guj, gur, hu, hu101, ie, is-latin1, it, it-ibm, it2, jp106, ko, la-latin1, mk-utf, nl, no, pl2, pt-latin1, ro, ro-cedilla, ro-std, ro-std-cedilla, ru, sg, sg-latin1, sk-qwerty, slovene, sr-cy, sr-latin, sv-latin1, tj, tml-inscript, tml-uni, trq, ua-utf, uk, us, us-acentos

したがって、キーボードレイアウトをロシア語に変更するには、次のコマンドを実行できます。

$ system-config-keyboard ru
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.