uConsole … コントローラーボタンでアプリケーションランチャー起動(AntiMicroX+fuzzel)

【読むのにかかる時間: 2 分】

Last Updated on 2025/10/09 by りょう

アプリケーションランチャー「fuzzel」を起動した様子
uConsoleのコントローラーボタン

uConsoleはポータブルゲーム機としての用途も想定されているのか、トラックボールの右隣にゲームコントローラーの様な「Y X B A」ボタンが装備されている。
ゲーム機エミュレーターアプリなどでは使用出来そうだけど、普段使いでは特に何の機能も無くただの飾り。
何か有効活用出来ないか…これらのボタンでアプリケーションを起動出来れば便利では?
特にアプリケーションランチャーの起動を割り当てればかなり使い勝手が良くなるはず。
と思い立ってトライしてみることにした。

AntiMicroX

インストール

先ずは、コントローラー(ゲームパッド)のボタンに実存のキーを割り当ててシステムから検出出来るようにするアプリ「AntiMicrroX」をインストールする。

sudo apt update
sudo apt install antimicrox

起動とセットアップ

【アクセサリ】の中に配置されている

インストールが完了するとメインメニューの【アクセサリ】内に配置されるので起動する。

【X】ボタンに【F13】キーを割り当てた状態

この状態でコントローラーボタンを押すと、対応する項目の色が反転して識別出来る。

※uConsoleのコントローラーボタンとAntiMicroXのボタン対応は【A】と【Y】が入れ替わっている。

uConsoleAntiMicroX
YA
XX
BB
AY
割り当て対象ボタンをクリックするとキー選択画面が表示され、対象キーをクリックしたり直接キーを押すと割り当てられる
右端に有る「Others」をクリックするとサブメニューが表示され、選択することで割り当てられる

【X】ボタンに未使用の【F13】キーを割り当てる。
ちなみに、Windows版ではキーのみならずスクリプト(マクロ)を割り当てることが可能なため、今回のようなアプリケーション起動はAntiMicroXのみで実現出来る。

【B】/【A】ボタンにはそれぞれ音量減・増を割り当てているが、【B】ボタンは日本語/英語入力の切り替えへ変更
尚、【Y】ボタンの割り当ては上記の【CTRL_L】から【Enter】へ変更している

音量はキーボードショートカットでも変更出来るが【Fn】キー併用で少々手間が掛かるため、コントローラーボタンに割り当てた。

【割り当て変更①】
fuzzelで選択したアプリケーションを実行する際には【Enter】キーを押すが、uConsoleを両手持ちした場合は【Enter】キーが右手親指の付け根辺りに位置するため、押す度に持つ手をずらす必要が有り結構手間なので、【Y】ボタンの割り当てを変更して【Enter】にした。

当初【CTRL_L】(左側の【Ctrl】キー)に割り当てていた理由は、WSJT-Xのワイドビュー上で送受信周波数を揃ってマウスカーソルで指定した位置へ移動する際に【Ctrl】キーを押しながら左クリックする必要があり、その操作性の向上が目的だった。
そう頻繁に行う操作では無いため、他のキーへ変更しても影響は少ないだろうと判断した。
⇒その後、やっぱり有った方が便利ということで、音量調整への割り当てが無くなって空いていた【A】に再割り当てした。
【割り当て変更②】
その後、日本語入力環境(fcitx5/mozc)をセットアップし、日本語入力と英語入力の切り替えをコントローラーボタンで行えるよう【B】ボタンの割り当てを変更した。
デフォルトのキー設定は【Ctrl】+【Space】だが、AntiMicroXでは複数キーの割り当てが出来ないため、fuzzelの起動と同じく使われていない【F14】に変更。
尚、【F14】はキーボードに存在しないので、先にAntiMicroXで【B】ボタンに【F14】を割り当てて、fcitx5/mozcの設定で【B】ボタンを押すことで登録した。

【2025/10/8時点の割り当て状況】

コントローラーボタン機能
Y【Enter】キー押下
Xアプリケーションランチャー(fuzzel)起動
B文字入力モード(全角/半角)切替
A【CTRL】キー押下
「オプション」⇒「Settings」⇒「全般」

「オプション」⇒「Setteing」⇒「全般」で起動時の設定を行う。
他の項目については基本的に変更不要。

evtest

インストール

コントローラーボタンを含む入力デバイスの状態を検出するために必要な「evtest」をインストールする。

sudo apt update
sudo apt install evtest

コントローラーボタンのデバイス番号を確認

evtest
evtestでイベント番号を確認する

AntiMicroXを起動している状態でevtestを実行してコントローラーボタンに割り当てられているデバイス番号を確認する。
uConsoleのコントローラーボタンは「antimicrox Keyboard Emulation」で「/dev/input/event11」に割り当てられている。

fuzzel

インストール

uConsoleで使用しているシステムはClockworkPiのコミュニティフォーラムで公開・提供されている有志作成の「Bookworm 6.12.y for the uConsole and DevTerm」。

