Come faccio a rimuovere automaticamente il Finder dal Dock all'accesso?

0

Questo è legato a questa domanda qui , tranne che, oltre a rimuovere il Finder, voglio farlo automaticamente. Esistono diverse soluzioni sul Web che suggeriscono l'uso di questo AppleScript:

tell application "System Events"
    tell UI element "Finder" of list 1 of process "Dock"
        perform action "AXShowMenu"
        click menu item "Remove from Dock" of menu 1
    end tell
end tell

Sfortunatamente, salvarlo come un'applicazione e averlo eseguito al login non funziona; È interessante notare che l'esecuzione in Script Editor fa funziona, ma ciò non risolve il problema di rimuovere automaticamente il Finder.

    
posta Avery Chan 12.07.2013 - 00:40
fonte

1 risposta

1

La soluzione è creare un LaunchAgent ( man launchctl per maggiori informazioni) che esegue lo script sopra tramite la riga di comando. In sostanza, si desidera archiviare lo script sopra in un file, pronunciare "killfinder.scpt" e quindi eseguire il comando osascript /path/to/killfinder.scpt .

Vogliamo farlo automaticamente al login, quindi usiamo un LaunchAgent. Dato che voglio usarlo perché uso Pathfinder e mia moglie no, lo inserirò in ~/Library/LaunchAgents , ma se vuoi che sia esteso al sistema, mettilo in /Library/LaunchAgents .

Avrai tre file:

  1. Uno script UNIX
  2. Un AppleScript (facoltativo)
  3. Un plist XML LaunchAgent

File di script

  1. Metti questo in un percorso appropriato. Ad esempio, l'ho memorizzato in ~/dev/scripts/killfinder.bash .
  2. Crea il file e aggiungi questo contenuto:

    #!/bin/bash
    osascript /path/to/AppleScriptFile.scpt
    
  3. Assicurati che le autorizzazioni siano corrette (ovvero chmod ug+x killfinder.bash )

File AppleScript

Puoi chiamare osascript direttamente con il codice AppleScript come argomento. Lo lascio come esercizio al lettore; in tal caso, puoi creare questo file. Ma se vuoi farlo in questo modo: 1. Metti questo in un percorso appropriato. 2. Crea il file e aggiungi questo contenuto:

    tell application "System Events"
        tell UI element "Finder" of list 1 of process "Dock"
            perform action "AXShowMenu"
            click menu item "Remove from Dock" of menu 1
        end tell
    end tell
  1. Assicurati che le autorizzazioni siano corrette (ovvero chmod ugo+r Finder\ Remove.scpt )

LaunchAgent XML plist

  1. Metti questo in ~/Library/LaunchAgents o /Library/LaunchAgents a seconda se vuoi solo questo comportamento per il tuo account personale o per tutto il sistema.

  2. Crea un file chiamato com.<whateveryouwant>.KillFinder.plist con il seguente contenuto:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
       <key>Label</key>
       <string>com.<whateveryouwant>.KillFinder</string>
       <key>Program</key>
       <string>/path/to/unixscript</string>
       <key>RunAtLoad</key>
       <true/>
    </dict>
    </plist>
    

    È importante assicurarsi che il valore "stringa" dopo che la chiave Label sia corretta, nonché il percorso dello script unix.

Ora tutto ciò che devi fare è uscire e accedere e dovrebbe funzionare!

    
risposta data 12.07.2013 - 01:12
fonte

Leggi altre domande sui tag