¿Cómo puedo configurar el navegador predeterminado según la hora del día?

3

Tengo un MacBook Pro del trabajo. Para mantener mi historial de navegación separado, uso 2 navegadores diferentes. (Chrome = Trabajo, Safari = Diversión)

Quiero hacer que mi navegador predeterminado sea Chrome mientras estoy en el trabajo (9 am a 6 pm), y Safari mi navegador predeterminado por las noches. Esto evitará que abra accidentalmente un enlace en el navegador incorrecto.

¿Cómo puedo cambiar mi navegador predeterminado en horarios predefinidos a lo largo del día?

Actualizar

No parece haber un flujo de trabajo 'establecer el navegador predeterminado' en automator. Quizás sería posible editar este archivo?

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

enlace

    
pregunta spuder 08.09.2014 - 23:29

3 respuestas

5

Ampliando mi comentario anterior ....

Vea el comentario del usuario kerma en este artículo relacionado de StackFlow

Su pequeña aplicación de línea de comandos en enlace hace lo que necesitas.

Él proporcionó el código fuente pero fue diseñado para 10.9. Un pequeño cambio puede hacer que se compile en 10.6 también. Lo probé en mi sistema y funcionó correctamente.

Todo lo que necesitas hacer es ejecutarlo así ...

#defaultbrowser -set firefox

#defaultbrowser -set safari

Los cambios que hice, para que funcionen con 10.6, fueron

a) Agregue el marco Cocoa

b) Haz el siguiente cambio de código ...

Reemplazar

NSString *split = HTTPHandlers[i];

con

NSString *split = [HTTPHandlers objectAtIndex:i];

EDITAR:

Como se señaló, el código no cambia el navegador predeterminado para HTTPS. Para agregar esa funcionalidad, agregué las siguientes líneas ...

Encuentre la primera línea a continuación y agregue la segunda para https

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

y lo mismo aquí

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

Finalmente cambiar

if (s == 0) {

a

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

Con respecto a la programación, ya que saben qué es cron, asumo que saben cómo realizar los cambios necesarios. Si no es así, una búsqueda de google proporcionará las respuestas necesarias. Así que las líneas cron serían ...

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

PERO, una forma mucho mejor, porque las tareas cron no se ejecutarán cuando el sistema se apague, es tener un medio para detectar la ubicación (como la conexión wifi) y cambiar de acuerdo con eso. Entonces, si el trabajo cron se configura a las 9 am y llega tarde al trabajo, enciende su dispositivo a las 9:15 am y no pasará nada ...

Entonces, como se analiza aquí , recomendaría que instalen ControlPlane o algo así, y programen el cambio en la conexión a la red / wifi en su lugar.

Espero que haya ayudado.

    
respondido por el Vic 09.09.2014 - 21:01
3

No es tan complicada, pero quizás de valor, es la aplicación Choosy . Le permite elegir su navegador cada vez que abre un enlace fuera de un navegador. Si bien esto puede parecer oneroso, en realidad es bastante transparente, y me parece muy útil para comenzar a utilizar un nuevo proyecto web y realizar pruebas en múltiples navegadores una y otra y otra vez ...

Es posible que se ajuste a la factura si una pulsación adicional no es un problema. Por supuesto, una vez que estés dentro de Safari, los enlaces en los que se haga clic se abrirán en Safari (aunque incluso hay una forma de modificar este comportamiento).

FWIW.

Choosy

    
respondido por el dashard 11.09.2014 - 14:46
1

Basado en la respuesta de Vic, esto es lo que se me ocurrió.

Descargue defaultbrowser , cree un cronjob para ejecutar a las 9 am y las 6 pm. Como no hay una interfaz gráfica de usuario, será necesario aprovechar el hecho de que mac es unix.

Primero verifique el código fuente de defaultbrowser , y cópielo en /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

Luego, para programar que el binario se ejecute en momentos específicos, ejecute lo siguiente:

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

Ahora mi navegador cambiará a las 9 am y las 6 pm los días de semana.

Explicación:

EDITOR=NANO crontab -e edita el archivo crontab
0 9 * * 1-5 significa en los días 1 a 5 (de lunes a viernes), ejecute el siguiente comando a las 9:00 /usr/local/bin/defaultbrowswer -set chrome establece el navegador predeterminado que >> /Users/sowen/defaultbrowser.log agrega a un archivo al que llamo defaultbrowser.log en mi directorio de inicio
2>&1 sintaxis de lujo que envía ambos errores y se registra en el mismo lugar
&& combina dos comandos en 1
echo $(date) >> /Users/sowen/defaultbrowser.log 2>&1 Agrega una marca de tiempo al archivo de registro

Tuve algunos problemas para crear el cronjob, tuve que usar nano basado en esta información .

Además, esto podría haberse reescrito usando launchd, sin embargo, cron fue más fácil.

    
respondido por el spuder 10.09.2014 - 01:56

Lea otras preguntas en las etiquetas