E-mail
















 

Az új Finder Ablakok viszontagságai


A Mac OS X 10.3 "Panther" operációs rendszerben újraalkották az ablakok fogalmát a Finder Ablakok bevezetésével. Olyan program a programban viselkedésűek, a testreszabással programokat és dokumentumokat lehet az eszköztárban elhelyezni, alapvető Finder parancsokat a fogaskerék menüből itt is ki lehet adni, beépített kereső is segíti a munkát. De néha igencsak furcsa módon jelenítik meg tartalmukat és könnyen tucatszámra jelennek meg az Íróasztalon.

A nézetek

Három nézet létezik, ikonos, listás és oszlopos, mindegyik az adott feladatra alkalmas. Az ikonos nézetben akár 128 pixel méretű előnézeti képeket is kaphatsz, a listás nézetben minden részlet eléd tárul, az oszloposban pedig villámgyorsan lehet a mappák között lépegetni, elemeket mozgatni, illetve másolni. Minden egyes megnyitott ablak adott módon jelenik meg előtted. Ezt a Finder öt szempontból vizsgálja:

  • Ha kijelentkezésedkor nyitva hagyott ablakok vannak, a legközelebbi bejelentkezéskor újra előbukkannak
  • Az alapértelmezett "All Windows" beállítás a nézet opciókban
  • A file ikonok helyzete, és a megjegyzésben szereplő szöveg
  • Az ablak testreszabásara az egyedi "this window only" nézet beállítás, illetve az ablak mérete és az iróasztalon elfoglalt pozíciója
  • Az ablak eszköztárának a láthatósági állapota
A Finder kijelentkezéskor lementi a nyitott ablakok állapotát azért, hogy bejelentkezéskor ki tudja nyitni. Az állapot mindent tartalmaz, ami az ablak helyes megjelenítéséhez szükséges, hogy pontosan olyan legyen, mint ami kijelentkezéskor volt: látható volt-e az eszköztár, a görgetősáv pozíciója, az ablak mérete és helyzete, illetve a nézet típusa. Bejelentkezéskor minden más az ablak nézetet befolyásoló opciót figyelmet kívül hagy. Ezt a ~/Library/Preferences/com.apple.finder.plist file-ban tárolja kijelentkezéskor, de csakis akkor. A .plist file-ok a property list rövidítései, beállításokat tárolnak benne XML alapokon, sima szövegszerkesztővel változtathatóak. A tárolt nézetbeállításokat egy WindowState listában kell keresni. Érdekes lehet a file manuális szerkesztése, ha megfelően szúrod be az információt, új, már nyitott ablakok köszönthetnek rád, vagy a másolás ablakot parancsolhatod a jobb alsó sarokba, akár a bootolás alatt történtek vezérlésével.

Ez idegesítőnek tűnhet, ha nyitott ablakok köszöntöttek rád bejelntkezéskor, dolgoztál velük, majd becsuktad őket, majd manuálisan indítod újra a Findert, vagy a 'killall Finder' shell paranccsal, vagy az Módosító (Alt), és El (Escape) kombinációval választod ki a listából és Újraindítás (Relaunch). Az általad bezárt ablakok újra előugranak, mert a Finder nem mentette el az új állapotokat, hiszen nem történt szabályos kijelentkezés. Ha valami hiba jelentkezik és a Finder önmagától újraindul, ugyanilyen dolgokat idézhet elő.

A Finder elmenti az alapértelmezett Minden Ablak (All Windows) megjelenítési beállításokat, amelyeket bonyolult módon használ fel. A beállítások változtatásához, nyiss egy Finder Ablakot vagy klikkelj a már meglévők közül egyre, hogy legyen az ablaknak árnyéka, majd válaszd ki a Mutasd a Nézet Beállításokat (Show View Options) menüpontot a Nézet (View) menüből, vagy használd az +J kombinációt. Ha jobban szeretsz az eszköztáron dolgozni, a kis fogaskerék menüben is kiválaszthatod a megfelelő menüpontot. A három nézetnek megfelelően más opciók közül választhatsz, az ikonos és a listás nézet több, az oszlopos kevesebb lehetőséget tartalmaz. Az Íróasztal (Desktop) egyedi beállításokat kínál, amit ugyanugy érhetsz el. A megadott módosítások egy percen belül elmentésre kerülnek mind a .DS_Store, mind a com.apple.finder.plist fájlokba, a StandardViewOptions tagben.

