Wie kann ich SelfControl immer ausführen lassen?

10386
Mark

Ich benutze die SelfControl App.

Gibt es eine Möglichkeit, es immer laufen zu lassen?

7

4 Antworten auf die Frage

7
Scott

Ja. Öffnen Sie einfach die Systemeinstellungen aus dem /ApplicationsOrdner, wählen Sie "Konten" aus, und markieren Sie Ihren Benutzernamen in der Liste links, um die Registerkarte "Anmeldeelemente" auszuwählen. Ziehen Sie SelfControl entweder in die Liste, oder klicken Sie auf die Schaltfläche "+", und navigieren Sie zu seiner Position.

Dann wird SelfControl immer gestartet, wenn Sie sich anmelden.


Sie müssen das brauchbare Schlüsselbund-Skript von Daniel Jalkut herunterladen und installieren, um schnell und sicher auf Ihr Administratorkennwort zugreifen zu können, um SelfControl zu aktivieren.

Fügen Sie das Passwort zum Schlüsselbund hinzu

Öffnen Sie den Schlüsselbund Access.app . Erstellen Sie ein neues Kennwort, indem Sie Cmd-N eingeben oder zu Datei »Neues Kennwortelement ... wechseln. Geben Sie unter Name des Schlüsselbundelements den Namen" SelfControl "ein. Geben Sie im nächsten Feld einen Kontonamen ein, und geben Sie im Feld Kennwort das Kennwort für Ihr Benutzerkonto ein (das Kennwort, das Sie zur Authentifizierung in OS X verwenden würden). Klicken Sie auf "Hinzufügen", und Sie sollten jetzt ein neues Anwendungskennwort mit der Bezeichnung "SelfControl" in Ihrem Schlüsselbund haben.

Erstellen Sie das AppleScript

Fügen Sie den folgenden Inhalt (ursprünglich von hier ) in ein neues Fenster von AppleScript Editor.app ein :

on run argv set defaultTime to 1440  try set myTime to item 1 of argv as number on error set myTime to defaultTime end try  tell application "Usable Keychain Scripting" tell current keychain set myPass to (password of first generic item ¬ whose name contains "SelfControl")  -- eliminate invisible characters, or "gremlins," from password set x to quoted form of myPass set myPass to do shell script "echo " & x & " | perl -pe 's/[^[:print:]]//g'" end tell end tell  tell application "SelfControl" to activate  tell application "System Events" tell process "SelfControl" tell slider of window "SelfControl" to set value to myTime click button "Start" of window "SelfControl" end tell tell window 1 of process "SecurityAgent" with timeout of 15 seconds repeat set tryAgain to false try set value of text field 2 of scroll area 1 of group 1 to myPass on error delay 1 set tryAgain to true end try if not tryAgain then exit repeat end repeat click button 2 of group 2 end timeout end tell end tell end run 

Wir haben hier defaultTime1440 (dh 24 Stunden) eingestellt, damit Sie SelfControl automatisch für die maximale Zeit starten können.

Speichern Sie diese Datei jetzt im AppleScript-Editor, indem Sie Datei »Speichern drücken, z. B. /Users/your-username/SelfControl.scptin unserem Home-Ordner. Erinnere dich an diesen Weg.

Erstellen Sie den Starteintrag

Öffnen Sie dann Ihren bevorzugten Texteditor oder die Property List Editor.app, die mit den Mac OS X Dev-Tools von Snow Leopard geliefert wird oder in Xcode von Lion integriert ist.

Fügen Sie auf jeden Fall den folgenden Inhalt ein, aber stellen Sie sicher, dass Sie den Pfad zum Skript entsprechend ändern (dies ist nicht der Pfad, den wir oben gespeichert haben):

<?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>my.selfcontrol.launcher</string> <key>ProgramArguments</key> <array> <string>osascript</string> <string>/Users/your-username/SelfControl.scpt</string> </array> <key>StartInterval</key> <integer>86400</integer> <key>RunAtLoad</key> <false/> <key>KeepAlive</key> <false/> </dict> </plist> 

