Một khách hàng X có nhất thiết cần một trình quản lý cửa sổ để làm việc không?


32

Một khách hàng X có nhất thiết cần một trình quản lý cửa sổ để làm việc không? Máy khách X có thể chỉ hoạt động với máy chủ X không?

Nếu máy khách X không có cửa sổ , liệu nó có thể hoạt động được không cần trình quản lý cửa sổ?

Nếu một máy khách X có thể làm việc mà không có trình quản lý cửa sổ, thì máy khách X có nhất thiết không có cửa sổ không?

Cảm ơn.


4
Lần đầu tiên tôi bắt gặp X, đó là cách đây khá lâu, thực tế là bạn không cần một người quản lý cửa sổ đã được thảo luận trong hầu hết các tài liệu giới thiệu. Điều đó dường như không phải là trường hợp ngày nay, nhưng tôi cho rằng ai đó có thể nghĩ điều này rõ ràng hoặc một ví dụ về sự lười biếng.
dmckee

11
@Tim: Dường như bạn đã ở đây đủ lâu để bạn biết rằng một downvote không có ý định truyền đạt "hận thù", "xấu xa", "độc ác", "phân biệt đối xử" hoặc bất cứ điều gì tương tự. Một downvote chỉ đơn giản là một hệ thống xếp hạng nội dung và một số nội dung ít có giá trị hơn các nội dung khác. (Đối với hồ sơ, tôi không downvote câu hỏi này: Tôi nghĩ câu hỏi này là rất tốt.) Xem thêm: Chúng ta có thể làm cho nó rõ ràng hơn cho người dùng mới mà downvotes trên trang web chính không phải là xúc phạm và trong thực tế có thể giúp họ tự giúp mình ? trên Meta Stack Overflow.
Daniel Pryden

5
@Tim Một số câu hỏi bị bỏ qua của bạn có vẻ không hữu ích đối với tôi. Giao diện người dùng (văn bản thay thế của nút) khuyến khích người dùng tải xuống các câu hỏi "không hữu ích". Hận thù không phải là một thành phần cần thiết. Thêm một gợi ý / khẳng định nhỏ rằng một câu hỏi có thể có khả năng được sử dụng trong một số tình huống (ngay cả khi rất cận biên / không thể thực hiện được) sẽ chủ yếu ngăn chặn phản ứng giật đầu gối đó. Các câu hỏi của bạn mà tôi thấy rất giống nhau ở chỗ chúng không có bất kỳ gợi ý / khẳng định nào như vậy.
kubanchot

3
Tim, người điều hành kim cương có quyền truy cập vào một số công cụ phát hiện biểu quyết mẫu. Đánh dấu chúng và yêu cầu họ nhìn vào nó. / mod trên vật lý.se
dmckee

1
Các phần của câu hỏi của bạn có vẻ phi ngôn ngữ. Người phạm tội tồi tệ nhất dường như là "liệu nó có thể làm việc cần một người quản lý cửa sổ không?".
hkBst

Câu trả lời:


26

Không. Các ứng dụng được viết tốt không cần trình quản lý cửa sổ.

Nhưng một số ứng dụng bị hỏng "hiện đại" sẽ không hoạt động tốt nếu không có trình quản lý cửa sổ (ví dụ: firefox và các đề xuất trên thanh địa chỉ sẽ không bị rớt xuống [1]).

Nhiều ứng dụng phụ khác không chỉ giả định một trình quản lý cửa sổ, mà để thêm sự xúc phạm đến thương tích, một cú nhấp chuột để tập trung vào trình quản lý cửa sổ. Chẳng hạn, trước đây mọi ứng dụng java sẽ chỉ đơn giản là đánh cắp sự tập trung vào khởi động.

Nếu bạn muốn kiểm tra, hãy cài đặt Xephyr(một máy chủ X11 "lồng nhau"), chạy nó với Xephyr :1, sau đó khởi động ứng dụng của bạn DISPLAY=:1trong môi trường của chúng.

[1] "thanh tuyệt vời" của Firefox sẽ không mở ngăn đề xuất của nó khi được nhập hoặc nhấp vào nút lịch sử trừ khi có trình quản lý cửa sổ đang chạy. Menu tự động ẩn cũng không hoạt động.


