OSX/launchctl: Wie öffne ich jeden Morgen eine bestimmte Website in einer neuen Chrome-Instanz im Vordergrund?

OSX/launchctl: Wie öffne ich jeden Morgen eine bestimmte Website in einer neuen Chrome-Instanz im Vordergrund?

Anforderungen:

  1. Konkrete Webseite
  2. Jeden Morgen, obwohl der Laptop über Nacht geschlossen war (launchctl kann damit umgehen)
  3. Vordergrund - muss mir auffallen, auch wenn ich mehrere Bereiche/Desktops habe
  4. Neue Chrome-Instanz (nicht notwendig, aber wünschenswert)

Wenn ich es open http://superuser.comauf einem Desktop/in einem Bereich versuche, in dem Chrome noch nicht geöffnet ist, sehe ich, dass die Fälle 3. und 4. fehlschlagen. Was passiert, ist, dass ein Tab innerhalb einer vorhandenen Chrome-Instanz geöffnet wird inein andererSpace/Desktop leise im Hintergrund.

Antwort1

Hier ist, was mir eingefallen ist. War einfacher als ich dachte.

Erstellen Sie das Shell-Skript daily_goals.sh:

#!/bin/bash

# this is needed to launch Chrome as a new window. Since it's a new window, it will open in the foreground in current space/desktop. 
open -n -a Google\ Chrome 

# this sleeps for 1 second. It's necessary because otherwise the website, called below, will open in existing Chrome window, which may be located in another desktop. I think sleeping lets the next `open` call find the newly opened Chrome window, and replace the new tab with the provided website. 
sleep 1 

# the website I provided. 
open http://joesgoals.com 

Erstellen /Library/LaunchDaemons/daily_goals.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>daily_goals</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/user/Work/daily_goals.sh</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>07</integer>
        <key>Minute</key>
        <integer>00</integer>
    </dict>
</dict>
</plist>

Zu launchctl hinzufügen:

launchctl load -w /Library/LaunchDaemons/daily_goals.plist

Zusammengefasst startet dies joesgoals.com jeden Morgen um 7 Uhr in einer neu geöffneten Chrome-Instanz. Wenn der Laptop um 7 Uhr im Ruhezustand ist, sollte es JoesGoals öffnen, wenn der Laptop aus dem Ruhezustand wieder aufgenommen wird. Ich werde später ein Update machen, wenn ich irgendwelche Macken beim Wiederaufnehmen von OSX auf verschiedenen Desktops/Bereichen (mit oder ohne Chrome) feststelle. Ich hoffe, dass es kein Problem sein wird.

verwandte Informationen