Tạo một tệp mới /user/share/xsessions/default.desktop
(Tên tùy thuộc vào bạn, nhưng nó phải có .desktop
hậu tố):
[Desktop Entry]
Name=Default
Comment=This runs user session and logs you into Ubuntu
Exec=default
Icon=
Bây giờ khi bạn chọn phiên này lightdm
và đăng nhập, ~/.xsession
tệp của bạn , nếu tồn tại, sẽ được thực thi.
Lưu ý rằng tệp của người dùng được thực thi là ~/.xsession
, và không ~/.xinitrc
, được đề cập trong câu hỏi. ( ~/.xinitrc
được sử dụng khi phiên X được bắt đầu bằng cách sử dụng startx
tập lệnh từ một dòng lệnh.)
Một số giải thích: Name
Mục nhập là những gì lightdm
sẽ hiển thị cho phiên này. Các Exec
entry là điều quan trọng, và nó nên là tên của chương trình bắt đầu phiên thực tế. Khi bạn đăng nhập, lightdm
gọi /etc/X11/Xsession
tập lệnh, chuyển cho nó giá trị Exec
như một đối số và Xsession
cuối cùng sẽ thực hiện chương trình này (ví dụ: nó có thể startxfce4
để bắt đầu một xfce4
phiên). Nếu Exec
mục nhập là chuỗi đặc biệt default
, thì Xsession
sẽ thực thi ~/.xsession
tệp của người dùng . ( Xsession
cũng sẽ thực thi ~/.xsession
nếu nó được gọi mà không có di tích.)
Xin lỗi, tôi mới ở đây và do đó không thể nhận xét về câu trả lời của người khác, nhưng tôi muốn nhận xét về câu trả lời được chấp nhận, để làm cho mọi thứ rõ ràng hơn. Theo giải thích của tôi ở trên, điều gì sẽ xảy ra với phương thức của câu trả lời đó là Xsession
sẽ được gọi bằng lightdm
một đối số (đường dẫn đầy đủ) Xsession
. Vì vậy, Xession
sẽ chạy và sau đó gọi chính nó, lần này không có đối số. Cái thứ hai Xsession
, được gọi mà không có đối số, sẽ thực thi người dùng ~/.xsession
. Vì vậy, cuối cùng, hành động mong muốn sẽ được thực hiện, nhưng theo một cách hơi khó xử.