A Finder a mappa ikonjainak a helyzetét is eltárolja, amikor a dokumentumokat tartalmazó ablakot ikonos nézetben kell megjelenítenie, és a rendezés nincs a Rendezd e szerint (Keep arranged by) opcióival felülbírálva. Az ikonokat tetszőlegesen újrarendezheted, de ügyelj arra, hogy szabályosan állítsd le a számítógépet, mert akkor hiába dolgoztál. A Finder az adott elemhez rendelt megjegyzést is eltárolja, amit a Get Info palettában lehet megadni. Ha állandóan szükséged van erre a palettára, használd a Módosító(Alt)++I kombinációt, a megjelenő Felügyelő paletta mindig az aktuális elemről ad részletes információt, legyen akár mappa, mozi, merevlemez vagy az Íróasztalod. Az ikon helyzetét és a megjegyzést egy láthatatlan .DS_Store állományban tárolja a Finder, ami abban a könyvtárban található, amit az éppen aktív ablak mutat. A . (pont) a neve előtt rejti el a szemed elöl, egy mezei átnevezéskor hibaüzenetet kapsz, de a Terminal és az mv parancs használatával te is elrejthetsz bármit. Az ls -laG parancs minden állományt kilistáz, a G opció Panther alatt színekkel is megkülönbözteti a fájlokat. A beállítások az adott lemez kidobásakor, kijelentkezéskor vagy a Finder szabályos kilépéskor kerülnek tárolásra. Ha az Indítólemezt szeretnéd kidobni, mielőtt a figyelmeztetne a rendszer, hogy nem dobhatod ki, előtte már eltárolta a beállításokat. Hasonlóképpen megy veszendőbe a megírt megjegyzés, vagy a megváltoztatott ikon pozíció, mégha órákkal előtte történt mindez, ha a Finder magától, vagy szándékosan újraindul. A .DS_Store file formátuma bináris, és titokban tartja az Apple.

A Finder Ablakok egyedi, tehát csak a megjelenített mappára vonatkozó beállításait és az ablak Íróasztalon elfoglalt pozícióját a Csak erre az ablakra (This Window Only) nézet beállításokban tárolja el, amit az ablak kinyitáskor történő rajzolására használ. Ezek a beállítások tartalmazzák, hogy egyedi, vagy globális nézetek vonatkoznak e az adott ablakra, ikonos, listás vagy oszlopos nézet van e hozzárendelve, az ikonok mérete, az ikon nevét megjelenítő cimke mérete, a címke helyzete, plusz információt az ikonos nézetben vagy a hasábos nézetben, elönézeti képet mutasson e, rendezze e az adott ikonokat a tulajdonságaik szerint, illetve az ablak háttere fehér, színes vagy éppen a kedvenc képed e. Ezeket az információkat a globális beállításokhoz hasonlóan ugyanúgy a Nézet beállítások palettán állíthatod be, de be kell jelölnöd a Csak erre az ablakra (This Window Only) rádió gombot, hogy a változtatásaid csak erre az egy ablakra vonatkozzanak. A .DS_Store file tárolja ezeket, de nem az éppen megjelenített mappában, hanem az őt tartalmazó mappában található. De mi van akkor, ha a tartalmazó mappában több mappa is van? Kérdezheted jogosan. Nézd meg azoknak a .DS_Store állományoknak a méretét, ami almappákat tartalmazó mappákban találhatóak, sokkal nagyobbak, mint a csak fájlokat tartalmazó mappák esetén, tehát minden mappára külön tárolja el a beállításokat. És mint mindig, ha nem szabályosan fejezed be a Finder használatát, a beállítások ismét elvesznek.

