モバイル Raspberry Pi 3B アプリケーションメニュー

アプリケーションの実行はできるだけキーボード主体ということもありxtermなど基本のアプリケーションの起動はxbindkeysを利用しています。 GUIのシステム関連pythonメニュー以外はdmenuに登録、またはファイルマネージャーの関連付けから実行するようにします。

xdotool

xdotoolはウインドウ、キーボード、マウスをコマンドラインから操作可能にするツールです。

# apt install xdotool

xdotoolで任意のタグに移動(マウスカーソルポイントは現状に合わせて変更)

xdotool mousemove 220 10 && xdotool click 1

.xsession例 OS起動時9番タグにシステムメニューを起動
dwmはコンパイルした/usr/local/bin/dwmを使用しています(パッケージ /usr/bin/dwm)

#!/bin/sh
xrdb ~/.Xresources
xmodmap ~/.Xmodmap
xbindkeys &
udiskie -F -N &
~/.fehbg
~/bin/date.sh &
/usr/local/bin/dwm &
xdotool mousemove 220 10 ; sleep 0.4 ; xdotool click 1
~/bin/system.py &
sleep 2
xterm -e htop &
sleep 2
xkbcomp ~/.Xkeymap $DISPLAY
xdotool mousemove 10 10 ; sleep 0.4 ; xdotool click 1
exec xterm -e ranger ~/

 

dmenu

dmenuはdwmの依存関係でインストールされています(suckless-tools)
modキー デフォルト Alt + p 起動すると画面上部に実行可能なコマンドを収集して表示
実行したいアプリケーションの文字列を打ち込んでいくと目的のアプリケーションが見つかります。

dmenu(default) [mod] + p

dmenuは強力なツールですがデフォルトのままでは使いにくいと感じます。
以前作成した自己登録型のdmenuスクリプトを設定(ディレクトリ、リストファイル名を変更しています)

dmenu_main

~/bin/dmenu/dmenu_main (chmod 755 dmenu_main)

#!/bin/sh
cache=$HOME/bin/dmenu/dmenu_main.list
(
dmenu -p dmenu -fn mono:size=12 -sb CornflowerBlue -sf black "$@" < "$cache" 2>/dev/null
) | ${SHELL:-/bin/sh} &

~/bin/dmenu/dmenu_main.list (ウインドウ付きで実行するアプリケーションを登録)

chromium-browser
surf moode
chromium-browser moode
surf http://moode/html/pulse.php
xterm -e vi ~/bin/dmenu/dmenu_main.list

実行

$ ~/bin/dmenu/dmenu_main

実行キー F1 (xbindkeysで設定 任意)

moodeと入力すると文字列が含まれるコマンドが絞り込まれます。

dmenu_sub

~/bin/dmenu/dmenu_sub (chmod 755 dmenu_sub)

#!/bin/sh
        cache=$HOME/bin/dmenu/dmenu_sub.list
(
  dmenu -b -p command -fn mono:size=12 -sb CornflowerBlue -sf black "$@" < "$cache" 2>/dev/null
) | ${SHELL:-/bin/sh} &

~/bin/dmenu/dmenu_sub.list (コマンドライン実行登録)

xterm -e vi ~/bin/dmenu/dmenu_main.list
xterm -e vi ~/bin/dmenu/dmenu_sub.list
echo '--- A ---'
sudo apt update
echo '--- S ---'
xdotool type --delay 50 'speaker-test -c2 -t wav' ; xdotool key Return
echo '--- U ---'
xdotool type --delay 50 'sudo update-alternatives --config x-terminal-emulator' ; xdotool key Return

ターミナルから実行

$ ~/bin/dmenu/dmenu_sub

~/.bashrcにalias登録

alias ds='~/bin/dmenu/dmenu_sub'
反映
$ source ~/.bashrc

ターミナルからdsを実行すると下部にdmenuが登場します。

update-alternativesはそのまま登録するとうまく実行できません。xdotoolから直接typeしています。
speaker-testはCtrl+cで停止出来ません。xterm -eで実行することで可能ですがtypeするとhistoryを利用できるメリットがあります。

覚えにくいコマンドなどを登録していくことで再利用が可能、検索は一部の文字列が分かれば絞り込んでいくことができます。
リストは登録数が増えると整理がつかなくなるので適当に目次を付けています。どんなリストを作成するかは工夫次第です!
xdotool typeで文字抜けする際はdelay値を変更。必要であれば適当にsleepを挿入

システムメニュー(system.py)


.xsessionで起動したシステムメニュー
主要なアプリケーションはタグ番号を指定して起動

システムメニュー例(~/bin/system.py)

chromium-browser


chromium-browserで動画再生
音声出力はpulseaudio
追記
chromium-browser 88.0.4324.187-rpt1 updateでユーザーのclient.conf(pulseaudio)を読み込んでいないようです。少し様子を見たいと思います。

multimedia

moOde audioへのvnc接続は画面サイズが違いすぎるのでsshのX転送でsimul.pyとncmpcppを呼び出しています。
ssh接続はパスワードなしの公開鍵認証で設定、通常通りssh接続してパスワードなしでログインできれば設定完了。以下のコマンドを実行

$ ssh -X moode ~/bin/simul.py &
$ ssh -X moode xterm -e ncmpcpp &


pulse.phpはPi3のsurfブラウザ
simul.pyは自マシンからの起動と同じような感覚で実行できます。


moOde Playerはsurfブラウザから

チックコリアさんの
ご冥福をお祈りいたします。

programming


thonny + Raspberry Pi Pico
PicoをUSBに接続した際一瞬だけ稲妻マークが現れます。Pi3に直接給電しても同様のことからPi3のドライバーの関係と思われます(動作は問題ありません)