|
| expect/screen problem Fra : Niels Andersen |
Dato : 06-07-02 10:19 |
|
Jeg vil gerne have et script til automatisk at starte screen op, dele
skærmen i 2, og køre et program i hver halvdel.
Den eneste løsning jeg lige kunne finde var expect. Jeg er nu kommet så
langt:
#!/usr/bin/expect -f
spawn screen -DR
send "^AS"
send "program1\n"
send "^A^I^Ac"
send "program2\n"
send "^A^I"
interact
(^A betyder ctrl-a, de ctrl-kombinations-taster ser forskellige ud alt
efter hvordan man ser dem, jeg aner ikke om der er en bedre måde at gøre
det på med expect)
Problemet er, at hvis jeg efterfølgende resizer vinduet screen kører i, så
følger screen ikke med. Det gør den hvis jeg kører den sekvens manuelt.
Problemet ville ikke være så stort, hvis jeg vidste hvordan jeg starter
xterm op i maksimeret tilstand. :)
Desuden ville jeg gerne, at hvis screen allerede kører, så skulle den gerne
stoppe efter "spawn", men jeg ved ikke lige... :)
Det er dog ikke det vigtigste.
--
Mvh.
Niels Andersen
Linux 2.4.18 - Debian 3.0
| |
Klaus Alexander Seis~ (06-07-2002)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 06-07-02 11:37 |
|
Niels Andersen skrev:
> Jeg vil gerne have et script til automatisk at starte screen
> op, dele skærmen i 2, og køre et program i hver halvdel.
Prøv fx med en kombination af screen og splitvt:
$ screen -c screen.rc
hvor screen.rc indeholder én linje:
screen splitvt -upper program1 -lower program2
> Desuden ville jeg gerne, at hvis screen allerede kører, så skulle
> den gerne stoppe efter "spawn", men jeg ved ikke lige... :)
Lav evt. et wrapper-script til at starte splitvt med. Scriptet
skal undersøge om en given semaforfil eksisterer og starte splitvt
og oprette semaforfilen hvis den ikke eksisterer, og nøjes med at
lade screen attache hvis filen eksisterer.
// Klaus
--
><> vandag, môre, altyd saam
| |
Niels Andersen (06-07-2002)
| Kommentar Fra : Niels Andersen |
Dato : 06-07-02 15:00 |
|
Klaus Alexander Seistrup wrote in
<jakabov+6dcb6b47-4ede-4f91-bb4f-b6510de62b3d@news.szn.dk>:
>> Jeg vil gerne have et script til automatisk at starte screen
>> op, dele skærmen i 2, og køre et program i hver halvdel.
>
> Prøv fx med en kombination af screen og splitvt:
> $ screen -c screen.rc
> hvor screen.rc indeholder én linje:
> screen splitvt -upper program1 -lower program2
Jeg har leget med det. Først så det vældigt godt ud, bedre end den løsning
jeg selv havde udtænkt.
Men et vindue under splitvt kører med "TERM=vt100", og det er desværre ikke
godt nok i denne sammenhæng. Jeg prøvede at køre en wrapper omkring
programmet med problemer, som satte "TERM=xterm", men så fungerede det slet
ikke. Tingene blev ikke skrevet de rigtige steder længere.
>> Desuden ville jeg gerne, at hvis screen allerede kører, så skulle
>> den gerne stoppe efter "spawn", men jeg ved ikke lige... :)
> Lav evt. et wrapper-script til at starte splitvt med. Scriptet
> skal undersøge om en given semaforfil eksisterer og starte splitvt
> og oprette semaforfilen hvis den ikke eksisterer, og nøjes med at
> lade screen attache hvis filen eksisterer.
Yep, det kunne man jo gøre. :)
--
Mvh.
Niels Andersen
Linux 2.4.18 - Debian 3.0
| |
Klaus Alexander Seis~ (06-07-2002)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 06-07-02 16:34 |
|
Niels Andersen skrev:
>> Prøv fx med en kombination af screen og splitvt:
>
> Jeg har leget med det. Først så det vældigt godt ud, bedre end
> den løsning jeg selv havde udtænkt.
> Men et vindue under splitvt kører med "TERM=vt100", og det er
> desværre ikke godt nok i denne sammenhæng.
Nej, og det er vist oven i købet en rigtig dårlig VT100-emulering.
Hm, mon du kan bruge < http://freshmeat.net/projects/twin/>, som er
en vinduesdims til tekstmodus?
(Debian: apt-get twin twutils libtw)
// Klaus
--
><> vandag, môre, altyd saam
| |
|
|