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の画面に戻って来る。本当は「既に起動されている方の動いている仮想画面に移動」と行きたかったが難しいので断念したのが残念だ