Sự khác biệt giữa .xinitrc, .xsession và .xsessionrc


55

Tôi tìm thấy ba tập tin cấu hình.

  1. .xinitrc
  2. .xsession
  3. .xsessionrc

Tôi biết rằng cái đầu tiên là để sử dụng startxvà cái thứ hai và thứ ba được sử dụng khi sử dụng trình quản lý hiển thị. Nhưng sự khác biệt giữa hai cuối cùng là gì?

Câu trả lời:


64

~/.xinitrcđược thực thi bởi xinit, thường được gọi thông qua startx. Chương trình này được thực thi sau khi đăng nhập: đầu tiên bạn đăng nhập vào bảng điều khiển văn bản, sau đó bạn khởi động GUI bằng startx. Vai trò của .xinitrclà bắt đầu phần GUI của phiên, thường bằng cách đặt một số cài đặt liên quan đến GUI như các ràng buộc chính (với xmodmaphoặc xkbcomp), tài nguyên X (với xrdb), v.v. và để khởi chạy trình quản lý phiên hoặc trình quản lý cửa sổ ( có thể là một phần của môi trường máy tính để bàn).

~/.xsessionđược thực thi khi bạn đăng nhập ở chế độ đồ họa (trên trình quản lý hiển thị ) và trình quản lý hiển thị sẽ gọi loại phiên phiên bản tùy chỉnh của trực tuyến. (Với xdm quản lý hiển thị lịch sử, .xsessionluôn luôn thực hiện, nhưng với các nhà quản lý trưng bày hiện đại cung cấp cho người dùng một lựa chọn loại session, bạn thường cần phải chọn “tùy chỉnh” cho .xsessionchạy.) Vai trò của nó là cả hai để thiết lập thông số đăng nhập thời gian (chẳng hạn như các biến môi trường) và để bắt đầu phiên GUI. Một điển hình .xsession

#!/bin/sh
. ~/.profile
. ~/.xinitrc

~/.xsessionrcđược thực thi trên Debian (và các dẫn xuất như Ubuntu, Linux Mint, v.v.) bởi các tập lệnh khởi động X trên thông tin đăng nhập GUI, cho tất cả các loại phiên và (tôi nghĩ) từ tất cả các trình quản lý hiển thị. Nó cũng được thực thi startxnếu người dùng không có .xinitrc, bởi vì trong trường hợp startxđó, các tập lệnh khởi động cùng phiên được sử dụng để đăng nhập GUI. Nó được thực hiện tương đối sớm, sau khi tải tài nguyên nhưng trước khi bắt đầu bất kỳ chương trình nào như tác nhân chính, trình nền D-Bus, v.v. Nó thường đặt các biến có thể được sử dụng bởi các tập lệnh khởi động sau này. Nó không có bất kỳ tài liệu chính thức nào mà tôi biết, bạn phải đào sâu vào nguồn để xem những gì hoạt động.

.xinitrc.xsessionlà các tính năng lịch sử của hệ thống Cửa sổ X11, vì vậy chúng nên có sẵn và có hành vi tương tự trên tất cả các hệ thống Unix. Mặt khác, .xsessionrclà một tính năng và bản phân phối Debian không dựa trên Debian không có nó trừ khi họ đã triển khai một cái gì đó tương tự.

.xprofilerất giống với .xsessionrc, nhưng nó là một phần của tập lệnh khởi động phiên của GDM (trình quản lý hiển thị Gnome), vì vậy nó chỉ đọc nếu bạn đăng nhập bằng GDM.


5

Theo một cuộc thảo luận khác, startx + ~ / .xsession và no ~ / .xinitrc, dẫn đến chức năng bị giảm (xfce4, sid)

Thứ nhất: .xsessionrclà để giữ các biến môi trường toàn cầu . Sự nhấn mạnh là của tôi.

Thứ hai: 40x11-common_xsessionrctrong /etc/X11/Xsession.dlà có nguồn gốc trước 50x11-common_determine-startup. Vì vậy, .xsessionrcđược đọc trước .xsessionvà bất kỳ biến môi trường nào được đặt sẽ có sẵn cho các ứng dụng được chạy bởi các lệnh trong .xsession.

Đọc thêm:

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.