A Finder ablakok tetején található eszköztár beállításait is az egyedi nézetbeállításokhoz hasonlóan menti el a Finder, ugyanabba a .DS_Store állományba, ami az ablakban megjelenített mappát tartalmazó mappában található. Ami gondot okozhat, az az, hogy hogyan kell ezt a nézetet beállítani a Finder eszköztár megjelenítési hibája miatt. Ha adott egy aktív Finder ablak, és a Finder úgy van beállítva, hogy minden új kinyitott mappa a Mac OS 9 működéséhez hasonlóan új ablakban jelenjen meg vagy a mappa kinyitásakor lenyomva tartod az billentyűt, az új ablak mindig azt az eszköztár megjelenést kapja, amilyen az előzőleg aktív ablak megjelenítése volt. A Finder figyelmen kívül hagyja az adott mappához tartozó egyedi eszköztár megjelenítést. Ugyanakkor, ha valamit megfogsz, és ráhúzol egy mappára, kis idő múlva a Finder kinyitja neked a mappát - ha a szóközt megnyomod, akkor azonnal - illetve ha egy alias, Go/Recent Folders vagy a Go/Go to folder... segítségével navigálsz, akkor már az adott mappához elmentett beállításokkal jeleníti meg az ablakot. A Go/Go to folder... pontban remekül működik a parancssorban megszokott tabulátorral történő névkiegészítés. Ha el akarod rejteni az eszköztárat, akkor klikkelj a jobb felső sarokban lévő Colosseum szerű ikonra, vagy add ki a Módosító(Alt)++T kombinációt. Megint ügyelned kell a szabályos kijelentkezésre, illetve lemez-kidobásokra, különben elvesznek a beállításaid.

Mikor is szabályos a kijelentkezés? Ha a Finder kilép és nem indul újra. A Finder sok más beállításaival együtt egy rejtett funkciót is tárol, mégpedig a Finder szabályos kilépését kiadó menüpontot. Akár át is lehetne nevezni a 'Tárold a nézet beállításait' menüpontra. Bármilyen szövegszerkesztővel nyisd meg a ~/Library/Preferences/com.apple.finder.plist nevű XML dokumentumot és ha nem találsz egy 'QuitMenuItem' bejegyzést, a legfelső hierarchiába szúrd be az alábbiakat:
   <key>QuitMenuItem</key>
   <string>YES</string>


Ha van, csak írd át a NO szócskát YES-re, majd mentsd el és indítsd újra a Findert. A módosítások után a File menüben megtalálod a Quit Finder menüpontot, ami bármikor használhatsz, ha a nézetbeállítások elmentésére, több memóriára, illetve hibajavításra akarod használni.

Ha nincs .DS_Store file

Hogyan jeleníti meg a Finder az ablakot, ha a .DS_Store file hiányzik? Unix File System (UFS) lemezekre az alapértelmezett megjelenítéseket alkalmazza, az általában használt HFS+ kötetek esetén a válasz attól függ, hogy megnézted e már valaha az adott mappát Mac OS 9 alatt!

Egy mappa OS 9 alatt történő első megtekintésekor a Finder minden benne található állományhoz és mappához hozzárendeli a megnyitott ablak helyzetét, az éppen megjelenített mappának pedig ikonos, vagy a listás nézetet ad. Ezt az információt a HFS állományrendszerben egy 'Inited' nevű jelző bitben tárolja, ami jelzi az OS 9 megjelenítési információ létezését. (Ha telepítettél fejlesztőeszközöket, a /Developer/Tools/GetFileInfo -ai _fileeleresiutja_ paranccsal le tudod kérdezni ezt a bitet, 0 vagy 1 eredményt kaphatsz értelemszerűen.)

