[TOP] / [PRG] / [PCB] / [FONT] / [ANDR] / [MEMO]
Debian13 CUIの簡易ランチャーを作る
とりあえず、アプリケーションの一覧を出して、それを選択して実行する、簡易的なもの。
PC-98のDOSにあった、MENUコマンドみたいなやつ。
環境によってはすごく楽。
簡易ランチャーのシェルスクリプト
調べてはみたけど、高機能なランチャーぐらいしかなく、簡易的なものはなかなか無さそう。
探す暇があったら、自分で作ったほうが早い!というわけで、既存のコマンドで自作することに。

CUIでグラフィカルなダイアログを出すコマンドとして「whiptail」があるので、 それを使ってアプリ一覧を出し、その周辺にアプリ実行やランチャーに戻る機能を付けて、 簡易ランチャーとして十分動くシェルスクリプトが出来上がった。



シェルスクリプト

launcher.sh

#!/bin/bash
LEXEC=1
while [ -n "$LEXEC" ] ; do
LDATE=`date "+%Y/%m/%d %H:%M:%S"`
LEXEC=`whiptail \
--title "CUI Launcher" --ok-button "Run" --cancel-button "Exit" \
--notags \
--menu "[ $LDATE ]" 22 77 14 \
    "bash" "Shell" \
    "su -" "Shell(root)" \
    "sl" "===============================================" \
    "startx xfce4-session" "X11: Xfce4 GUI Session" \
    "startx thunar" "X11: File Manager" \
    "startx firefox-esr" "X11: Firefox" \
    "startx xfce4-terminal" "X11: Terminal" \
    "startx xeyes" "X11: xeyes" \
    "sl" "===============================================" \
    "sudo apt update" "apt: Update Package list" \
    "apt list --upgradable" "apt: List Upgradable Packages" \
    "sudo apt full-upgrade" "apt: Full-Upgrade System" \
    "sl" "===============================================" \
    "ls /dev/disk/by-id -l;lsblk;W" "Storage List" \
    "df;W" "Storage Free Space List" \
    "top" "System Monitor" \
    "sensors ; grep MHz /proc/cpuinfo;W" "Clock & Temperature Monitor" \
    "watch -n1 'sensors ; grep MHz /proc/cpuinfo'" "Clock & Temperature Monitor(always)" \
    "alsamixer" "ALSA Volume Control" \
    "sl" "===============================================" \
    "sudo reboot;W" "* Reboot" \
    "sudo shutdown 0;W" "* Shutdown" \
3>&1 1>&2 2>&3`
if [ -n "$LEXEC" ] ; then
clear
echo "$ $LEXEC"
bash -c "\
W() { echo -n \"==== [END:$?] Push Enter ====\";read -ip; }; \
$LEXEC"
fi
done
echo "Launcher exited."


カスタマイズの仕方

    "sudo apt update" "apt: Update Package list" \
    "df;W" "Storage Free Space List" \

インデントを付けてある行が、アプリの一覧定義になっている。左が実行コマンド、右は表示名。
「W」に、キー入力待ちになる関数を定義してあるので、すぐ画面が消えては困るものには、 コマンドの最後に「;W」をつけると良い。

ログイン時に表示するには

ログインシェルがbashの場合、「~/.bash_login」にランチャースクリプトを実行するよう書くと良い。
「~/launcher.sh」と書いても良いし、この中に上記スクリプトを丸々書いちゃっても良い。
なお、.bashrcに書くと、再帰しちゃうからダメ。

[前へ] [トップページへ]