( log69 | 2012. 02. 05., v – 13:31 )

Így gondoltam először én is, de mégsem jó, mivel sok csapda lehet. Mi van ha a társított alkalmazás csak egy wrapper script, és újabb folyamatot forkol például?

Semmiképpen nem 100%-osan megbízható megoldás szerintem. Most a saját open-emet pofozgatom, igazából teljesen jó lesz ez így - attól függetlenül hogy telepítve van-e az xdg-utils.

Már csak azt nem tudom, hogy hol változik, hogy a mime típusnak mi az elsődleges. Tehát tegyük fel hogy van gedit és geany telepítve. Nézzük az alábbit:


$ grep "^text/plain" /usr/share/applications/mimeinfo.cache 
text/plain=gedit.desktop;fedora-geany.desktop;

Ha a társítást felcserélem (jobb egérgomb / tulajdonságok, és az Open With értékét átllítom), attól még nem változik a sorrend a mimeinfo.cache fájlban. Akkor hol változhat? (XFCE és Gnome alatt is ua.)

Szerk.: rákerestem "find -mmin -1" paranccsal, és ez a megoldás:
/home/user/.local/share/applications/defaults.list (XFCE)
/home/user/.local/share/applications/mimeapps.list (Gnome 2)

Szerk2.: ugye Gnome2 alatt az xdg-open a gvfs-open-t használja, annak meg néztem egy strace kimenetet. Hát elég csúnya olyan szempontból, hogy sok fajta mime fájlban matat - tehát ha rendesen le akarom implementálni, akkor az nagy munka.

Akkor marad a kérdés: hogy tudnám elkapni az xdg-open által megnyitott alkalmazás PID-jét? Mert akkor azt subshell-ként hoznám létre, és valahogy így tudna működni:

(PID=grep valahogy valahol) && wait PID