Ha a Findernek olyan ablakot kell megjelenítenie, aminek a tartalmazó mappájában nincs .DS_Store file, az éppen megnyíló mappa 'Inited' bitjét nézi meg. Ha ez nincs beállítva (0), akkor az alapértelmezett nézettel dobja eléd. Ha a bit értéke 1, akkor a mappa egyedi nézetbeállításokat kap, és lista nézettel jelenik meg, ha az OS 9 lista nézettel jelenítette meg. Ennek az egyedi nézetnek mindig 12 pontos a szövegmérete, az ikonok 32x32 pixelesek, a cimkék az ikon alján helyeszkednek, nincsen plusz információ vagy előnézeti ablak, se rácsraállítás vagy rendezés, a háttér pedig fehér színre van beállítva.

Utána a Finder megnézi, hogy a megjelenítendő mappa tartalmaz e .DS_Store állományt. Ha nincsen, minden olyan mappának és ikonnak, minek az 'Inited' bitje be van állítva az OS 9 alatt kapott ikon pozíciókkal lesznek megjelenítve.

Akármelyik .DS_Store file is hiányzik, az eszköztárat mindig láthatod, egy kivétel: ha mindig új ablakokat nyitsz eszköztárral nem rendelkező aktív ablakból akár a Finder beállítással, akár az gomb használatával. Ez független a lemez formátumától és a beállított 'Inited' bittől. A következő kijelentkezéskor vagy a lemez kidobásakor a Finder megpróbálja elkészíteni a hiányzó .DS_Store állományokat.

Ha tévesek a jogok

És itt jönnek még csak a furcsa dolgok, mert a Mac OS X többfelhasználós operációs rendszer, és mappánként csak egy .DS_Store file található, aminek azonban minden létező felhasználó számára biztosítania kell a mappa tartalmának helyes megjelenítését. A bejelentkezésed óta minden általad futtatott program, így a Finder is a te jogaiddal fut. Ezért csak azokat a állományokat és mappákat képes írni, amikhez általad megfelelő jogokkal rendelkezik. Még ha csak te vagy az egyetlen admin felhasználó, bizonyos mappákban neked sincs jogod írni a .DS_Store állományt. Ha megváltoztatod a nézetet egy adott mappára, de a jogaid nem teszik lehetővé a .DS_Store file írását, azaz a módosítások elmentését, minden változtatás figyelmeztetés nélkül elveszik, mikor kidobod a lemezt, kijelentkezel a rendszerből vagy kilépsz a Finderből. Ahhoz, hogy a változtatásokat sikeresen el tudjad menteni, megfelelő jogokkal kell rendelkezned a .DS_Store állományra, illetve az őt tartalmazó mappára nézve egyaránt. A Finder csak akkor tudja írni a .DS_Store állományt, ha pl.: az adott mappában eddig nem létezett, és mivel te változtattál először a megjelenítésen, a Finder létrehozza neked, ekkor a file tulajdonosa is te leszel, illetve ha a .DS_Store már létre van hozva és nem te a vagy a tulajdonosa, de abba a csoportba tartozol, amelyik csoportnak az írási joga be van állítva az adott állományon vagy a file mindenki másra vonatkozó jogai lehetővé teszik az írást. Ha adminisztrátor jogokkal rendelkezel, egy file létrehozása után is lehetsz tulajdonosa, ha manuálisan átruházod a tulajdonjogot saját magadra. Ha egy mappára van írási jogod, akár a tulajdonosa vagy, akár a csoportjába tartozol vagy a mindenki másra vonatkozó jogok ezt lehetővé teszik, a mappát és a tartalmát módosíthatod, illetve az általad futtatott Finder is képes írni. Ami azt jelenti, hogy a benne lévő állományokat bár módosítani nem tudod, de törölni igen, mert a file törlése a mappán számít változtatásnak, persze szegény file nem tehet róla, hogy törölted a könyvtárszerkezetből és arról sem, hogy az operációs rendszernek a mappa is file. Így az adott mappában egy törléssel és létrehozással új .DS_Store állományt hozhat létre a Finder, aminek a tulajdonosa is leszel. Ha az adott mappát nincs jogod változtatni, de a .DS_Store állományt igen, akkor az eredeti tulajdonos marad meg, de a módosítások ugyanúgy mentésre kerülnek.

