注:1ヶ月前にスーパーユーザーにこのような質問を投稿しました。
キーボードのescキーとcaps_lockキーを変更したいです。setxkbmap -option caps:swapescape
作業を完了してください。しかし、Xでのみ可能です。キーストロークはデフォルトで仮想コンソールで機能します。 VCで自分が好きな方法で実行できるようにするにはどうすればよいですか?
答え1
Debianとconsole-setup
Debian Linux と Debian FreeBSD では、X サーバーとカーネル仮想端末が一連の構成情報を共有するように設計されています。このconsole-setup
パッケージは、Xサーバーのキーボード/フォント構成をインポートして変換し、それを使用してカーネル仮想端末を構成するためのツールと起動スクリプトを提供します。
具体的には、サービスは、udevの規則に従って、カーネル仮想端末デバイスに対して実行される翻訳されたキーボードとフォント設定の指示を含むスクリプトを生成するコマンドをconsole-setup
呼び出します。キーマップはXKBからformatに変換され、udevルールで呼び出されたビルドスクリプトが実行されます。setupcon --save
/etc/console-setup
loadkeys
ckbcomp
loadkeys
したがって、Debian Linux および Debian FreeBSD では、、、変数があることを確認する必要がありますXKBMODEL
。特に、あなたの場合は変数があることを確認する必要があります。その後、パッケージが正しくインストールされていることを確認する必要があります。 。XKBLAYOUT
XKBVARIANT
XKBOPTIONS
/etc/default/keyboard
XKBOPTIONS
caps:swapescape
console-setup
Linuxシステム
システムオペレーティングシステムでは、統合はDebianよりも少し悪いです。名前付き設定ファイル/etc/vconsole.conf
とシステムが起動するとsystemd-vconsole-setup.service
(カーネル内の仮想端末サブシステムの存在を知らせるudevルールに応答して)、ファイルを処理するサービスがあります。ただし、これは X サーバー構成とまったく統合されません。
このファイルには に渡されたキーマップを表す設定がvconsole.conf
あり、独自に明示的に実行する必要もありません。しかし、KEYMAP
loadkeys
それは完全にあなた次第です(カスタム)キーマップを作成して交換し、Caps Lock見つけられるEscape場所に配置します。loadkeys
より統合された設定を得るには、2つの異なるサービスsystemd-localed
とデスクトップバスを関連付ける必要があります。例えば一人で走る場合
localectl set-x11-keymap pl pc105 "" "caps:swapescape"ロケールD-BUSサービスは、
/etc/vconsole.conf
最良の推測に基づいて書き換えられます。最も近い同等物カーネル仮想端末マップ。この最も近い同等物は次のようにすることはできません。正確にしかし、オプションなどを完全に無視することがわかります。
もちろん、ckbcomp
Debianを使用して直接XKBキーマップを手動で変換することもできます。 ☺
追加読書
- https://superuser.com/questions/709616/
- https://wiki.debian.org/Keyboard
systemd-vconsole-setup-service
。システムのマニュアルページ。 freedesktop.org.vconsole.conf
。システムのマニュアルページ。 freedesktop.org.- カルステンヒルベルト(2014-08-29)。 systemdのコンソール設定でフォント設定を忘れました。。 #759657。 Debianのバグトラッカー。
localectl
。システムのマニュアルページ。 freedesktop.org.- https://unix.stackexchange.com/a/479720/5132
答え2
使用loadkeys
。
交換するには、EscコンソールCaps Lockで以下を実行します。
printf 'keycode 1 = Caps_Lock Caps_Lock\nkeycode 58 = Escape Escape\n' | sudo loadkeys -