Como posso fazer com que o SelfControl seja sempre executado?

7

Eu uso o aplicativo SelfControl.

Existe uma maneira de fazer sempre executar?

    
por Mark 30.03.2011 / 08:27

4 respostas

7

Sim. Basta abrir as Preferências do Sistema na pasta /Applications , selecionar "Contas" e, com seu nome de usuário destacado na lista à esquerda, selecione a guia "Itens de login". Arraste e solte o SelfControl na lista ou clique no botão "+" e navegue até o local.

Em seguida, o SelfControl sempre será iniciado quando você efetuar login.

Você precisará baixar e instalar o Usable Keychain Scripting de Daniel Jalkut para acessar sua senha de administrador com rapidez e segurança, a fim de ativar o SelfControl.

Adicionar senha ao Keychain

Abra Keychain Access.app . Crie uma nova senha digitando Cmd-N ou indo para Arquivo »Novo item de senha ... Em nome do item de chave, digite 'SelfControl'. Invente qualquer Nome da Conta no próximo campo e, no campo Senha, digite a senha da sua conta de usuário (a senha que você usaria para autenticar qualquer coisa no OS X). Clique em 'Adicionar' e agora você deve ter uma nova senha de aplicativo intitulada 'SelfControl' no seu Keychain.

Crie o AppleScript

Cole o seguinte conteúdo (originalmente de aqui ) para uma nova janela do AppleScript Editor .app :

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

Definimos defaultTime para 1440 (ou seja, 24 horas) aqui para que você possa iniciar automaticamente o SelfControl pelo tempo máximo.

Agora, no Editor AppleScript, salve esse arquivo em algum lugar pressionando Arquivo »Salvar , por exemplo /Users/your-username/SelfControl.scpt , que estaria em nossa pasta pessoal. Lembre-se desse caminho.

Crie a entrada do launchd

Em seguida, abra seu editor de texto favorito ou o Property List Editor.app que vem com as ferramentas do Mac OS X Dev no Snow Leopard ou está integrado no Xcode on Lion.

De qualquer forma, cole o seguinte conteúdo, mas lembre-se de alterar o caminho para o script de acordo (não é o lembrado acima):

<?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>

Salve este arquivo com a extensão .plist em /Users/your-username/Library/LaunchAgents/my.selfcontrol.launcher.plist . Se a pasta Library estiver oculta, você pode abrir o Finder, pressionar Cmd Deslocar G e colar ~/Library para abri-lo.

Carrega a entrada do launchd

Por fim, abra um terminal e execute:

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

Isto irá dizer ao launchd para abrir o AppleScript e iniciar o SelfControl por vinte e quatro horas a cada vinte e quatro horas.

Como está em ~/Library/LaunchAgents , ele será carregado automaticamente quando você efetuar login. Se desejar recuperar o computador, substitua load no comando acima por unload e espere o tempo restante de autocontrole expirar. / p>     

por 30.03.2011 / 09:44
6

Você pode facilmente criar o bloco de autocontrole por qualquer período de tempo que desejar - embora não ofereçamos uma configuração "infinita", acho que um bloco de um ano atinge a maior parte do mesmo propósito . E você pode sempre reiniciá-lo então. Para bloquear por até um ano, primeiro feche o SelfControl , abra o Terminal e execute estes comandos:

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

Reabra o SelfControl e o controle deslizante irá até um ano (com intervalos de 5 dias). Você pode fazer esse truque com qualquer tamanho e intervalo de bloco , embora nossa exibição não faça anos - provavelmente exibirá essa duração em dias ou semanas.

Para mais informações, consulte este artigo em nosso wiki. Note, entretanto, que não podemos fornecer suporte se você estragar seu computador no Terminal, portanto, isso é apenas para usuários profissionais. Mais informações sobre ajustes como esse estarão disponíveis no nosso novo site .

    
por 12.07.2012 / 10:48
3

Aqui está um pequeno utilitário que ajuda a programar o SelfControl: link Com isso, você poderia facilmente criar um cronograma para ser executado diariamente das 12h às 23h59. Este utilitário usa diretamente a API de linha de comando do SelfControl e não precisa armazenar sua senha de administrador em um arquivo.

    
por 04.12.2015 / 23:46
1

Outra opção é configurar um cronjob para o autocontrole. Isso deve ser feito no terminal por alguém com privilégios de administrador. Para fazer isso primeiro digite

id -u $USER

e lembre-se do número, diga XXXX . Em seguida, abra o arquivo root crontab com

sudo crontab -e

Você será solicitado a fornecer sua senha e isso funcionará somente na conta de um administrador. Agora adicione as seguintes linhas (as primeiras duas linhas são comentários explicando a última linha):

# 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

em que XXXX é o número obtido na primeira etapa. Se você quisesse executar o autocontrole automaticamente a partir das 8:30 da manhã de segunda a sexta-feira, então o início da linha crontab seria

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

Você pode adicionar quantas linhas crontab quiser para programar comandos arbitrários para executar em momentos diferentes. Por padrão, você estará editando o arquivo crontab usando o vi , para que você possa salvar o arquivo arquivo usando ZZ , por exemplo.

A vantagem de executar o Selfcontrol como um cronjob de raiz é que desta forma ele já possui "direitos de administrador" (acesso root), e não é necessário fornecer uma senha de administrador. O autocontrole será executado com as configurações atuais. Você pode vê-los usando o aplicativo de autocontrole ou a partir da linha de comando usando

defaults read org.eyebeam.SelfControl

Da mesma forma, você pode modificar as configurações usando defaults write ... , para garantir que o autocontrole seja executado com as configurações desejadas, adicionando outro cronjob para configurar o autocontrole antes de iniciar. Por exemplo, adicionando a linha

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

definirá a duração do autocontrole para 7 horas às 22:59 todos os dias.

    
por 24.09.2016 / 01:00