このシステムはディスプレイサーバプロトコル:Wayland/デスクトップ環境:LXDEの構成だが、この環境で正常動作するアプリケーションランチャーは結構限られる。
その中から、軽量で安定性が高く、デザインも好みの「fuzzel」を選択した。

sudo apt update
sudo apt install fuzzel

ちなみに、X11環境であれば自身で起動用ホットキーを設定し、そのホットキーを押せば起動するアプリケーションランチャー(例えば「Ulauncher」など)が有り、ボタン押下監視⇒アプリ起動といったスクリプトを作成する必要は無い。(AntiMicroXでボタンにホットキーを割り当てるだけ。)

起動確認

fuzzelをコマンドで起動

アプリケーションメニュー内に「fuzzel」が居なかったのでシェルからコマンドで起動。
セットアップ完了後はコントローラーボタンで起動するためメニュー内不在は問題無し。

起動スクリプト作成

AntiMicroXを起動してコントローラーボタンを有効化した後、コントローラーボタンを監視して押されるとfuzzelを起動するスクリプトを作成する。

先ずは、スクリプト内に記述するユーザー環境変数を取得する。

echo $XDG_RUNTIME_DIR
echo $WAYLAND_DISPLAY
echo $DBUS_SESSION_BUS_ADDRESS
ユーザー環境変数を取得する

ユーザー環境変数:
 XDG_RUNTIME_DIR=”/run/user/1000
 export WAYLAND_DISPLAY=”wayland-0
 export DBUS_SESSION_BUS_ADDRESS=”unix:path=/run/user/1000/bus

evtestで取得したデバイス番号:
 DEVICE=”/dev/input/event11

割り当て先のキー:
 【F13

使用アプリケーション(オプションパラメータ付き):
 AntiMicroX … /usr/bin/antimicrox –show %f & ※ハイフン「-」は二個連続している。
 evtest … /usr/bin/evtest
 fuzzel … /usr/bin/fuzzel 2>/dev/null

※スクリプト内の記述は自身の環境に応じて適宜変更する。

「/usr/local/bin」にシェルスクリプト「fuzzel.sh」を作成する。

cd /usr/local/bin
sudo nano fuzzel.sh
#!/bin/bash

#AntiMicroX
/usr/bin/antimicrox --show %f &

#wait 5sec
sleep 5

#
DEVICE="/dev/input/event11"

# modify for USER
export XDG_RUNTIME_DIR="/run/user/1000"
export WAYLAND_DISPLAY="wayland-0"
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"

/usr/bin/evtest "$DEVICE" | while read line; do
    if echo "$line" | grep -q "KEY_F13.*value 1"; then
        sudo -u USER XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" WAYLAND_DISPLAY="$WAYLAND_DISPLAY" DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" /usr/bin/fuzzel 2>/dev/null
    fi
done

1. 「AntiMicroX」を起動し、コントローラーのボタンでキーボードのキーをエミュレートする。
2. 「AntiMicroX」の起動完了を待つため、しばらく(5秒間)停止。
3. デバイス番号とユーザー環境変数を設定する。
4. 「evtest」でエミュレートされたキーの状態を取得する。
5. 【F13】キー(実体は【X】ボタン)が押されたら、「fuzzel」を起動する。
6. 4.から繰り返す。

作成したシェルスクリプト「fuzzel.sh」に実行権限を付与する。

chmod +x ~/fuzzel.sh

シェルスクリプト実行

起動用スクリプトのショートカット(左上)とAntiMicroXのアイコン(右下)

作成したシェルスクリプト「fuzzel.sh」を実行すると、AntiMicroXが起動し、【X】ボタンを押すとfuzzelが起動する。
uConsoleを起動した際に自動実行するにはBookwormでは割と複雑な手順が必要なので、現在はデスクトップ上にスクリプトのショートカット(左上)を置いて起動後に手動実行している。
実行後、AntiMicroXのアイコン(右下)が表示されて約5秒(スクリプト内で設定)経つとfuzzelが起動可能になる。

シェルスクリプト自動実行(Wayland/Labwc環境)

シェルスクリプト「fuzzel.sh」をシステム起動時に自動実行する場合は、「~/.config/labwc/」フォルダ内に「autostart」ファイルを作成する。

(sleep 3 && /usr/local/bin/fuzzel.sh) &

システム起動直後は環境変数や権限がまだ整っていないタイミングで実行される可能性が有るため、暫く(上記の設定では約3秒)待ってシェルスクリプトを実行する。

使用感

ひとまず完了。
ここまで辿り着くのは結構大変で、ChatGPT相手に長々と相談しながら試行錯誤を繰り返した。
それもあって、完成したことと使い勝手にはかなり満足している。
起動シェルスクリプトを編集すれば他のボタンや他のコマンドへの割り当ても行えるので更に活用出来そう。

後日、追加で入力時の日本語/英語切り替えを割り当てたところ、実に使い勝手が良くなった。

ようこそ!コメントをどうぞ♪