Có một lỗi mở trong firefox cho vấn đề bạn đề cập? Tôi nghĩ bản chất nguồn mở của firefox sẽ sẵn sàng sửa lỗi cho vấn đề đó.
t3dodson

4
@ t3dodson Bạn có thể thử gửi một cái, nhưng rất nghi ngờ rằng mọi người sẽ quan tâm để xem xét một bản vá sửa lỗi đó. Chạy firefox không thực sự được hỗ trợ nếu không có trình quản lý cửa sổ, trình quản lý phiên và gần đây, máy chủ pulseaudio đang chạy. Tất nhiên, bạn có thể rẽ nhánh nó, nhưng phải duy trì một ngã ba firefox không phải là điều tôi mong muốn ở kẻ thù tồi tệ nhất của mình ;-)
mosvy 28/12/18

Imo bất kỳ câu trả lời về chủ đề này là không đầy đủ mà không đề cập đến Xephyr. +1
Rui F Ribeiro

38

Không, bạn không cần phải chạy trình quản lý cửa sổ để cho phép máy khách X hoạt động. Một số hệ thống cung cấp tùy chọn chỉ chạy thiết bị đầu cuối khi khởi động và từ đó bạn có thể bắt đầu các chương trình bổ sung, bao gồm cả trình quản lý cửa sổ. Một số thiết lập kiosk chỉ muốn một ứng dụng chạy không cần trình quản lý cửa sổ. Một số triển khai X cho các cửa sổ microsoft tránh trình quản lý cửa sổ X bằng cách để HĐH quản lý các cửa sổ.

Nếu không có trình quản lý cửa sổ, thông thường bạn cần chỉ định hình học cho các chương trình để bạn không đặt mọi thứ ở góc trên cùng bên trái.

Trong X, trình quản lý cửa sổ chỉ là một máy khách X khác. Điều này là bất thường vào thời điểm đó, nhưng làm cho nó dễ dàng có các trình quản lý cửa sổ khác nhau.

Một cách khác để xem xét câu hỏi là quan sát rằng bạn có thể thay đổi trình quản lý cửa sổ một cách nhanh chóng, do đó, có một khoảng thời gian giữa lần dừng đầu tiên và lần thứ hai kiểm soát, nhưng vì tất cả các ứng dụng của bạn không gặp sự cố, chúng phải có khả năng để làm việc mà không có.


2
Gợi ý: có một công cụ gọi là xwit thực sự hữu ích khi thử nghiệm với cấu hình không có wm.
rackandboneman

7

Một trình quản lý cửa sổ là một thuận tiện cho người dùng.

Ngày xưa, Wbad ngày xưa, tôi thường có một ~/.Xclientstập tin đọc:

#!/bin/sh

HOST=`uname -n | sed 's/\..*$//'`

xv -root -rmode 5 $HOME/misc/millennium/theme/Wallpaper.gif -quit &

xterm -geometry 80x24+0+85 \#52x71-104+0 -n $HOST -T $HOST &
xterm -geometry 80x24+510+429 \#52x71-52+0  -n $HOST -T $HOST &
xclock -digital -update 1 -geometry +1059+982 &
xscreensaver -nosplash &
exec /usr/local/lib/X11/fvwm/fvwm

Tập tin này sẽ được chạy khi tôi bắt đầu X với startx. Khi đoạn script này kết thúc thì máy chủ X sẽ tắt.

Lưu ý dòng cuối cùng : exec .../fvwm. Đây là dòng bắt đầu trình quản lý cửa sổ của tôi (fvwm). Tất cả các ứng dụng trước đó ( xv, xterm, xclock, xscreensaver) đang chạy trước khi người quản lý cửa sổ bắt đầu. Bởi vì cuộc gọi đến fvwmlà dòng cuối cùng và không được đặt trong nền, điều đó có nghĩa là khi fvwmkết thúc thì X sẽ đóng lại.

Khởi động X thậm chí có mặc định "rơi lại" ... nếu không có tệp cấu hình thì khởi động X với một lần xtermchạy. Kết thúc xtermsẽ kết thúc phiên X.


Lợi thế của việc không làm nền fvwm là gì?
Alex Hajnal

