¿Cómo puedo establecer variables de entorno para un inicio de sesión gráfico en Linux?

15

Estoy buscando una manera de establecer variables de entorno arbitrarias para mi inicio de sesión gráfico en Linux. No estoy hablando de iniciar un terminal y exportar variables de entorno dentro del terminal, porque esas variables solo existen dentro de ese terminal. Quiero saber cómo establecer una variable de entorno que se aplique a todos los programas iniciados en mi sesión gráfica.

En otras palabras, ¿cuál es el equivalente de Xorg ~/.bash_login?

Ryan C. Thompson
fuente

Respuestas:

10

Siempre puede colocarlos .profile, por lo que deben solicitar cualquier inicio de sesión.

Sin embargo, se producen problemas si .bash_loginexiste: en ese caso, bash no leerá .profile.

Si desea que sus variables se .profileapliquen tanto en bash como para otros inicios de sesión, ¡no lo use .bash_login! Coloque bash variables específicas en su .bashrclugar.

O, alternativamente, incluir .profiledesde.bash_login

Chris Lercher
fuente
Gracias .profiletrabajado.
Ryan C. Thompson
1
Además, .profile es realmente bueno porque puedo poner cualquier código bash que quiera en él. Así que puedo agregar variables de entorno existentes y hacer otras cosas por completo.
Ryan C. Thompson
1
Parece que para KDE necesita poner esto ~/.kde/env/y terminarlo con .sh. Ver la página de startkdemanual.
Ryan C. Thompson
2
En realidad, esto parece un poco más complicado. Depende de su distribución de opciones, entorno de escritorio e incluso su shell de inicio de sesión. Para Gnome en Ubuntu 10.04, debe colocar su script de configuración ~/.gnomerc, como se muestra en /etc/X11/Xsession.d/55gnome-session_gnomerc.KDE lee el script de perfil para cualquier shell que sea su shell de inicio de sesión. Si SHELL=bash, entonces se lee ~/.profile. Si SHELL=zsh, entonces se lee ~/.zprofile. No sé lo que hace para otros proyectiles.
Ryan C. Thompson
4

My .profilehace más que solo establecer variables de entorno, por lo que he dividido las tareas de configuración del entorno en un .setenvarchivo que solo establece el entorno. Para que establezca el entorno para X11 en Debian, agregué un .xsessionrcen mi hogar con:

. ~/.setenv

El archivo que causa el .xsessionrcorigen es /etc/X11/Xsession.d/40x11-common_xsessionrc.

Usar los archivos que bash usa para establecer su entorno no hizo lo que quería. Claro, si comencé un bash shell en X11, obtendría el entorno que quería. Sin embargo, necesito tener mi RUTA configurada para que mi entorno de escritorio ejecute el software que quiero. Por ejemplo, a menudo uso versiones personalizadas de Firefox, instaladas fuera de las rutas habituales. Quiero que mi entorno de escritorio inicie la versión adecuada en lugar de usar lo que pueda encontrar en las rutas predeterminadas. Para hacer esto, PATH debe establecerse antes de que comience el entorno de escritorio.

Louis
fuente
0

Xorg en sí no tiene uno, ya que no inicia sus programas; sería cualquier administrador de pantalla (gdm, xdm, xinit, startx, etc.) o administrador de sesión (gnome-session, KDE, etc.) que use , ya que esos son los padres de sus procesos de sesión de escritorio. Desafortunadamente, hay una variedad de esos, cada uno con diferentes scripts de inicio / archivos de puntos, por lo que no hay una respuesta única para todos. (Según el modelo de cliente / servidor de X, el servidor X puede no estar en la misma máquina que los clientes, y a menudo se ejecuta como root en lugar de usted, por lo que es el lugar incorrecto para configuraciones como variables de entorno).

alanc
fuente
Sé que Xorg en sí no es lo que quiero ver. Solo quiero saber cómo configurar mis variables de entorno en mi sesión X.
Ryan C. Thompson