web-dev-qa-db-ja.com

マウスの左ボタンとしてCapsLockを使用します。ほとんどは機能しますが、いくつかの点で失敗します

Linux System Info:
OS:        GNU/Linux x86_64
Kernel:    3.13.0-24-generic
Distro:    Linux Mint 17 Qiana, Cinnamon 64-bit 2.2.16
           [Based On: Ubuntu 14.04.5 LTS, Trusty Tahr]

指の障害を含む障害(脊髄損傷)のため、キーボードのCapsLockキーをマウスの左ボタンとして使用できるようにいくつかの変更を加えました。 NumLockは、CapsLockとして機能するように再マップされます。

CapsLockを左クリックおよび左ダブルクリックとして使用すると、ほとんどすべてが正常に機能しますが、以下にリストされているいくつかの機能は機能しません...

編集2019-01-1

長い投稿の残りの部分は削除されました-CapsLockとして機能するように再マップされたNumLockでマウスの左ボタンとして機能するようにCapsLockキーを設定する方法については、以下の私の回答を参照してください。

7
mattst

私自身の質問に答える...

マウスの左ボタンとして機能するようにCapsLockを設定することは、予想よりもはるかに簡単であることが判明しました。 [注:物理的なマウスの左マウスボタンは引き続き通常どおりに動作します。]

1)CapsLockをマウスの左ボタンにマップします(66はCapsLockキーコードです):

$ xmodmap -e "keycode 66 = Pointer_Button1"

2)NumLockをCapsLockにマップします(77はNumLockキーコードです):

$ xmodmap -e "keycode 77 = Caps_Lock"

注:これは、NumLockがCapsLockの置換キーとして機能し、NumLockの機能が失われることを意味します(とにかく使用することはありませんが、NumLockを使用する場合は、Pause、ScollLockなどの別のキーを使用します)。

3)マウスキーを有効にします。

$ xkbset mousekeys

注:xkbsetは一部のディストリビューションにデフォルトでインストールされておらず、これはシステム設定の[ユーザー補助]セクションでマウスキーを有効にすることと同じではありません。

これですべて完了です。


ただし、ユーザーはおそらく、起動時にこれらのタスクを自動的に実行したいと思うでしょう。これが私がしたことです:

通常のファイル/home/user/.Xmodmapを作成し、次の行を挿入します。

! 77 is the NumLock key code, 66 is the CapsLock key code.
! Map CapsLock to the left mouse button and map NumLock to
! CapsLock, i.e. NumLock acts as the CapsLock key used to.

keycode 77 = Caps_Lock
keycode 66 = Pointer_Button1

注:.Xmodmapファイルのコメントは!で始まります。

起動時にxmodmapを実行して~/.Xmodmapファイルをロードすることは、予想よりも難しいことが証明されました。問題は、起動シーケンスの非常に遅い時間に実行する必要があるか、XKBが開始されず、XKBがxmodmapを上書きすることです。ロードすると変化します。

線を引く...

/usr/bin/xmodmap /home/user/.Xmodmap
/usr/bin/xkbset mousekeys

... in ~/.profile~/.xinitrc、および~/.xsessionrcはすべて失敗しました。

buntu 16.04でキーを永続的に再マップする方法 で提案されているように、上記のコマンドを実行するためのファイル/etc/X11/Xsession.d/80_xmodmap_user_addedを作成しても機能しませんでした。

しぶしぶ私はグラフィカルな起動ツールを使用しました。LinuxMintではこれは次のとおりです(ディストリビューションは異なる場合があります)。

Mint Menu --> Preferences --> Startup Applications

次の各コマンドを呼び出すための2つのエントリを作成しました。

/usr/bin/xmodmap /home/user/.Xmodmap
/usr/bin/xkbset mousekeys

記録のために、スタートアップアプリケーションのエントリに自動起動の遅延は必要ありませんが、これがうまくいかない場合は、遅延を追加してみてください。 XKBは、コマンドを実行する前に開始しておく必要があります。そうしないと、変更が上書きされます。

これはすべて私にとって完璧に機能します。起動時に、CapsLockは左ボタンのマウスキーとして機能します(シングルクリックとダブルクリックの両方が機能します)。

2
mattst