モバイル 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
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は自マシンからの起動と同じような感覚で実行できます。
チックコリアさんの
ご冥福をお祈りいたします。
programming
thonny + Raspberry Pi Pico
PicoをUSBに接続した際一瞬だけ稲妻マークが現れます。Pi3に直接給電しても同様のことからPi3のドライバーの関係と思われます(動作は問題ありません)