Kattints rá! Kattints rá! A megjelenített ablak bal alsó sarkában egy kis ceruza ikon jelzi, van e írás jogod az adott mappában, illetve a rácsraállítás és a kritérium szerinti rendezést is jelzi.

Ha az adott mappára nincs írásjogod, de az őt tartalmazó mappára igen, akkor az ikonok helyzetén és a megadott megjegyzéseken kívül a változtatásaid mentésre kerülnek, ha a tartalmazó mappára sincs, akkor hiába minden változtatás.

A Saját mappádon (Home Folder) belül ritkán futhatsz jogi problémákba, kivéve akkor, ha máshonnan helyeztél át fájlokat, illetve más adminisztrátor felhasználók ólálkodnak a könyvtáradban. Az alábbi parancsok segíthetnek a jogok visszaállításában, akár rólad, akár egy másik felhasználóról van szó. A ~ karakter alapértelmezés szerint a Saját mappádnak (Home Folder) az elérési útját jelöli, ha van másik felhasználó is a gépen a ~másikfelhasználórövidnév az adott másik felhasználó Saját mappájának az elérési útját adja meg.

# sudo chown -RP felhasználórövidnév ~felhasználórövidnév

Ezzel a paranccsal az adott mappának és tartalmának a tulajdonosát a symlinkek követése nélkül (-RP) változtatod a kívánt névre. A csoport beállításánál meg kell nézni, hogy az adott felhasználó adminisztrátor vagy korlátozott jogokkal rendelkezik e, mert ha az utóbbi, akkor a megfelelő megszorítások lehetővé tétele miatt a Mac OS X létrehoz egy ugyanolyan nevű csoportot, mint a felhasználó neve és ezzel a csoportjoggal látja el a Saját mappáját. Ha valaminek a csoportját megváltoztatod, akkor minden abba a csoportba tartozó emberre vonatkoznak az adott jogok, ha pedig elveszed a csoportjogokra és a mindenkire vonatkozó jogokat, akkor csak neked van hozzáférésed a mappához. Mindig pontosan nézd meg, hogy mi az adott felhasználó csoportja, adminisztrátor felhasználólnál ez 'admin'.

# sudo chgrp -RP felhasználórövidnév/vagy admin ~felhasználórövidnév

Végül az adott felhasználónak, vagy saját magadnak írási és olvasási jogokat adsz (u+rw), ha mappát talál a Saját mappádban, amin nincsen végrehajtási jog, ami a mappába való belépést jelenti, akkor megadja neki, ha file az illető, békénhagyja a futtathatósági jogot (X), a csoporttól és mindenki mástól pedig elveszed az írási jogot (g-w,o-w), mind a mappákra, mind a állományokra, így sem a .DS_Store állományaid sem a almappáid tartalma nem lesz más által megváltoztatva.

# sudo chmod -RP u+rwX,g-w,o-w ~felhasználórövidnév

A megjelenítési problémák általában a közösen használt mappákban lehetségesek, mint az /Applications, /Library és a /Developer. Bár veszélyes lehet minden könyvtár jogainak a megváltoztatása, főleg a rendszerállományokat tartalmazó látható, illetve rejtett mappák esetén. Ha valamilyen oknál fogva a rendszer nem lenne képes bootolni, illetve hibák lépnek fel a működésében, használd a telepítő cdn lévő lemezkarbantartó program, a DIsk Utility jogjavító (Repair Disk Permissions) parancsát.

Ha globálisan szeretnéd beállítani a megjelenítéseket, akár csak te vagy az egyetlen felhasználó, akár a legfontosabb felhasználó, a legegyszerűbb egy csak általad írható .DS_Store állományt létrehozni egy olyan mappában, amit más nem képes írni, tehát nem tudja a beállításaidat megváltoztatni. Legyen ez mondjuk az /Applications mappa.

