Fedora 26にアップデートしましたが、Capslockキーは奇妙に動作します(またはまったく動作しません)。 Fedora 25では、xkb設定はCtrlとCapsの変更に非常に効果的です。 Gnome Tweak Toolsで「Caps as Ctrl」を選択しましたが、Capsはまったく何もしません!大文字キーを使用すると、xev
次の結果が表示されます。
KeyRelease event, serial 36, synthetic NO, window 0x2600001,
root 0x273, subw 0x0, time 2293119, (164,-21), root:(271,94),
state 0x10, keycode 66 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
キーコードの後の括弧には、NoSymbolの代わりにLCtrlを含める必要があります。また、Capsを無効化および/または有効にしてみました。これに加えて、/usr/share/X11/xkb/keycodes/evdev
Caps = 37を修正して使用してCapsをLeft Controlと同様にしようとしましたが、これも効果がありませんでした。私を助けてください。私はウェイランド以来少し迷子になりました!
また、以下を介して左のコントロールとAltを変更しました。
<LALT> = 37; //64;
<LCTL> = 64; //37;
前述のファイルから - >これはまだ魅力的です!
答え1
一時的に修正しました(この部分がたくさん愛されてくれることを願っています)。以下では、 ""を除くすべての項目の選択を解除しgnome tweak tools
ました。プログラムが「Capslock - Disabled」や「Capslock Disabled」などの多くのオプションを重複して一覧表示し、ほとんどのオプションがはっきりと表示されていないため、Caps Lock制御が多くのオプションによって変更される理由がわかりません。Typing
Capslock is also Control
答え2
Gnome調整キーボードとマウスの追加レイアウトオプションここでCaps Lockオプションを見つけることができます。
答え3
Gnome以外の環境、KDE環境、Waylandを扱うリソースがあまりないので、完全性のためにこの答えを残します。
私はDebian Busterを使用しており、XWaylandの上からWMにFluxboxを実行しています(これはXWayland WM以外の場合は動作しない可能性があります)。一般的なタスク、つまりマップを設定すると、.xmodmaprc
実際にタスクが実行されます。
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
このソリューションは、XWaylandベースのWMでのみ機能できるというMarkのコメントを反映して更新されました。
答え4
Caps lock別の解決策は、およびを使用するようにCtrlマッピングを実装することです。caps2esc
interception_tools
以降、以下のステップを実施し説明した。エスケープと制御のためにCaps2escを介してFedoraでCaps Lockをマッピングする方法、必要に応じて詳細を提供します。
両方をインストールcaps2esc
してinterception_tools
cd ~/your/code/directory
git clone https://gitlab.com/interception/linux/tools interception_tools
git clone https://gitlab.com/interception/linux/plugins/caps2esc
inception_tools
依存ライブラリのインストール
sudo dnf install cmake yaml-cpp-devel libevdev-devel systemd-devel -y
caps2esc
そのディレクトリでビルドとインストールを実行し、inception_tools
インストールを確認します。sudo make install
which udevmon
which caps2esc
inception_tools
で横キーを指定するように設定します/etc/caps2esc.yaml
。この場合、キーはKEY_CAPSLOCK
次のようになりますKEY_ESC
。
- JOB: "intercept -g $DEVNODE | caps2esc | uinput -d $DEVNODE"
DEVICE:
EVENTS:
EV_KEY: [KEY_CAPSLOCK, KEY_ESC]
これでデーモンプロセスを作成します(参照:この回答到着systemdでプロセスをサービスにする方法は?)のsystemd
詳細については、/etc/systemd/system/caps2esc.service
次の項目を作成してください。
[Unit]
Description=caps2esc
[Service]
ExecStart=/usr/bin/nice -n -20 /usr/local/bin/udevmon -c /etc/caps2esc.yaml
[Install]
WantedBy=multi-user.target
これでsystemctl
サービスを管理するために使用されます。
sudo systemctl daemon-reload
sudo systemctl enable caps2esc # Start on bootup
sudo systemctl start caps2esc # Start now too
caps+これで+をC実行する必要があります。これは端末で確認できます。ctrlC