Các lựa chọn thay thế cho xmove, xpra


11

Một chút thông tin cơ bản: Tôi đang xử lý một phần mềm là một phần của hệ thống lớn hơn. Hầu hết các phần của hệ thống có một quá trình nền chạy liên tục và GUI có thể mở khi cần phần chức năng đó. Phần mềm đặc biệt gây rắc rối cho tôi thay vào đó được viết dưới dạng một chương trình duy nhất chứa cả GUI và xử lý nền. Điều này có nghĩa là GUI phải luôn chạy, nếu không thì quá trình xử lý liên quan không thể diễn ra. Điều này là không mong muốn (vì một số lý do).

Như một giải pháp thay thế, tôi đã xem xét các giả danh X khác nhau sẽ cho phép tôi hiển thị / ẩn cửa sổ GUI khi thích hợp. Ba cái tôi đã xem cụ thể là xmove , ximovexpra

xmove thực sự cũ (chưa được phát triển từ tháng 11 năm 1997) và không hỗ trợ đồ họa 24 bit, không phải là khởi đầu.

Tôi cũng đã tìm thấy một thứ gọi là ximove . Tác giả, Mark C. Ballew đã bắt đầu nó với mục đích cải thiện xmove (XIMove≡Xmove được cải thiện). Nhưng, nhìn vào trang web của anh ấy, có vẻ như bản cập nhật trạng thái cuối cùng là 8/16/04 và nó liên kết đến http://forum.imumove.com/ không còn tồn tại nữa.

xpra có vẻ như là lựa chọn hứa hẹn nhất, nhưng nó không hoạt động như mong đợi. Tôi nhận được rất nhiều lỗi phàn nàn về "Cairo", đây là điều không được đề cập trong bất kỳ tệp xpra nào thảo luận về sự phụ thuộc ... dù sao chương trình cũng hoạt động cho các ứng dụng nhỏ, như trình duyệt web. Khi tôi cố gắng sử dụng nó cho chương trình vấn đề của mình, tôi gặp nhiều lỗi hơn (lỗi cairo và các lỗi khác). và cả xpra và ứng dụng dường như bị sập.

Tôi đang tìm cách cài đặt sạch phiên bản xpra mới nhất, nhưng tôi tự hỏi liệu có ai trong số các bạn có cái nhìn sâu sắc nào về một số ứng dụng pseudoserver X khác mà tôi nên thử không.


1
Bạn chỉ cần ẩn các cửa sổ hoặc bạn cần có thể chạy chương trình của bạn mà không cần X? Bạn đã thử Xvfb?

Tôi không cần chạy nó mà không có X, mặc dù điều đó sẽ hoạt động. Tôi chỉ cần một số cách để chạy nó mà không hiển thị để khi người dùng nhấp vào nút trong GUI trình bao bọc, nó sẽ xuất hiện để khởi chạy ứng dụng này, nhưng thực sự nó sẽ hiển thị. Tôi đã không thử Xcfb, nhưng tôi đã xem xét ngắn gọn khi thấy câu trả lời của bạn và tôi không chắc đó là thứ tôi đang tìm kiếm ... nó không giống như sau khi bắt đầu chương trình mà không có X, rằng tôi tôi có thể gắn nó vào Xserver thật khi tôi muốn. Bạn có bất kỳ kinh nghiệm với nó để nói với tôi rằng đó không phải là trường hợp?

2
Xvfb là máy chủ X framebuffer ảo. Bạn có thể bắt đầu với Xvfb :1và khởi chạy chương trình của bạn với DISPLAY=:1 yourprogram. Bằng cách này, bạn sẽ không thấy bất kỳ giao diện người dùng nào trong phiên X của mình và bạn vẫn có thể tương tác với giao diện người dùng chương trình của mình bằng cách khởi động máy chủ VNC được gắn vào phiên Xvfb. Một cách khác để ẩn UI có thể là -geometrytùy chọn dòng lệnh thường được phân tích cú pháp bởi các chương trình dựa trên xlib.

Vấn đề là nếu tôi khởi động chương trình theo cách đó, không có cách nào để làm cho nó hiển thị mà không giết nó khi khởi động lại chương trình. Mặt khác, giả danh, cho phép bạn giả mạo XServer khi bạn không cần nó, nhưng sau đó chuyển tiếp lên màn hình thực khi bạn muốn. Tôi có thể làm điều đó với Xcfb không? Có vẻ như tôi không thể (nhưng tôi không phải là chuyên gia). Nó có vẻ như là một công cụ tuyệt vời nếu tôi luôn muốn nó ẩn đi, nhưng không phải nếu tôi cần phải nhìn thấy nó đôi khi.

3
Lưu ý: có nhiều phiên bản xpranổi xung quanh; những cái được cung cấp trong hầu hết các kho distro đã lỗi thời. Hãy thử phiên bản mới hơn từ xpra.org
Piskvor rời khỏi tòa nhà

Câu trả lời:


1

Những gì Piskvor nói trong các ý kiến. Hãy thử một phiên bản mới hơn của xpra. Chơi với cài đặt của nó, vô hiệu hóa những thứ bạn không cần như chuyển tiếp âm thanh. Nó có thể được thực hiện để làm việc tốt.


0

Bạn có thể thử sử dụng máy chủ VNC như Xvnc , TightVNC hoặc TigerVNC .

Bạn cũng có thể sử dụng VirtualBox (ít nhất là phiên bản 5), cài đặt hệ điều hành và chương trình của bạn trong một máy ảo. Nếu bạn khởi động VM ở chế độ "có thể tháo rời", bạn có thể đóng tất cả các cửa sổ VirtualBox và giữ cho VM chạy. Sau đó, bạn có thể khởi động lại GUI VirtualBox và gắn lại vào VM.

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.