Speichern Sie diese Datei mit der .plistErweiterung unter /Users/your-username/Library/LaunchAgents/my.selfcontrol.launcher.plist. Wenn der Library - Ordner versteckt ist, können Sie Finder öffnen, drücken Sie CmdShiftGund fügen Sie ~/Librarysie zu öffnen.

Laden Sie den Starteintrag

Öffnen Sie schließlich ein Terminal und führen Sie Folgendes aus:

launchctl load ~/Library/LaunchAgents/my.selfcontrol.launcher.plist 

Dies sagt Ihnen, dass Sie das AppleScript öffnen und SelfControl alle 24 Stunden für 24 Stunden starten sollen.

Da es enthalten ist ~/Library/LaunchAgents, wird es automatisch geladen, wenn Sie sich anmelden. Wenn Sie möchten, dass Ihr Computer wieder verfügbar ist, ersetzen Sie ihn loadmit dem obigen Befehl durch unloadund warten Sie, bis die verbleibende SelfControl-Zeit abgelaufen ist.

SelfControl hat eine Beschränkung von 24 Stunden, um seine Funktionalität zu aktivieren. Das ist wahrscheinlich relevanter ..? Daniel Beck vor 13 Jahren 0
Gut genug, aber ich denke nicht, dass ein Downvote eine vernünftige Antwort auf das Originalposter ist, das eine mehrdeutige Frage stellt. Scott vor 13 Jahren 0
Ich habe nicht abgestiegen und weiß nicht, wer das getan hat, obwohl dies nach meinem Kommentar eine vernünftige Annahme ist. Schade, der Downvoter hat sich nicht die Mühe gemacht, sich selbst zu kommentieren. Positiv für die bearbeitete Antwort, deutlich besser. Daniel Beck vor 13 Jahren 0
In diesem Fall werde ich gegen Leute, die nicht abstimmen wollen, eine Erklärung abgeben! Scott vor 13 Jahren 2
Freut mich zu hören, Mark. \ * bläst Himbeere im Downvoter \ * Scott vor 13 Jahren 0
@Scott Ich weiß nicht, warum die Entscheidung gefallen ist, aber Ihre Anweisungen waren für neue Benutzer ein wenig technisch (wie aus einer Antwort hervorgeht, in der genau nach dieser Frage gefragt wird). Ich habe versucht, Ihren Beitrag zu verbessern - fühlen Sie sich frei, das zu wiederholen. slhck vor 11 Jahren 0
Verwendbarer Schlüsselbund In 10.11 El Capitan scheint das Scripting defekt zu sein Justin Maxwell vor 7 Jahren 0
6
Charlie Stigler

Sie können den SelfControl-Block leicht für beliebig lange Zeit erstellen - obwohl wir keine "unendliche" Einstellung anbieten, denke ich, dass ein jahrelanger Block den gleichen Zweck erfüllt. Und Sie können es dann immer wieder starten. Um ein Jahr lang zu blockieren, schließen Sie zuerst SelfControl, öffnen Sie dann das Terminal und führen Sie die folgenden Befehle aus:

defaults write org.eyebeam.SelfControl MaxBlockLength -int 31556900 defaults write org.eyebeam.SelfControl BlockLengthInterval -int 432000 

Öffnen Sie SelfControl erneut, und der Schieberegler wird bis zu einem Jahr (in 5-Tage-Intervallen) voll ausgefahren. Sie können diesen Trick mit jeder Blocklänge und -intervall ausführen, obwohl unsere Anzeige derzeit keine Jahre macht - diese Länge wird stattdessen wahrscheinlich in Tagen oder Wochen angezeigt.

Weitere Informationen finden Sie in diesem Artikel in unserem Wiki. Beachten Sie jedoch, dass wir keinen Support anbieten können, wenn Sie Ihren Computer in Terminal versauen. Dies ist also nur für professionelle Benutzer. Weitere Informationen zu solchen Änderungen finden Sie auf unserer neuen Website .

