人生シーケンスブレイク

シーケンスブレイク(Sequence breaking、シークエンスブレイクとも)とは、テレビゲームにおいて開発が想定している攻略ルートを逸脱し、ショートカットする行為のことである。

UbuntuでもCtrl+hでbackspaceにする(その3)

過去に

のように試行錯誤したがChromeのアドレスバー上などで作用しなかったので最終的にxkeysnailで実現した。

github.com

実現方法

README.md通りにインストールしていく。

$ sudo apt install python3-pip
$ sudo pip3 install xkeysnail

sudo権限が必要。

設定ファイルとして、 config.py を任意の場所に作成する。

xkeysnail/config.py at master · mooz/xkeysnail · GitHub を参考にすればよい。 まずは適用されることを確認したかったので、一旦シンプルな内容にした。

# -*- coding: utf-8 -*-

from xkeysnail.transform import *

# define timeout for multipurpose_modmap
define_timeout(1)

define_keymap(None, {
    # Ctrl+h to backspace
    K("C-h"): (K("backspace")),
})

起動

$ sudo xkeysnail config.py

とすれば起動するらしいのだが、 Xlib.error.DisplayConnectionError というエラーが出て起動に失敗した。

python - How to fix error Xlib.error.DisplayConnectionError: Can't connect to display ":0": b'No protocol specified\n' - Stack Overflow によると、 xhost + を叩けばよいらしい。

$ xhost +
$ sudo xkeysnail config.py

██╗  ██╗██╗  ██╗███████╗██╗   ██╗
╚██╗██╔╝██║ ██╔╝██╔════╝╚██╗ ██╔╝
 ╚███╔╝ █████╔╝ █████╗   ╚████╔╝
 ██╔██╗ ██╔═██╗ ██╔══╝    ╚██╔╝
██╔╝ ██╗██║  ██╗███████╗   ██║
╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝   ╚═╝
  ███████╗███╗   ██╗ █████╗ ██╗██╗
  ██╔════╝████╗  ██║██╔══██╗██║██║
  ███████╗██╔██╗ ██║███████║██║██║
  ╚════██║██║╚██╗██║██╔══██║██║██║
  ███████║██║ ╚████║██║  ██║██║███████╗
  ╚══════╝╚═╝  ╚═══╝╚═╝  ╚═╝╚═╝╚══════╝
                             v0.4.0

No keyboard devices specified via (--devices) option.
xkeysnail picks up keyboard-ish devices from the list below:

------------------------------------------------------------------------------------------------------
Device               Name                                Phys
------------------------------------------------------------------------------------------------------
/dev/input/event0    Power Button                        PNP0C0C/button/input0
/dev/input/event1    Power Button                        LNXPWRBN/button/input0
/dev/input/event2    MSI MYSTIC LIGHT                    usb-0000:2a:00.3-5/input0
/dev/input/event3    ZSA Moonlander Mark I               usb-0000:2f:00.3-1/input0
...


Okay, now enable remapping on the following device(s):

できた。

自動起動

$HOMEに.xprofileを作成し、こんな感じに書いた。

if [ -x /usr/local/bin/xkeysnail ]; then
  xhost +
  sudo /usr/local/bin/xkeysnail /home/shinespark/git/dotfiles/ubuntu/xkeysnail/config.py &
fi

再起動したら、至る所でCtrl+hでbackspaceできるようになったことを確認。最高。