web-dev-qa-db-ja.com

Ubuntu 17の仮想コンソールでcaps-lockを変更して制御する

仮想端末のCaps Lockの動作を変更したい(tty e.g. CtrlAltF3)そのため、Control修飾子として機能します。理想的には、単独で押されたときにEscapeとして機能するようにしたいのですが、コントロールの動作を取得するだけでは難しいことが判明しています。

Ubuntu 17.04を実行しています。私はこの変更を行うための多くのアプローチを読んで試しましたが、説明したように私のシステムに適用できるものはありません。 systemdがこれに関与しているように感じますが、詳細は不明です。

キャップをコントロールにマップするファイルcaps_control.kmapを作成しました。

keymaps 0-255
keycode  58 = Control

仮想コンソールからloadkeys caps_control.kmapを実行すると、動作します。今、私はブート/ログイン/何でも自動的にロードするようにしたい...

/etc/rc.localを使用するための参照を見つけましたが、/etc/rc0.d//etc/rc1.d/などのディレクトリがいくつかありますが、システムにはそのようなファイルはありません。

Ubuntu 17はsytemdを使用しているため、localectlを使用してこの種のことを管理する必要があるように思えますが、その方法は明確ではありません。例えば、

$ localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105
$ localectl list-keymaps
Couldn't find any console keymaps.

localectlのマニュアルページには、/etc/locale.conf/etc/vconsole.confが記載されていますが、どちらもシステムには存在しません。

私は完全に途方に暮れています。誰かが私を正しい方向に向けることができますか?

8
ivan

Caps Lockをttyコンソールでも有効な追加のCtrl修飾子に変更するには、/etc/default/keyboardを開いて編集および設定します。

XKBOPTIONS=ctrl:nocaps

既にXKBOPTIONSが設定されている場合は、セパレータにカンマを使用してctrl:nocapsを既存の値に追加します。例:

XKBOPTIONS="terminate:ctrl_alt_bksp,ctrl:nocaps"

次回の再起動後またはsetupconコマンドの発行後に有効になります。

このオプションは、localectl statusの実行時に存在する必要があります。

$ localectl status | grep caps
     X11 Options: ctrl:nocaps

Xセッションでは、設定されていることを確認する別の方法は次のとおりです。

$ gsettings get org.gnome.desktop.input-sources xkb-options
['ctrl:nocaps']
7