Startx chạy trên môi trường máy tính để bàn nào và làm cách nào để thay đổi nó?


18

Từ nhiều tài liệu, tôi đọc được rằng startxđang bắt đầu LXDE trong HĐH Raspbian. Tôi cảm thấy hơi khó hiểu.

Sẽ luôn startxchạy GUI LXDE?

Ngoài ra tôi đã thấy ví dụ với việc sử dụng startlxdelệnh. Lệnh đó khác nhau như thế nào và tại sao startxstartlxdeđang chạy cùng một GUI (LXDE)? Hoặc có thể nó chạy nó bởi vì nó là GUI mặc định?

Làm cách nào để chọn GUI mặc định nếu tôi có nhiều cái?

Bạn có thể vui lòng giải thích chi tiết hơn về GUI trong các hệ thống Linux không?

Câu trả lời:


27

startxchạy xinitmà bắt đầu một máy chủ X và một phiên khách. Phiên khách là ~/.xinitrcnếu có, và nếu không /etc/X11/xinit/xinitrc(vị trí có thể khác nhau giữa các bản phân phối). Kịch bản này không thay đổi giữa các bản phân phối. Trên Debian (bao gồm các dẫn xuất như Raspbian), /etc/X11/xinit/xinitrcchạy /etc/X11/Xsessionlần lượt chạy các tập lệnh trong /etc/X11/Xsession.d. Các kịch bản Debian tìm kiếm một phiên người dùng trong các tập tin khác ( ~/.xsession, ~/.xsessionrc, ~/.Xsession), và nếu không có thiết lập sử dụng được áp dụng, chạy x-session-manager(té ngửa ra x-window-managernếu không có [Session Manager] được cài đặt, té ngửa ra x-terminal-emulatortrong trường hợp không chắc rằng không có quản lý cửa sổ là Cài đặt).

Nếu bạn muốn kiểm soát những gì được thực thi, bạn có thể tạo một trong các tệp người dùng, ~/.xsessionhoặc ~/.xinitrc. Tệp ~/.xsessioncũng được sử dụng nếu bạn đăng nhập vào trình quản lý hiển thị (nghĩa là nếu bạn nhập mật khẩu của mình trong cửa sổ GUI). Các tập tin ~/.xinitrclà cụ thể xinitstartx. Việc sử dụng ~/.xsessionđi qua /etc/X11/Xsessionđể nó thiết lập những thứ như phương thức nhập liệu, tài nguyên, tác nhân mật khẩu, v.v. Nếu bạn sử dụng .xinitrc, bạn sẽ phải thực hiện tất cả những việc này một cách thủ công. Một lần nữa, tôi đang mô tả Debian ở đây, các biến thể Unix khác có thể thiết lập mọi thứ khác đi. Việc sử dụng ~/.xinitrcđể chỉ định những gì được thực thi khi bạn chạy startxhoặc xinitlà phổ quát.

Cho dù bạn sử dụng ~/.xinitrchay ~/.xsession, tập tin này (thường là tập lệnh shell, nhưng nó không phải là nếu bạn thực sự muốn sử dụng một cái gì đó khác) phải chuẩn bị mọi thứ cần chuẩn bị (ví dụ: cài đặt bàn phím, tài nguyên, applet chưa bắt đầu bởi trình quản lý cửa sổ, v.v.), và cuối cùng, chạy chương trình quản lý phiên. Khi kịch bản kết thúc, phiên kết thúc. Thông thường, bạn sẽ sử dụng execở cuối tập lệnh, để thay thế tập lệnh bởi trình quản lý phiên hoặc trình quản lý cửa sổ.

Hệ thống của bạn có lẽ có /usr/bin/startlxdetrình quản lý phiên mặc định trên toàn hệ thống. Trên Debian và các dẫn xuất, bạn có thể kiểm tra các trình quản lý phiên có sẵn với

update-alternatives --list x-session-manager

hoặc có được một mô tả dài dòng hơn cho biết cái nào hiện tại với

update-alternatives --display x-session-manager

Nếu LXDE không phải là mặc định toàn hệ thống và bạn muốn đặt nó làm mặc định cho tài khoản của mình, bạn có thể sử dụng ~/.xsessiontệp sau :

#!/bin/sh
exec startlxde

