06/09/07 21:51:18
>>104
改良という意味なら、80%位は解決できたよ。gnuclient用ttyを
screenで確保するから干渉するのであって、forkpty(3)で自前で
確保する別のスクリプト組んで、組み合わせて解決した。
今は最後の部分は
if [ -n "$STY" ]; then
(forkpty gnuclient "$@"; screen -X other ) & screen -X select 9
else
(forkpty gnuclient "$@"; screen -X detach) & screen -x -p 9
fi
とsleepフリーになって快適。forkptyは
pid = forkpty(&amaster, NULL, NULL, NULL);
if (pid > 0) { waitpid(pid, &status, 0); return status; }
execvp(...);
なtccスクリプト。
残っているのは新規のscreen+emacs起動の際の、screen -dm した
新セッションにどうやって外部からemacs起動させるかと、それぞれの
起動完了待ちのsleepループだけど、前者は.screenrcでemacs起動する
ようにして回避したので、残るはsleep待ちのコードが一箇所だけ、
それも初回起動の所だけになるまで単純化できた。