Come posso impostare il browser predefinito in base all'ora del giorno?

3

Ho un MacBook Pro dal lavoro. Per mantenere la cronologia di navigazione separata, utilizzo 2 browser diversi. (Chrome = Work, Safari = Fun)

Voglio rendere il mio predefinito browswer Chrome mentre sono al lavoro (dalle 9:00 alle 18:00) e Safari il mio browser predefinito la sera. Questo mi impedirà di aprire accidentalmente un link nel browser sbagliato.

Come potrei cambiare il mio browser predefinito a orari predefiniti durante il giorno?

Aggiorna

Non sembra esserci un flusso di lavoro "set default browser" in automator. Forse sarebbe possibile modificare questo file?

/Users/yourname/Library/Preferences/com.apple.LaunchServices.plist

link

    
posta spuder 08.09.2014 - 23:29
fonte

3 risposte

6

Espansione del mio commento sopra ....

Vedere il commento per utente kerma all'indirizzo questo articolo relativo a StackFlow

La sua piccola app a linea di comando sul link fa ciò di cui hai bisogno.

Ha fornito il codice sorgente ma è stato progettato per 10.9. Un piccolo cambiamento può farlo compilare anche su 10.6. L'ho provato sul mio sistema e ha funzionato correttamente.

Tutto quello che devi fare è eseguirlo in questo modo ...

#defaultbrowser -set firefox

#defaultbrowser -set safari

Le modifiche apportate, per farlo funzionare con 10.6, erano

a) Aggiungi il framework Cocoa

b) Apporta il seguente codice di modifica ...

Sostituisci

NSString *split = HTTPHandlers[i];

con

NSString *split = [HTTPHandlers objectAtIndex:i];

EDIT:

Come è stato sottolineato, il codice non cambia il browser predefinito per HTTPS. Per aggiungere questa funzionalità, ho aggiunto le seguenti righe ...

Trova la prima riga in basso e aggiungi la seconda per https

CFStringRef urlschemeref = ( CFStringRef)@"http";
CFStringRef urlschemeref2 = ( CFStringRef)@"https";

e lo stesso qui

OSStatus s = LSSetDefaultHandlerForURLScheme(urlschemeref, newHandler);
OSStatus s2 = LSSetDefaultHandlerForURLScheme(urlschemeref2, newHandler);

Infine cambia

if (s == 0) {

a

if (s == 0 && s2 == 0) {

Per quanto riguarda la programmazione, poiché sanno cosa è cron, presumo che sappiano come apportare le modifiche necessarie. In caso contrario, una ricerca di Google fornirebbe le risposte necessarie. Quindi le linee di cron sarebbero ...

0 9 0 0 1-5 /path/to/app/defaultbrowser -set chrome
0 18 0 0 1-5 /path/to/app/defaultbrowser -set safari

BUT, un modo molto migliore, perché le attività di cron non vengono eseguite quando il sistema è spento, deve avere un mezzo per rilevare la posizione (come la connessione wifi) e cambiare in base a ciò. Quindi se il cron job è impostato alle 9:00 e arrivi in ritardo al lavoro, accendi il dispositivo alle 9:15. Non succederà nulla ...

Quindi come discusso qui , vorrei raccomandare che installano ControlPlane o qualcosa del genere, e programmano invece la modifica sulla connessione al wifi / rete.

Spero di esserti stato utile.

    
risposta data 09.09.2014 - 21:01
fonte
3

Non è così complicato, ma forse di valore, l'app Choosy . Ti permette di scegliere il tuo browser ogni volta che apri un link esterno di un browser. Anche se questo potrebbe sembrare oneroso, in realtà è piuttosto trasparente, e trovo molto utile il lead up per andare a vivere con un nuovo progetto web e test su più browser più e più volte ...

Potrebbe soddisfare la bolletta se un tasto aggiunto non costituisce un problema. Ovviamente, una volta all'interno di Safari, i collegamenti su cui si fa clic si apriranno in Safari (anche se c'è un modo per modificare questo comportamento.)

FWIW.

Choosy

    
risposta data 11.09.2014 - 14:46
fonte
1

Sulla base della risposta di Vic, questo è ciò che mi è venuto in mente.

Scarica defaultbrowser , crea un cronjob da eseguire alle 9:00 e alle 18:00. Perché non c'è gui, richiederà approfittare del fatto che mac è unix.

Prima controlla il codice sorgente di defaultbrowser e copialo su /usr/local/bin

git clone https://github.com/kerma/defaultbrowser.git /tmp/defaultbrowser
sudo cp /tmp/defaultbrowser/build/defaultbrowser /usr/local/bin/
sudo chmod +x /usr/local/bin/defaultbrowser

Quindi per pianificare il binario da eseguire in momenti specifici, eseguire quanto segue:

EDITOR=NANO crontab -e

0 9 * * 1-5 /usr/local/bin/defaultbrowser -set chrome >> /Users/sowen/defaultbrowser.log 2>&1 && echo $(date) >> /Users/sowen/defaultbrowser.log 2>&1
0 18 * * 1-5 /usr/local/bin/defaultbrowser -set safari >> /Users/sowen/defaultbrowser.log 2>&1 && echo $(date) >> /Users/sowen/defaultbrowser.log 2>&1

Ora il mio browser cambierà alle 9:00 e alle 18:00 nei giorni feriali.

Spiegazione:

EDITOR=NANO crontab -e modifica il file crontab
0 9 * * 1-5 significa nei giorni 1-5 (lunedì - venerdì), esegui il seguente comando alle 9:00 /usr/local/bin/defaultbrowswer -set chrome imposta il browser predefinito
>> /Users/sowen/defaultbrowser.log accoda a un file chiamo defaultbrowser.log nella mia home directory
2>&1 sintassi fancy che invia entrambi gli errori e registra nello stesso posto
&& combina due comandi in 1
echo $(date) >> /Users/sowen/defaultbrowser.log 2>&1 Aggiunge un timestamp al file di registro

Ho avuto qualche problema nel creare il cronjob, ho dovuto usare nano basato su questa informazione .

Inoltre, questo potrebbe essere stato riscritto usando launchd, tuttavia cron è stato più facile.

    
risposta data 10.09.2014 - 01:56
fonte

Leggi altre domande sui tag