LoginSignup
2
2

More than 3 years have passed since last update.

Ubuntuでalt+wasdにカーソルキーのショートカットを割り当てる

Last updated at Posted at 2020-07-30

Ubuntuでalt+wasdにカーソルキーのショートカットを割り当てる

はじめに

PCでFPSやTPSをやったことがある人なら、wasdキーで移動というのは当たり前なことだと思います。
私もフォートナイトをやっていたのでwasdキーでキャラクターを操作していました。

wasdキーでカーソル移動できたら、ホームポジションを崩さずカーソル移動できて便利なのではと思いやってみました。

環境

OS: Ubuntu20.04

設定方法

xmodmapというユーティリティーを利用して設定していきます。
キーボードにはkeycodeが割り当てられており、それを上書きすることでキーを押したときの挙動を変更することができます。

まずはキーコードを調べます。xevというコマンドで直前に押したキーのkeycodeを確認することができます。

$ xev

# aキーを押すと以下のように出力される
KeyRelease event, serial 37, synthetic NO, window 0x7a00001,
    root 0x6c5, subw 0x0, time 215752625, (106,542), root:(2124,656),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

a38というkeycodeが割あたっていることがわかりました。
次に現在aキーに割り合っている入力を確認します。

$ xmodmap -pke | grep 38
keycode  38 = a A a A
keycode 138 = SunProps NoSymbol SunProps
keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp

keycode38a A a Aが割当っていることがわかります。
これは左から
1. keycode38のみを入力した場合に入力される値
2. shift + keycode38を入力した場合に入力される値
3. mode_switch + keycode38を入力した場合に入力される値
4. shift + mode_switch + keycode38を入力した場合に入力される値
という意味です。

ではあとはこれを上書いていきます。
まず、mode_switchを右Altキーに当てはめます。
先程同様、xevで右Altキーのkeycodeを確認します。
右Altキーのkeycodeは108です。

以下のコマンドで上書くことができます。

$ xmodmap -e 'keycode 108 = Mode_switch'

続いてmode_switch+keycode38shift+mode_switch+keycode38Leftを割り当てます。

$ xmodmap -e 'keycode 38 = a A Left Left'

コマンド実行後に右alt+aを押すとカーソルが左に移動した思います。
以下同様にwsdにも適用します。

最終的に以下のコマンドを実行します。

$ xmodmap -e 'keycode 108 = Mode_switch'
$ xmodmap -e 'keycode 38 = a A Left Left'
$ xmodmap -e 'keycode 25 = w W Up Up'
$ xmodmap -e 'keycode 39 = s S Down Down'
$ xmodmap -e 'keycode 40 = d D Right Right'

カーソル移動がAlt+wasdでも可能になったと思います。
他にもいろんなキーを割り当てるともっと便利になるかも知れません。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2