キーボードレイアウトを*一時的に*切り替えることについて考えていますか?

キーボードレイアウトを*一時的に*切り替えることについて考えていますか?

私はDvořákタイピストです。私のコンピュータでは、dvorakがデフォルトで、他のコンピュータではsetxkbmap(Xを使用するとき)またはloadkeys(そうでない場合)を頻繁に使用します。しかし、「共有」システムはどうですか?

顧客のためにシステムを準備するなどのシステムタスクを実行するとき(Linux、主にRHベース)、時には管理者アカウントを共有します。私が引き受けた役割を果たした後に再び切り替えることを忘れてしまうと、すべてが崩れます。これ以上何も入力できないので、これは理解できます!

at私は仕事を始めたときに仕事を始めようとしましたが、問題のシステムは機能しませんでしたatd(変更できません)。 :-(

理想的には、ターミナルを開き、キーボードのレイアウトを切り替え、ターミナルを閉じるときにシステムが変更を「忘れる」ことを望みます。setxkbmap一方、両方ともloadkeys「より高い」レベルでレイアウトを変更します。

誰でもどんなアイデアがありますか?
(追加命令などを入力する必要がありますが、大丈夫です。他の人がそうするとは思えません。)

ベストアンサー1

最も簡単な方法は、作業を終えた後にログアウトすることです。個人の変更はログアウトするまでのみ続きます。つまり、誰かのアカウントを邪魔するのが一般的なユースケースです。

以下を端末に入力/貼り付けます(bashまたはzshの実行)。

xkb=$(xkbcomp :0 -); trap 'xkbcomp - :0 <<<"$xkb"' 0 1 2 15; setxkbmap dvorak

正常にシェルを終了するか(exitCtrl+ D)、端末を正常に閉じると(SIGHUP転送)、つまり通常の方法でシェルセッションを終了すると、トラップは元のキーマップを復元します。

同時に複数の端末でこれを実行しないでください。終了した最初の端末は元の構成を復元し、最後に終了した端末はこのコマンドが実行されたときに構成を復元します。

復元したいキーマップを知っていて、一般的なターミナルシャットダウンを処理したい場合は、それを単純化できます。

trap 'setxkbmap us' 0 1; setxkbmap dvorak

一般的なキーボード設定GUIコンフィギュレータで実行できるカスタマイズは復元されません。 (これは基本的に標準のXKBマッピングに存在するオプションです。)ユーザーのカスタム設定を復元するには、上記のxkbcomp :0 -方法を使用して元のキーマップを保存する必要があります。

または、ウィンドウの切り替えレイアウトを提供するインターフェイスを使用して、1つのターミナルウィンドウに固執します(GUIアプリケーションを実行しないでください)。一部のデスクトップ環境では、この機能が提供されます。XFCE)、良い知識ベース。 Kbddをデフォルトのインストールで使用または構成する可能性はほとんどありませんが、デフォルトのデスクトップ環境にこの機能がある可能性があります。

あなたのユースケースには適用されませんが、ユーザーアカウントにログインしたときにユーザーのコンピュータに介入するユースケースには、適用されるいくつかの説明があります。

  • これにより、元々設定されたレイアウトに微妙な違いが生じる可能性がありますが、xmodmapそのようなニュアンスに依存している人は、基本が機能するレイアウトから手で作成したキーマップを復元する方法を知ることができます。
  • マルチレベル(マルチ言語など)構成では、現在アクティブなレベルが正しく復元されるかどうかはわかりませんが、レイアウトを頻繁に切り替える人はレイアウトを切り替える一般的な方法を使用します。
  • これは、レベルを変更するのではなく、XKBレイアウトを変更するバックグラウンドアプリケーションによって提供されるレイアウト遷移を深刻に妨げる可能性があります。この場合、レイアウトを変更してDvorakに切り替えるように依頼する必要があります。

おすすめ記事