Sollte ein Jahr nicht 525600 Minuten sein? Und ein 5-Tage-Intervall von 7200? reynoldsnlp vor 8 Jahren 0
3
Andreas

Hier ist ein kleines Hilfsprogramm, mit dem Sie SelfControl planen können: https://github.com/andreasgrill/auto-selfcontrol Mit diesem Werkzeug können Sie ganz einfach einen Zeitplan erstellen, der täglich von 12 bis 23.59 Uhr ausgeführt wird. Dieses Dienstprogramm verwendet direkt die Befehlszeilen-API von SelfControl und muss Ihr Administratorkennwort nicht in einer Datei speichern.

Warum wurde das abgelehnt? Es ist toll. Justin Maxwell vor 7 Jahren 1
1
Andrew

Eine andere Möglichkeit ist, einen Cronjob zur Selbstkontrolle einzurichten. Dies muss von einer Person mit Administratorrechten vom Terminal aus erfolgen. Um dies zu tun, schreiben Sie zuerst

id -u $USER 

und erinnere mich an die Nummer, sprich XXXX. Als nächstes öffnen Sie die Root-Crontab-Datei mit

sudo crontab -e 

Sie werden aufgefordert, Ihr Kennwort einzugeben. Dies funktioniert nur von einem Administratorkonto aus. Fügen Sie nun die folgenden Zeilen hinzu (die ersten beiden Zeilen sind Kommentare, die die letzte Zeile erläutern):

# Cron syntax: minute hour day_of_month month day_of_week <command> # Run self-control at 11pm every day for user XXXX = $(id -u $USER) 0 23 * * * /Applications/SelfControl.app/Contents/MacO/org.eyebeam.SelfControl XXXX --install 

wo XXXXist die Nummer, die Sie im ersten Schritt erhalten haben. Wenn Sie ab 08:30 Uhr von Montag bis Freitag automatisch eine Selbstkontrolle durchführen möchten, beginnt die Crontab-Linie

30 10 * * 1-5 /Applications/... 

Sie können beliebig viele Crontab-Zeilen hinzufügen, um beliebige Befehle zu verschiedenen Zeitpunkten auszuführen. Übrigens: Sie bearbeiten die Crontab-Datei standardmäßig mit vi, sodass Sie die Datei beispielsweise mit speichern können ZZ.

Der Vorteil der Ausführung von Selfcontrol als Root-Cronjob besteht darin, dass auf diese Weise bereits "Administratorrechte" (Root-Zugriff) vorhanden sind und es nicht erforderlich ist, ein Administratorkennwort anzugeben. Die Selbststeuerung wird mit den aktuellen Einstellungen ausgeführt. Sie können diese entweder über die Selbststeuerungs-App oder über die Befehlszeile mit anzeigen

defaults read org.eyebeam.SelfControl 

Auf ähnliche Weise können Sie die Einstellungen mit ändern defaults write ..., sodass Sie sicherstellen können, dass die Selbststeuerung mit den gewünschten Einstellungen ausgeführt wird, indem Sie einen weiteren Cronjob hinzufügen, um die Selbststeuerung kurz vor dem Start einzurichten. Zum Beispiel das Hinzufügen der Zeile

59 22 * * * /usr/bin/defaults write org.eyebeam.SelfControl BlockDuration 420 

setzt die Dauer der Selbstkontrolle jeden Tag um 22:59 Uhr auf 7 Stunden.

oder `sudo crontab -e` und ersetze dann alles in` <> `s in den folgenden:` 30 10 * * 1-5 sudo -H -u / usr / bin / defaults schreibt org.eyebeam.SelfControl BlockDuration && /Applications/SelfControl.app/Contents/MacOS/org.eyebeam.SelfControl --install` reynoldsnlp vor 6 Jahren 0