Nautilus, bash script reaktion på stängt fönster

Permalänk
Medlem

Nautilus, bash script reaktion på stängt fönster

Något svårt att formulera en snygg titel.

---Bakgrund---
Jag har för tillfället praktik i en kommun och har fått i uppdrag att fixa till en publik dator med ubuntu 9.10 för att visa dem anställda och elever alternativ till windows, särskilt för äldre maskiner. Samtidigt ska den som sagt fungera som övriga publika datorer som finns på olika platser i kommunen.
Och en av dem grejer jag ska fixa är ett snyggt och enkelt sätt för användaren att mappa upp sin hemkatalog. Detta görs vanligtvis när dem loggar in på en maskin men den jag pysslar med kommer ha ett publikt konto.

Så lösningen blir ett bash script som startas via en färgglad ikon på skrivbordet. Allt funkar bra men det ska helst vara tämligen idiotsäkert.

Som det ser ut nu monterar man sin hemkatalog och får upp ett fönster (nautilus) med dess innehåll med ett script och avmonterar med ett annat script.

Detta kräver alltså av användaren att denne ska komma ihåg att avmontera när han/hon är klar, annars kommer nästa kotte kunna leva fan med föregående användares filer.

---Mål---
Vad jag vill är att avmonteringsscriptet körs när användaren stänger nautilus fönstret som öppnas när hemkatalogen mappas upp.

Detta har visat sig jävligare än man kan tro, man kan inte gå på nautilus PID, eftersom det körs hela tiden och när ett "nytt" fönster öppnas anropar det bara den existerande processen, så även när man stänger alla fönster finns PIDet kvar.

Vad jag behöver är att fånga ett id av något slag för detta enskilda fönster som scriptet kan kontrollera tills det försvinner, då ska det gå vidare till att avmontera hemkatalogen.

All hjälp uppskattas!

Permalänk
Medlem

Re: Nautilus, bash script reaktion på stängt fönster

Citat:

Ursprungligen inskrivet av KvarX
Något svårt att formulera en snygg titel.

---Bakgrund---
Jag har för tillfället praktik i en kommun och har fått i uppdrag att fixa till en publik dator med ubuntu 9.10 för att visa dem anställda och elever alternativ till windows, särskilt för äldre maskiner. Samtidigt ska den som sagt fungera som övriga publika datorer som finns på olika platser i kommunen.
Och en av dem grejer jag ska fixa är ett snyggt och enkelt sätt för användaren att mappa upp sin hemkatalog. Detta görs vanligtvis när dem loggar in på en maskin men den jag pysslar med kommer ha ett publikt konto.

Så lösningen blir ett bash script som startas via en färgglad ikon på skrivbordet. Allt funkar bra men det ska helst vara tämligen idiotsäkert.

Som det ser ut nu monterar man sin hemkatalog och får upp ett fönster (nautilus) med dess innehåll med ett script och avmonterar med ett annat script.

Detta kräver alltså av användaren att denne ska komma ihåg att avmontera när han/hon är klar, annars kommer nästa kotte kunna leva fan med föregående användares filer.

---Mål---
Vad jag vill är att avmonteringsscriptet körs när användaren stänger nautilus fönstret som öppnas när hemkatalogen mappas upp.

Detta har visat sig jävligare än man kan tro, man kan inte gå på nautilus PID, eftersom det körs hela tiden och när ett "nytt" fönster öppnas anropar det bara den existerande processen, så även när man stänger alla fönster finns PIDet kvar.

Vad jag behöver är att fånga ett id av något slag för detta enskilda fönster som scriptet kan kontrollera tills det försvinner, då ska det gå vidare till att avmontera hemkatalogen.

All hjälp uppskattas!

Detta är ingen jättesnygg lösning men skulle du inte kunna göra så att Nautilus startas som en annan användare än den som är inloggad på Desktopen? Då skapas det en ny Nautilusprocess med egen pid som du sedan kan döda.

Permalänk
Medlem

Re: Re: Nautilus, bash script reaktion på stängt fönster

Citat:

Ursprungligen inskrivet av Jilted82
Detta är ingen jättesnygg lösning men skulle du inte kunna göra så att Nautilus startas som en annan användare än den som är inloggad på Desktopen? Då skapas det en ny Nautilusprocess med egen pid som du sedan kan döda.

Funderade på det ett tag men kom aldrig till att testa det.

Däremot har jag liksom löst det... Det hjälper mig alltid att göra en tråd på swec verkar det som.
Jag är dock inte sämre än jag delar med mig när jag ändå skapat en tråd.

#efter montering, nu öppnar ett fönster för den nymonterade hemkatalogen. nautilus /home/ubuntu/hemkatalog sleep 2 WID=$(xwininfo --root --children | grep hemkatalog) until [ -z "$WID" ]: do sleep 2 WID=$(xwininfo --root --children | grep hemkatalog) done ./Avmontera exit 0

Vad jag gör är att låta xwinfo lista alla fönster id och deras sub-fönster (?) och greppar efter namnet på det nyöppnade fönstret, när det inte längre går att greppa fönster id så körs avmonteringsscriptet.

Dock kom precis min handledare in och påpekade att om jag går djupare in i hemkatalogen så avmonteras allt för då byter det namn till undermappens.

Detta löses enkelt genom att gå på det unika krångligare id-numret för fönstret

WID=$(xwininfo --root --children | grep hemkatalog) | awk '{print $1}'

Tack och hej!