xkeysnail の環境を整える

Ubuntu18.04 に環境を移行したので、その際に行った xkeysnail の環境構築手順をまとめておきます。

xkeysnail とは

github.com

インストール

README の通り

xkeysnail ユーザの作成

qiita.com

こちらの記事を参考にさせていただきました。ほとんど記事通りです。

起動周りのセットアップ

上記の記事に加え、下記も参考にさせていただきました。

poyo.hatenablog.jp

xkeysnail に関するディレクトリ構造

$HOME/
  .xkeysnail/
    config.py (設定ファイル)
    start.sh (起動スクリプト)
    stop.sh (停止スクリプト)
    restart.sh (再起動スクリプト)
  .config/
    autostart/
      xkeysnail.desktop (自動起動設定)

参考にした記事やその他の情報と大差ないですが、 config.py を弄って反映、ということをカジュアルにやりたかったので、自動起動だけでなく、停止や再起動を行うためのスクリプトを用意したのが特徴でしょうか。同じ理由で、設定ファイルやスクリプトはホームディレクトリ配下の .xkeysnail にすべてまとめるようにしています。

まだ運用を始めて日が浅いので、問題があるかもしれませんが各スクリプトは以下のような内容です。

start.sh

#!/usr/bin/env bash

exec >> $HOME/.xkeysnail/stdout.log 2>&1

xhost +SI:localuser:xkeysnail
sudo -u xkeysnail DISPLAY=$DISPLAY /usr/local/bin/xkeysnail -q $HOME/.xkeysnail/config.py &

-q オプションが効いてない気がする

stop.sh

#!/usr/bin/env bash

PID=`ps --no-heading -C xkeysnail -o pid | tr -d ' '`

if [ -n "$PID" ]; then
  sudo -u xkeysnail kill $PID
  echo "Stopped xkeysnail to kill $PID"
fi

restart.sh

#!/usr/bin/env bash

cd `dirname $0`

./stop.sh
./start.sh

echo "Started xkeysnail"

最後に

xkeysnail 本当に素晴らしいです。感謝