メニューソフト

tcshという強力なUIがあるのだがやはり簡単にアプリを起動したい。

alias c cal

みたいな1文字aliasが簡単だがやはりわけわからなくなりそうである。

そこでcursesベースの簡易menukmenuを作った。

シェルスクリプトの起動専用ってのがヘボヘボだ。二つ以上上げてもしかたないからLOCKファイルを使う様にした。

このメニューはsystemで呼んでいるだけなのでこのまま使うとシングルタスクである。呼ぶシェルスクリプトの方で工夫する。


#!/bin/sh
# 電卓
newvc bc &

とかすると別の仮想画面に出してくれる。日本語が必要な時は少々スリリングだが


#!/bin/sh
# スケジュール表示
echo "ksch -M | less;logout" > ~/.login
newvc kon &
sleep 2
echo " " > ~/.login

これでなんとかなった。/etc/inittabをいじってあまりVCにgettyをあげない方が使いやすい。.loginにいろいろ書く人には辛いかも。

ToDoは2個起動しないなどの排他処理は以下の様にLockファイルで実現できる。


#!/bin/sh
# ToDo
echo "exec vitodo" > ~/.login
newvc kon &
sleep 2
echo " " > ~/.login

で vitodoの方では


#!/bin/sh
if [ -f ~/.todoLock ]; then
	exit;
fi

touch ~/.todoLock
vi ~/.pda/ToDo
rm  ~/.todoLock

これでうまくいった。

起動出来なかった場合、親プロセスであるmenuの画面に戻って来る。本当は「既に起動されている方の動いている仮想画面に移動」と行きたかったが難しいので断念したのが残念だ

戻る