A find a megadott mappaszerkezeten képes végiglépdelni, a megadott kritériumoknak megfelelő fájlokon pedig műveleteket képes végrehajtani. Most az /Applications mappa almappáiban, ha az adott file mappa típusú (-type d), végrehajt egy parancsot (-exec), ami után parancsokat lehet megadni, a '{}' jelenti a kritériumnak megfelelő file elérési útját. Mivel a programokat un.: csomagokban (bundle) tárolja a rendszer a listázás során a csomagokban lévő tartalalom is módosítva lesz. A parancs pedig létrehoz egy .DS_Store nevű állományt, ha az nem létezik, tulajdonosa te leszel, jogait az alapértelmezett umask határozza meg.

# sudo find /Applications -type d -exec touch '{}/.DS_Store' \;

Ha a .DS_Store már létezik az adott mappában, tulajdonítsd el, illetve vedd le róla a mások általi írás jogát az alábbi két paranccsal.

# sudo find /Applications -name .DS_Store -exec chown felhasználórövidnév '{}' \;
# sudo find /Applications -name .DS_Store -exec chmod 644 '{}' \;


Ezzel csak egy baj van. Ha valakinek írási joga van a mappára, letörölheti és felülírhatja a .DS_Store file tartalmát, bár az állományra nincsen írási joga ugye emlékszel? Ha adminisztrátor vagy a gépen, az adott mappa tartalmára vedd el az írási jogokat, vagy hozz létre egy olyan csoportot, aki írhatja a mappákat, és engedélyezd csak nekik a nézetváltoztatások elmentését, persze ehhez változtasd meg a mappára vonatkozó csoportjogokat. Végülis a következetes megjelenítés a fontos.

Alapértelmezés visszaállítása

Ha minden eddigi nézetváltoztatást törölni szeretnél, törölheted az összes .DS_Store állományt, illetve eltávolíthatod az OS 9 Inited bitjét, a kis i betű jelenti az adott bit kikapcsolását. Az utóbbi művelethez a fejlesztőeszközökön lévő SetFile programra lesz szükséged.

# sudo find /Applications -exec /Developer/Tools/SetFile -a i '{}' \;
# sudo find /Applications -name .DS_Store - delete


Ezután új .DS_Store állományokat hozhatsz létre a fenti 3 paranccsal. Az OS 9 alapértelmezése miatt inkább OS X alatt nézd meg először a mappákat, hogy az Inited bit később legyen beállítva, mint ahogy a .DS_Store állományt létrehozza a Finder.

Nézetek elmentése AppleScripttel

A Finder ablakok eszköztárában tetszőleges programokat lehet elhelyezni a legkönnyebb megtalálás érdekében. A www.apple.com/applescript/toolbar/ oldalon számos hasznos szkript található, mint a Panther alatt bemutatott kép forgatásra, illetve átméretezésre, illetve alkalmas Image Capture Scripting kiegészítést használó dropletek, a navigációt, illetve ablakkezelést segítőkkel együtt. Az utóbbi részben van egy Nézetek beállítása (Set View Options) szkript, ha kicsomagololás után '?' nevet kap, az ikonját dobd rá a Script Editor szerkesztőre, így megnyílik a tartalma.

A Finder szkriptelhetősége lehetővé teszi, hogy egyszerre több mappára alkalmazd ugyanazokat a beállításokat. Ehhez ugyanúgy szükségesek a megfelelő jogok, mint a manuális beállítások esetén. A szkript elején felsorolt és beállított property változók értékeivel lehet a kívánt nézetet elérni, illetve testreszabni. Amikor a szkript készült, a Finder ablakoknak nem lehetett az eszköztár megjelenítését megadni, Panther rendszerben már lehetséges, ezért a következő módosításokat célszerű elvégezni a szkriptben.

Kattints rá! Kattints rá! Itt a toolbar_visible változóban adhatom meg, hogy legyen e az ablaknak eszköztára.

Ha a kívánt érték különbözik a meglévőtől, akkor állítsa be. ha kész mentsd el és húzd fel az eszköztárba, kis idő műlva engedi csak meg, hogy beletedd. A szkript duplaklikkel történő futtatásánál az adott ablakra alkalmazza a beállításokat, ha pedig egy vagy több mappát dobsz rá, akkor azoknak a nézeteid állítja vissza.


Mátyás Ferenc Farkas


A lap tetejére