Trên một số biến thể Unix, điều đó sẽ chỉ chạy cho đăng nhập đồ họa, không phải cho startx, vì vậy bạn cũng cần tạo một bản sao giống hệt ~/.xinitrc. (Hoặc không giống nhau: trong ~/.xsession, bạn có thể muốn làm những việc khác, vì đó là tệp đầu tiên được thực thi trong phiên đồ họa; ví dụ: bạn có thể đặt . ~/.profilegần đầu, để đặt một số biến môi trường.)

Nếu bạn muốn thử các môi trường khác một lần, bạn có thể chỉ định một chương trình khác để chạy trên dòng lệnh của startxchính nó. Các startxchương trình có một điều không minh bạch: bạn cần phải sử dụng toàn bộ đường dẫn đến chương trình.

startx /usr/bin/startkde

Các startxlệnh cũng cho phép bạn chỉ định đối số để truyền đến máy chủ. Ví dụ: nếu bạn muốn chạy nhiều phiên GUI cùng một lúc, bạn có thể chuyển một số hiển thị khác nhau mỗi lần. Vượt qua các đối số máy chủ sau khi --trên dòng lệnh của startx.

startx /usr/bin/startkde -- :1

Tôi đang sử dụng Debian 9. Máy của tôi khởi động đến tty1. Từ đăng nhập của tôi chạy startxbắt đầu phiên Xfce4 mặc định. Từ người dùng của vợ tôi đăng nhập vào tty1 hoặc tty2. startxLệnh của cô được đặt để chạy Cinnamon (được chỉ định trong ~/.xsession). Đối với máy chủ X thứ hai, tôi không phải chỉ định $DISPLAYnhư đã lưu ý trong phần cuối của câu trả lời của bạn. Mặc dù điều đó chắc chắn làm việc. Nó tự động làm cho nó thứ hai, $DISPLAYvv Thiết lập là tuyệt vời mặc dù. Không có đăng nhập và ra khỏi một phiên đồ họa, chỉ có một phím tắt để chuyển đổi hồ sơ người dùng. Cảm ơn câu trả lời hữu ích này!
jbrock

10

Không: startxlà cấu hình. Theo trang hướng dẫn :

Để xác định ứng dụng khách sẽ chạy, startxtrước tiên hãy tìm một tệp được gọi .xinitrctrong thư mục chính của người dùng. Nếu không tìm thấy, nó sử dụng tệp xinitrctrong xinitthư mục thư viện.

startxkhông phải là cách duy nhất để bắt đầu X (như bạn thấy từ đó startlxde). Các startxtrang hướng dẫn giúp một lần nữa:

Kịch bản startx là giao diện người dùng (1) cung cấp giao diện người dùng đẹp hơn một chút để chạy một phiên duy nhất của Hệ thống X Window. Nó thường được chạy mà không có đối số.

Mặt khác, nếu bạn muốn chọn GUI (LXDE, KDE, v.v.), thì xdmvà các giao diện tương tự như kdm, gdmhoặc LightDMđược sử dụng để chọn các loại máy tính để bàn khác nhau. Trên Debian tôi thường sử dụng kdm, vì điều đó cho phép các loại máy tính để bàn khác nhau. Các gói đóng gói gdmkhông cho phép hầu hết các loại máy tính để bàn, làm cho nó không phù hợp với nhu cầu của tôi.

xdmsử dụng một khác nhau tập hợp các kịch bản để bắt đầu, ví dụ, bạn ~/.xsessionkịch bản cùng với kịch bản của hệ thống. Những cái nhìn giống nhau có thể bỏ qua điều này, và sử dụng các tập lệnh riêng của họ. Nhưng nó là một điểm khởi đầu.


Vì vậy, một nơi nào đó trong các tập tin conf nó được viết để chạy LXDE chẳng hạn?
Tò mòGuy

.xinitrclà một kịch bản, làm cho nó có thể cấu hình. Nó có thể chạy LXDE trực tiếp nếu được mã hóa để làm điều này.
Thomas Dickey

1
startlxdekhông phải là tiền đề cho xinit, nó là trình khởi chạy cho trình quản lý phiên LXDE. Nó không phải là một thay thế cho startx, đó là một cái gì đó bạn có thể thực hiện ~/.xinitrc.
Gilles 'SO- ngừng trở nên xấu xa'

Sau đó, nó cần một số tài liệu. Nghiêm túc mà nói, một câu trả lời tốt chỉ ra OP theo hướng tài liệu thay vì cố gắng viết lại nó (trừ khi người ta có một số lời bình luận để làm tài liệu, để hiểu rõ hơn về tài liệu này).
Thomas Dickey
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.