Come posso impostare le variabili di ambiente per un login grafico su Linux?


15

Sto cercando un modo per impostare variabili di ambiente arbitrarie per il mio login grafico su Linux. Non sto parlando dell'avvio di un terminale e dell'esportazione delle variabili di ambiente all'interno del terminale, poiché tali variabili esistono solo all'interno di quel terminale. Voglio sapere come impostare una variabile d'ambiente che si applicherà a tutti i programmi avviati nella mia sessione grafica.

In altre parole, qual è l'equivalente di Xorg ~/.bash_login?

Risposte:


10

Puoi sempre inserirli .profile, quindi devono fare domanda per qualsiasi accesso.

Tuttavia, si verificano problemi, se .bash_loginesiste: In tal caso, bash non legge .profile.

Se vuoi che le tue variabili .profilevengano applicate sia in bash che per altri accessi, non usare .bash_login! Inserisci .bashrcinvece le variabili specifiche bash .

O in alternativa, includere .profileda.bash_login


Grazie, ha .profilefunzionato.
Ryan C. Thompson,

1
Inoltre, .profile è davvero bello perché posso inserire qualsiasi codice bash che voglio in esso. Quindi posso aggiungere variabili di ambiente esistenti e fare completamente altre cose.
Ryan C. Thompson,

1
Sembra che per KDE sia necessario inserirlo ~/.kde/env/e terminarlo .sh. Vedi la startkdemanpage.
Ryan C. Thompson,

2
In realtà, questo sembra un po 'più complicato. Dipende dalla tua scelta di distribuzione, dall'ambiente desktop e persino dalla tua shell di accesso. Per Gnome su Ubuntu 10.04, devi inserire lo script di installazione ~/.gnomerc, come mostrato in. /etc/X11/Xsession.d/55gnome-session_gnomercKDE legge lo script del profilo per qualunque shell sia la tua shell di login. Se SHELL=bash, allora legge ~/.profile. Se SHELL=zsh, allora legge ~/.zprofile. Non so cosa faccia per le altre conchiglie.
Ryan C. Thompson,

4

My .profilenon si limita a impostare le variabili di ambiente, quindi ho suddiviso le attività di impostazione dell'ambiente in un .setenvfile che imposta solo l'ambiente. Per farlo impostare l'ambiente per X11 su Debian, ho aggiunto a .xsessionrcnella mia casa con:

. ~/.setenv

Il file che causa la .xsessionrcprovenienza è /etc/X11/Xsession.d/40x11-common_xsessionrc.

L'uso dei file che Bash utilizza per impostare il suo ambiente non ha fatto quello che volevo. Certo, se avessi avviato una shell bash in X11, avrei ottenuto l'ambiente che desideravo. Tuttavia, devo avere il mio PATH impostato in modo che il mio ambiente desktop esegua il software che desidero. Ad esempio, utilizzo spesso versioni personalizzate di Firefox, installate al di fuori dei soliti percorsi. Voglio che il mio ambiente desktop avvii la versione corretta piuttosto che usare qualunque cosa riesca a trovare nei percorsi predefiniti. Per fare ciò, PATH deve essere impostato prima dell'avvio dell'ambiente desktop.


0

Xorg stesso non ne ha uno, dal momento che non avvia i tuoi programmi - sarebbe qualunque gestore di display (gdm, xdm, xinit, startx, ecc.) O gestore di sessioni (gnome-session, KDE, ecc.) Che usi , poiché quelli sono i genitori dei processi della sessione desktop. Sfortunatamente, ce n'è una varietà, ognuna con script / dotfile di avvio diversi, quindi non esiste una risposta valida per tutti. (Nel modello client / server di X, il server X potrebbe non essere nemmeno sullo stesso computer dei client, e spesso viene eseguito come root anziché te, quindi è il posto sbagliato per impostazioni come le variabili di ambiente.)


So che Xorg stesso non è quello che voglio guardare. Voglio solo sapere come impostare le variabili di ambiente nella mia sessione X.
Ryan C. Thompson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.