1
Chúng ta cần tập lệnh để không chấm dứt bởi vì nếu nó xảy ra thì máy chủ X chấm dứt; bằng cách không tạo nền fvwm(và chạy nó bằng cách exec), chúng tôi đảm bảo vẫn còn một quy trình giữ cho máy chủ X không tắt. Bằng cách làm cho quá trình cuối cùng đó fvwmcho phép một mục menu "thoát" hoạt động như mong đợi.
Stephen Harris

Hiểu rồi. Đã được một thời gian kể từ khi tôi làm nhiều cấp độ thấp với X. Phải nói rằng mặc dù fvwm 2 là một trong hai trình quản lý cửa sổ yêu thích của tôi (cái còn lại là kwin 3).
Alex Hajnal

Trong trường hợp của tôi, fvwm-1.24rlà người quản lý cửa sổ yêu thích của tôi :-)
Stephen Harris

Tôi nghe bạn nói về điều đó. Tôi dường như nhớ lại rằng v2 có thể tùy chỉnh nhiều hơn v1 (với tất cả các tùy chọn cấu hình trong một tệp văn bản duy nhất và có thể tải lại khi đang di chuyển?). Khá nhẹ cân, đặc biệt là theo tiêu chuẩn ngày nay. Lần cuối cùng tôi sử dụng nó hàng ngày trong IIRC thời kỳ P-II.
Alex Hajnal

6

Để thêm vào các câu trả lời khác, tôi đã phát triển và phát hành một ứng dụng nguồn mở hoạt động mà không cần trình quản lý cửa sổ (có nghĩa là bạn có thể bắt đầu trực tiếp từ xinitrc). Có một số bước bổ sung mà ứng dụng nên làm trong trường hợp này bên cạnh việc quản lý hình học và thứ tự Z của các hộp thoại của nó, nhưng điều này hoàn toàn có thể quản lý được.


1

Có rất nhiều câu trả lời chi tiết tốt ở đây. Dưới đây là câu trả lời rõ ràng đơn giản.

Một khách hàng X có nhất thiết cần một trình quản lý cửa sổ để làm việc không?

Không: Nhưng không có nếu bạn sẽ đấu tranh để quản lý các cửa sổ của mình (di chuyển, định cỡ lại, hạ thấp, nâng cao, v.v.). Có những công cụ khác có thể làm điều này, nếu bạn cần nó.

Máy khách X có thể chỉ hoạt động với máy chủ X không?

Vâng

Nếu máy khách X không có cửa sổ, liệu nó có thể hoạt động được không cần trình quản lý cửa sổ?

Nếu nó không có cửa sổ, thì không nên có mặt trái của việc không có trình quản lý cửa sổ.

Nếu một máy khách X có thể làm việc mà không có trình quản lý cửa sổ, thì máy khách X có nhất thiết không có cửa sổ không?

Không: nó có thể có cửa sổ.

Thử đi.

DISPLAY=:21
vncserver -localhost -geometry 1920x1080  -SecurityTypes None $DISPLAY &
ssvnc $DISPLAY
xterm &

sau đó trong xtermloại mới fvwm.

Bạn có thể cần phải cài đặt vncserver, ssvncfvwm, đầu tiên.


1

Có, máy khách X chỉ có thể hoạt động với máy chủ X. Ví dụ, tôi cung cấp cho các máy ảo của mình bảng điều khiển ảo của riêng chúng trên máy chủ, như thế này.

# Press CTRL-ALT-F5, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system CentOS -- :4

# Press CTRL-ALT-F6, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system Windows -- :5

Lệnh "startx" khởi động máy chủ Xorg X trên màn hình: 4 và: 5 chỉ với trình xem tài năng như một máy khách.

"CentOS" và "Windows" là tên tôi đã đặt cho các máy ảo của mình khi tôi cài đặt chúng. Công tắc -k cho trình xem virt làm cho nó toàn màn hình với các điều khiển tối thiểu, vì vậy mỗi máy ảo dường như sở hữu máy cho đến khi tôi nhấn CTRL-ALT-Fn để chuyển sang bảng điều khiển ảo khác.

Tất nhiên, CentOS đang chạy trình quản lý hiển thị và trình quản lý cửa sổ bên trong máy ảo, nhưng điều đó không có kết nối với máy chủ X đang chạy trên máy chủ.

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.