Không gian làm việc riêng cho màn hình thứ hai


16

Tôi muốn đạt được một hành vi như thế này: Khi tôi sử dụng màn hình máy tính xách tay của tôi, không gian làm việc đầu tiên của tôi được sử dụng. Khi tôi cắm vào màn hình thứ hai (qua HDMI), không gian làm việc thứ hai được sử dụng và tất cả các cửa sổ mới mở trên màn hình thứ hai này sẽ rơi vào không gian thứ hai, ngoại trừ tôi chuyển không gian làm việc trên màn hình thứ hai sang không gian làm việc khác.

Khi tôi rút phích cắm màn hình thứ hai, tất cả các cửa sổ sẽ ở trong không gian làm việc mà chúng được tạo và tôi có thể chuyển đổi không gian làm việc trên máy tính xách tay của mình để xem chúng.

Là hành vi này đã có thể?


Tôi đã quản lý để kích hoạt các không gian làm việc với Giao diện -> Hành vi và không gian làm việc dọc bị vô hiệu hóa với Trình quản lý cài đặt CompizConfig. Ngoài ra còn có các Plugin Expo và Viewport Switcher dường như có thể làm những gì tôi muốn nhưng tôi sợ thay đổi cài đặt mà không có kiến ​​thức ở đó.
velop

Câu hỏi của bạn hơi khó hiểu. Nếu bạn đang yêu cầu hiển thị dưới dạng hai không gian làm việc riêng biệt, thì câu trả lời là không, không thể. Nếu bạn đang yêu cầu tự động thay đổi số lượng không gian làm việc khi kết nối màn hình thứ hai, thì điều đó là có thể. Vui lòng làm rõ / đơn giản hóa những gì bạn đang hỏi
Sergiy Kolodyazhnyy

2
Tôi tìm thấy tùy chọn Compiz -> Desktop Wall -> Viewport Switching -> Multimonitor bahvior -> Switch riêng. Nhưng dường như điều này không hoạt động.
Velop

@velop, bạn có thể chỉnh sửa những bình luận này thành câu hỏi không?
SDsolar

Câu trả lời:


1

Là hành vi này đã có thể?

Mọi thứ đều có thể trong linux. Bạn sẽ cần một số kiến ​​thức cơ bản về Xserver , đôi khi và một hệ thống để kiểm tra, vì bạn đang làm phiền với X của mình và bạn chắc chắn cần trình duyệt đang chạy nếu bạn cần trợ giúp :-)

Theo tôi có ba giải pháp khả thi:

  • Thiết lập đa người dùng sử dụng Xinerama . Giải pháp đơn giản nhất tôi có thể nghĩ đến là thêm một màn hình ảo thứ ba vào cấu hình của bạn và chỉ cần di chuyển các cửa sổ ở đó bằng xdotool. Có một số nhược điểm của giải pháp này nhưng nó sẽ không đòi hỏi nỗ lực phải di chuyển các cửa sổ giữa các Xservers khác nhau mà nói chung là không thể.

  • Vì không thể di chuyển các cửa sổ giữa các Xservers khác nhau , chúng tôi cần một loại proxy như xmove hoặc Xpra để làm điều này cho chúng tôi. Tôi nghĩ rằng các cửa sổ sau đó sống trong một phiên Xfvb riêng biệt để ẩn các cửa sổ. Bạn có thể đính kèm và tách ra phiên.

  • Bất kể bạn đang sử dụng phương pháp nào, bạn cần một sự kiện khi màn hình được rút ra. Sự kiện sẽ được kích hoạt khi màn hình bị ngắt kết nối và cả khi được kết nối lại. Bạn có thể trình bày kịch bản để theo dõi sự kiện.

Tôi thích giải pháp sử dụng Xpra vì nhiều lý do. Tôi chỉ có thể cung cấp cho bạn một số gợi ý về cách làm điều đó. Các giải pháp không đầy đủ nhưng sẽ giúp bạn bắt đầu.

Giải pháp Xinerama

Thiết lập

Thiết lập Xinerama phải được mở rộng để có cấu hình tĩnh: Xem https://help.ubfox.com/community/XineramaHowTo

xem thêm màn hình thứ ba giảXdummy

bị ảnh hưởng

Chúng tôi có thể sử dụng xdotool để tìm kiếm các cửa sổ. Sau đó chúng ta có thể kiểm tra vị trí của họ và di chuyển chúng. Tôi giả sử hai màn hình với 1920x1080cấu hình. Sau đây sẽ di chuyển tất cả các cửa sổ từ bên phải sang màn hình xinerama bên trái.

while read xwindowid; do
    eval $(xdotool getwindowgeometry --shell "$xwindowid")
    if (( X > 1920 && X <= (1920 * 2))); then
        xdotool windowmove --relative $WINDOW -1920 y
    fi
done <<< "$(xdotool search --screen 0 '.*')"

Bây giờ bạn có thể di chuyển tất cả các cửa sổ từ màn hình máy tính xách tay của bạn (screen0) sang màn hình thứ ba (ảo) nếu màn hình được gắn vào. Đồng thời bạn có thể di chuyển bất kỳ cửa sổ nào được lưu trữ trên màn hình thứ ba sang màn hình đầu tiên.

Giải pháp XPRA

Để sử dụng Xpra để di chuyển các cửa sổ, tất cả các cửa sổ phải được Xpra quản lý trước. Bạn phải khởi động toàn bộ máy tính để bàn bằng Xpra khi khởi động hệ thống. Hai lần một là máy tính để bàn chính của bạn nơi bạn làm việc và thứ hai chủ yếu là máy tính để bàn ảo.

xpra start-desktop :99
xpra start-desktop :1 --exit-with-children −−attach

Bây giờ bạn có thể có Windows cho màn hình bị ngắt kết nối đang chạy trong một phiên xpra riêng và gắn / tách khỏi màn hình khi màn hình chuyển.

xpra attach :99
xpra detatch :99

Ngoài ra còn có một phần mở rộng vỏ gnome liên tục có thể hữu ích nếu bạn muốn tự di chuyển một cửa sổ từ ẩn :99sang bình thường :0giữa các màn hình xpra đã bắt đầu.

Sự kiện

  • Bạn có thể xem để ngắt kết nối / kết nối lại của một màn hình cụ thể

  • có thể xem kích thước thay đổi của xinerama của bạn bằng xwininfo để độc lập với màn hình chưa được cắm nếu bạn muốn tức là mở rộng thiết lập của mình thành 3 màn hình và rút phích cắm thiết bị tùy ý. Lưu ý rằng điều này sẽ chỉ hoạt động cho giải pháp xpra.

    xwininfo -display :0 -root | grep -e "-geometry"

    -geometry 5760x2160+0+0

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.