コマンドラインから現在のキーボードレイアウトを取得するには?

コマンドラインから現在のキーボードレイアウトを取得するには?

すべてのディストリビューションのコマンドラインから現在のキーボードレイアウトを取得するには?可能ですか?

たとえば、xset -q | grep LED | awk '{ print $10; }'ローカルで異なるキーボードレイアウトを使用すると、異なる出力が表示されますが、他の人に尋ねると、レイアウトが変更されても同じ出力が表示されることがわかりました。可能ですか、それとも彼らが何か間違っていますか?現在、正確なキーボードレイアウトを得るための明確で正しい方法はありますか?

トピックを始めました。ここしかし、解決策が分布に依存することは明らかです。ここで私はこれを得るために多くのバリエーションを試しましたが、何もxset機能しないことがわかります。

しかし、各ディストリビューションにどのコマンドを使用しますか?たとえば、展開に基づいて現在のキーボードレイアウトを取得するために実行するスクリプトで。またはどのコマンドが出力されますか?現在のFedora、KDE ​​Neon、Ubuntu、Debian、Arch、Gentooなどのレイアウトを切り替えますか?

ベストアンサー1

解決策が見つからない理由は、解決策がないためです。 「US QWERTYレイアウト」のようなことを意味する場合、「現在のキーボードレイアウト」のようなものはありません。キーボードレイアウトは、事前定義された特定のレイアウトである必要はありません。これを明示的に説明する唯一の方法は、マッピングセット全体(使用可能xkbcomp :0 -)をダンプすることです。

この構成インターフェースまたはその構成インターフェースでどのレイアウトが構成されているかを確認できます。これらすべての情報は、その特定のインターフェイスにどのレイアウトが設定されているかを伝えます。このレイアウトが最新かどうかはわかりません。ユーザーはレイアウトを変更するために別のインターフェースを使用している可能性がxmodmapありますxkbcomp

あなたが得る結果setxkbmap -queryはできるだけ近いです。 Xサーバーから情報を取得するため、適用するかどうかに関係なくプロファイルに問題はありません。ただし、Xサーバーにキーボードレイアウトを変更するように指示する方法には、レイアウト名(およびオプション)を指定するか、個々のキーを設定する2つの方法があります。setxkbmap -queryと表示されると、us誰かが最後にXサーバーに特定のレイアウトをロードするように正常に要求したときに、要求がそのusレイアウトをロードしたことを意味します。ただし、個々のキーの設定を変更するための後続の要求が行われた場合、レイアウトはまったく異なるように見えることがあります。

誰もが間違って犯しません。キーボードレイアウトは必ずしも事前定義されたレイアウトではないため、「現在のレイアウト」という概念は通常システムには存在しないということです。

おすすめ記事