Bagaimana saya bisa mengatur variabel lingkungan untuk login grafis di linux?


15

Saya sedang mencari cara untuk mengatur variabel lingkungan sewenang-wenang untuk login grafis saya di linux. Saya tidak berbicara tentang memulai terminal dan mengekspor variabel lingkungan di dalam terminal, karena variabel-variabel itu hanya ada di dalam satu terminal itu. Saya ingin tahu cara mengatur variabel lingkungan yang akan berlaku untuk semua program yang dimulai pada sesi grafis saya.

Dengan kata lain, apa yang setara dengan Xorg ~/.bash_login?

Jawaban:


10

Anda selalu dapat memasukkannya .profile, sehingga mereka harus mendaftar untuk login apa pun.

Masalah terjadi namun, jika .bash_loginada: Dalam kasus itu, bash tidak akan membaca .profile.

Jika Anda ingin agar variabel Anda tidak .profileberlaku di bash dan untuk info masuk lainnya, jangan gunakan .bash_login! Masukkan bash variabel spesifik .bashrcsebagai gantinya.

Atau sebagai alternatif, sertakan .profiledari.bash_login


Terima kasih sudah .profilebekerja.
Ryan C. Thompson

1
Juga, profil. Benar-benar baik karena saya dapat memasukkan kode bash yang saya inginkan di dalamnya. Jadi saya dapat menambahkan ke variabel lingkungan yang ada, dan melakukan hal-hal lain sepenuhnya.
Ryan C. Thompson

1
Tampaknya untuk KDE Anda harus memasukkan ini ~/.kde/env/dan mengakhirinya .sh. Lihat halaman startkdemanual.
Ryan C. Thompson

2
Sebenarnya, ini tampaknya sedikit lebih rumit. Itu tergantung pada distribusi pilihan Anda, lingkungan desktop, dan bahkan shell login Anda. Untuk Gnome di Ubuntu 10.04, Anda harus memasukkan skrip pengaturan Anda ~/.gnomerc, seperti yang ditunjukkan dalam /etc/X11/Xsession.d/55gnome-session_gnomerc.KDE membaca skrip profil untuk shell mana pun yang merupakan shell login Anda. Jika SHELL=bash, maka terbaca ~/.profile. Jika SHELL=zsh, maka terbaca ~/.zprofile. Saya tidak tahu apa fungsinya untuk kerang lain.
Ryan C. Thompson

4

My .profiletidak hanya mengatur variabel lingkungan jadi saya memisahkan tugas pengaturan lingkungan ke .setenvfile yang hanya mengatur lingkungan. Untuk membuatnya mengatur lingkungan untuk X11 di Debian, saya menambahkan .xsessionrcdi rumah saya dengan:

. ~/.setenv

File yang menyebabkan .xsessionrcsumbernya adalah /etc/X11/Xsession.d/40x11-common_xsessionrc.

Menggunakan file yang bash gunakan untuk mengatur lingkungannya tidak melakukan apa yang saya inginkan. Tentu, jika saya memulai bash shell di X11, saya akan mendapatkan lingkungan yang saya inginkan. Namun, saya perlu mengatur PATH saya sehingga lingkungan desktop saya akan menjalankan perangkat lunak yang saya inginkan. Misalnya, saya sering menggunakan Firefox versi khusus, yang dipasang di luar jalur yang biasa. Saya ingin lingkungan desktop saya memulai versi yang tepat daripada menggunakan apa pun yang dapat ditemukan di jalur default. Untuk melakukan ini, PATH harus diatur sebelum lingkungan desktop dimulai.


0

Xorg sendiri tidak memilikinya, karena ia tidak memulai program Anda - itu akan menjadi apa pun pengelola tampilan (gdm, xdm, xinit, startx, dll.) Atau manajer sesi (sesi gnome, KDE, dll.) Yang Anda gunakan , karena mereka adalah orang tua dari proses sesi desktop Anda. Sayangnya, ada beragamnya, masing-masing dengan skrip / dotfile startup yang berbeda, jadi tidak ada jawaban satu ukuran untuk semua. (Di bawah model klien / server X, server X bahkan mungkin tidak berada di mesin yang sama dengan klien, dan sering berjalan sebagai root alih-alih Anda, jadi adalah tempat yang salah untuk pengaturan seperti variabel lingkungan.)


Saya tahu bahwa Xorg sendiri bukan yang ingin saya lihat. Saya hanya ingin tahu cara mengatur variabel lingkungan saya di sesi X saya.
Ryan C. Thompson
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.