
Necesito anular el navegador predeterminado para un solo proceso. Este proceso comienza manualmente desde los scripts npm. Para lograr esto mediante programación, decidí anular BROWSER
la variable de entorno justo antes del script. Pero no funciona. Robo abre el navegador predeterminado de todo el sistema. Lo intenté con xdg-open
, pero tampoco funciona.
Para ser breve, quiero que el siguiente comando abra la URL dada en el navegador proporcionado, no en el predeterminado.
BROWSER='path to desired browser' xdg-open 'any url'
PD: Sólo para contar un poco más sobre mi problema. Estoy usando Firefox como navegador predeterminado en todas mis máquinas y me acostumbré bastante. Pero recientemente, al depurar una aplicación web, me di cuenta de que las herramientas de desarrollo de Firefox no utilizaban algunos puntos de interrupción. Instalé Chromium y su depurador funcionó como se esperaba. Utilizo el libro de cuentos para el desarrollo y me gustaría abrirlo en Chromium, mientras uso Firefox como variable predeterminada para el uso diario.
Respuesta1
Necesitaba algo similar, pero no limitado a situaciones que respetaran $BROWSER
, como xdg-open
usar frecuentemente el perfil de navegador incorrecto.
Aquí hay una solución alternativa con los siguientes componentes:
- Un script que carga la
BROWSER
variable e inicia el navegador correcto. - Anulación del
.desktop
perfil predeterminado actual copiándolo en el~/.local/share/applications
directorio. - Cambie las
Exec
declaraciones en el.desktop
archivo para usar el script personalizado. - Establezca la
BROWSER
variable en un valor predeterminado sensato en el shell de inicio de sesión para tener un respaldo.
Paso a paso
Agregué un script a mi ~/bin
directorio llamado custom-browser
que se parece a:
$BROWSER "$@"
En segundo lugar, busque el .desktop
perfil actual con:
xdg-settings get default-web-browser
Eso me dio firefox.desktop
, que copié en el directorio de inicio de mi usuario:
cp /usr/share/applications/firefox.desktop ~/.local/share/applications/firefox.desktop
Modifiqué las Exec
declaraciones ~/.local/share/applications/firefox.desktop
para iniciar /home/{user}/bin/custom-browser
.
Ahora puedo usar:
BROWSER='chromium' xdg-open 'https://startpage.com'
BROWSER='firefox' xdg-open 'https://startpage.com'
Para abrir diferentes navegadores según la BROWSER
variable. Espero que esto te ayude de alguna manera.
mi uso
yo suelodirenv
[1] para configurar la BROWSER
variable según el directorio, por ejemplo, los directorios de trabajo usan un perfil de trabajo para mi navegador.
Otra es que inicio aplicaciones para BROWSER=hardened-firefox signal-desktop
forzar que la aplicación abra enlaces con un navegador específico.
Notas
- El script es necesario porque el
.desktop
archivo no carga variables de entorno, por lo que agregarloExec=$BROWSER %u
directamente no funciona. - Es posible configurar el respaldo
BROWSER
en el script en lugar del shell de inicio de sesión. - Es posible escribir un
.desktop
archivo personalizado y cambiar el valor predeterminado conxdg-settings
/xdg-mime
en lugar de anular el valor predeterminado; Me resultó más fácil hacerlo "bien" con la anulación. - Si utiliza navegadores que no utilizan la URL como primer parámetro posicional,
.desktop
puede ser más fácil personalizarlo y tratarlo en el script. - Si el
.desktop
perfil no está en/usr/share/applications
, o la anulación en$HOME/.local/share/applications
no funciona, pruebe lacaminos alternativos[2] o consulte la documentación de su distribución.
Enlaces
Respuesta2
export BROWSER='path to desired browser' && xdg-open 'any url'
debería funcionar.