
Estoy intentando crear un acceso directo para Firefox desde WSL2 a Windows 10 Home, pero no he podido hacerlo. Estoy usando VcXsrv, que configuré para que se inicie automáticamente. No puedo usar WSLg porque no tengo Windows 11.
¿Puedes usar aplicaciones, como Firefox, en un acceso directo de Windows sin tener que exportar DISPLAY
manualmente?
Respuesta1
Suena como tú:
Ya tiene su
DISPLAY
variable configurada correctamente y puede ejecutar Firefox desde la línea de comandos en VcXsrv. Ese es un gran comienzo.Notodavía tengo la
DISPLAY
variable exportada en~/.bashrc
, ya que mencionas tener que exportarla manualmente.
Si ese es el caso, primero deberá exportar la variable en su configuración de inicio. Si ya has hecho esta parte, salta a la"Línea de comando de acceso directo"sección siguiente.
Exportar DISPLAY en el inicio
Agregue lo siguiente a su ~/.bashrc
:
export DISPLAY="$(hostname).local:0"
Que utiliza mDNS para recoger la dirección IP adecuada según miresponde aquí sobre el tema. Si tiene otra DISPLAY
configuración que funcione para usted, puede usarla en su lugar, pero creo que el hostname
enfoque basado es el más fácil en la mayoría de los casos.
Entonces:
source ~/.bashrc
para que vuelva a leer la configuración. También puedes reiniciar el shell para asegurarte. Luego asegúrese de que Firefox se ejecute.
Línea de comando de acceso directo
Lo anterior funciona cuando estás en unainteractivoshell, ya que el archivo rc proviene de shells interactivos. Sin embargo, cuando inicias Firefox a través de un acceso directo, necesitarás usar el wsl.exe
comando y, de forma predeterminada, esono esun shell interactivo (o de inicio de sesión).
Desde la memoria aquí, intente configurar su acceso directo de Windows en:
wsl -e bash -lic "firefox"
Eso ejecutará Bash:
- Como shell de inicio de sesión (
-l
) que generará su~/.bash_profile
- Como un shell interactivo (
-i
) que generará su~/.bashrc
- Y ejecuta el comando (
-c
) Firefox
Respuesta2
Recomiendo usar la siguiente sintaxis:
wsl -e bash -lic "nohup firefox &"
"&" en Linux significa "iniciar en segundo plano". Sin "&" tenemos una ventana activa con el proceso padre (bash), con "&" pero sin "nohup" nuestro proceso terminará junto con el padre (ventanas bash).
Con "nohup" y "&" todo se ve bonito, solo el proceso de Firefox.
Respuesta3
Aún más a:
- @Сергей Соколов'srespuesta:
wsl -e bash -lic "nohup firefox &"
- @NotTheDr01ds's
respuesta:
wsl -e bash -lic "firefox"
Acceso directo de Windows (comando de destino)
Esto es lo que funciona mejor y de manera más confiable para mí en mis circunstancias particulares, es decir, Windows 10 con WSL2 Debian.
C:\Windows\System32\wsl.exe -d Debian -- bash -lic "nohup firefox &"
Nota (si migra desde GWSL)
Si solía usar GWSL para iniciar aplicaciones GUI antes de actualizar a WSL2, asegúrese de revisar sus archivos ~/.bashrc
& ~/.profile
(o ~/.bash_profile
) para eliminar cualquier configuración que GWSL haya colocado allí y que sin darse cuenta podría sobrescribir la DISPLAY
variable de entorno a algo no válido que contenga su servidor de nombres. Dirección IP (de /etc/resolve.conf
).
En mi caso, las configuraciones heredadas de GWSL establecidas DISPLAY
en 1.1.1.1:0.0
lugar de :0
las cuales causaron que las cosas se rompieran.
Respuesta4
Al intentar ejecutar un IDE de Xilinx en WSL con el entorno requerido y mi directorio de trabajo, terminé con lo siguiente:
wsl.exe -e bash -lic ". /opt/Xilinx/14.7/ISE_DS/settings64.sh && cd /mnt/c/Users/%username%/Documents/ISE_Projects && nohup ise &"
Encadenar comandos usando && me permitió forzar el entorno y el directorio de trabajo deseados antes de iniciar el programa.
La sustitución de% nombre de usuario% parece estar funcionando.