Làm cách nào để đặt biến môi trường cho đăng nhập đồ họa trên linux?


15

Tôi đang tìm cách để đặt các biến môi trường tùy ý cho đăng nhập đồ họa của tôi trên linux. Tôi không nói về việc bắt đầu một thiết bị đầu cuối và xuất các biến môi trường trong thiết bị đầu cuối, bởi vì các biến đó chỉ tồn tại trong một thiết bị đầu cuối đó. Tôi muốn biết cách đặt biến môi trường sẽ áp dụng cho tất cả các chương trình được bắt đầu trong phiên đồ họa của tôi.

Nói cách khác, Xorg tương đương với ~/.bash_logincái gì?

Câu trả lời:


10

Bạn luôn có thể đặt chúng vào .profile, vì vậy chúng nên áp dụng cho bất kỳ đăng nhập.

Tuy nhiên, có vấn đề xảy ra, nếu .bash_logintồn tại: Trong trường hợp đó, bash sẽ không đọc .profile.

Nếu bạn muốn các biến của .profilemình áp dụng cả trong bash và cho các lần đăng nhập khác, đừng sử dụng .bash_login! .bashrcThay vào đó hãy đặt các biến cụ thể bash .

Hoặc cách khác, bao gồm .profiletừ.bash_login


Cảm ơn, .profileđã làm việc.
Ryan C. Thompson

1
Ngoài ra, .profile thực sự tốt vì tôi có thể đặt bất kỳ mã bash nào tôi muốn vào đó. Vì vậy, tôi cna thêm vào các biến môi trường hiện có, và làm những thứ khác hoàn toàn.
Ryan C. Thompson

1
Có vẻ như đối với KDE, bạn cần đặt nó vào ~/.kde/env/và kết thúc nó .sh. Xem startkdetrang hướng dẫn.
Ryan C. Thompson

2
Trên thực tế, điều này có vẻ phức tạp hơn một chút. Nó phụ thuộc vào phân phối lựa chọn của bạn, môi trường máy tính để bàn và thậm chí cả vỏ đăng nhập của bạn. Đối với Gnome trên Ubuntu 10.04, bạn phải đặt tập lệnh thiết lập của mình vào ~/.gnomerc, như được hiển thị trong /etc/X11/Xsession.d/55gnome-session_gnomerc.KDE đọc tập lệnh hồ sơ cho bất kỳ trình bao nào là trình bao đăng nhập của bạn. Nếu SHELL=bash, sau đó nó đọc ~/.profile. Nếu SHELL=zsh, sau đó nó đọc ~/.zprofile. Tôi không biết nó làm gì cho các vỏ khác.
Ryan C. Thompson

4

Tôi .profilekhông chỉ thiết lập các biến môi trường nên tôi đã tách các tác vụ thiết lập môi trường thành một .setenvtệp chỉ đặt môi trường. Để làm cho nó thiết lập môi trường cho X11 trên Debian, tôi đã thêm một .xsessionrctrong nhà của mình với:

. ~/.setenv

Các tập tin gây ra .xsessionrccó nguồn gốc là /etc/X11/Xsession.d/40x11-common_xsessionrc.

Sử dụng các tệp mà bash sử dụng để đặt môi trường của nó không làm được điều tôi muốn. Chắc chắn, nếu tôi bắt đầu bash shell trong X11, tôi sẽ có được môi trường tôi muốn. Tuy nhiên, tôi cần cài đặt PATH để môi trường máy tính để bàn của tôi chạy phần mềm tôi muốn. Chẳng hạn, tôi thường sử dụng các phiên bản tùy chỉnh của Firefox, được cài đặt bên ngoài các đường dẫn thông thường. Tôi muốn môi trường máy tính để bàn của tôi bắt đầu phiên bản phù hợp hơn là sử dụng bất cứ thứ gì nó có thể tìm thấy trên các đường dẫn mặc định. Để làm điều này, PATH phải được đặt trước khi môi trường máy tính để bàn bắt đầu.


0

Bản thân Xorg không có, vì nó không khởi động chương trình của bạn - đó sẽ là bất kỳ trình quản lý hiển thị nào (gdm, xdm, xinit, startx, v.v.) hoặc trình quản lý phiên (gnome-session, KDE, v.v.) bạn sử dụng , vì đó là cha mẹ của các quá trình phiên máy tính để bàn của bạn. Thật không may, có rất nhiều trong số đó, mỗi loại có tập lệnh khởi động / dotfiles khác nhau, vì vậy không có câu trả lời một kích cỡ phù hợp cho tất cả. (Theo mô hình máy khách / máy chủ của X, máy chủ X thậm chí có thể không ở trên cùng một máy với máy khách và nó thường chạy dưới dạng root thay vì bạn, do đó là vị trí sai cho các cài đặt như biến môi trường.)


Tôi biết rằng chính Xorg không phải là thứ tôi muốn xem xét. Tôi chỉ muốn biết làm thế nào để thiết lập các biến môi trường trong phiên X của mình.
Ryan C. Thompson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.