Làm cách nào để phân chia màn hình rộng theo chiều dọc thành hai không gian làm việc ảo trên Ubuntu / Gnome?


23

Máy tính xách tay mới của tôi có màn hình lớn 16: 9 và tôi cảm thấy khó sử dụng nó trong suốt 95% thời gian tôi không xem phim HD trên đó.

Tôi muốn thiết lập nó như một loại màn hình kép ảo bằng cách chia màn hình vật lý thành hai không gian làm việc. Tôi biết tôi có thể sắp xếp các cửa sổ của mình một cách thủ công, nhưng tôi muốn có thể tối đa hóa một cửa sổ và nó chỉ tiêu thụ một nửa màn hình và có các hộp thoại bật lên tập trung vào nửa màn hình của nó.

Có một số loại cắm có sẵn để làm điều này?


Nếu bạn đang sử dụng compiz, bạn có thể tìm thấy plugin lưới đơn giản hơn, xem câu trả lời của tôi dưới đây.
kynan

Câu trả lời:


24

bạn có thể sử dụng ' fakexinerama ' để đạt được những gì bạn muốn:

 Fake Xinerama is a replacement libXinerama library that instead 
 of querying the XServer reads ~/.fakexinerama and provides fake 
 information about Xinerama screens based on this file. It can be 
 used to fake a Xinerama setup even on computers with just one monitor
 or to fake Xinerama setup other than one specified in the XServer 
 configuration (e.g. making one screen smaller when using two same 
 screens). It's probably only useful for developers.

1
Cảm ơn, điều này hoạt động hoàn hảo, và tốt hơn tôi mong đợi thực sự. Các bến cảng, thanh bảng điều khiển và cửa sổ nổi của tôi trải dài trên màn hình vật lý, nhưng các ứng dụng "toàn màn hình" tối đa hóa (bao gồm cả các ứng dụng khách vmware của tôi) lịch sự giữ một nửa màn hình của chúng. Tôi khá mới với linux, vì vậy việc hack các cài đặt hiển thị của tôi cảm thấy hơi rủi ro, nhưng thực sự không có nhiều việc phải làm. Tôi đang ghi lại các bước chính xác của mình cho những người nghiệp dư linux khác (như bản thân tôi) trong một câu trả lời bổ sung dưới đây.
David

2
Liên kết bị hỏng. Bất kỳ ý tưởng nơi tôi có thể tìm thấy phần mềm này?
Tối đa

17

Để mở rộng mẹo của akira ở trên về việc sử dụng "xinerama giả" của Lubos Lunak, đây chính xác là cách tôi làm cho nó hoạt động với tôi:

  1. Tôi đã tải xuống tệp Xinerama.c này từ trang Fake Xinerama .
  2. Tôi đã mở một thiết bị đầu cuối và điều hướng đến thư mục thư mục nơi tôi đã lưu Xinerama.c.
  3. Tôi đã thi hành:
    gcc -O2 -Wall Xinerama.c -fPIC -o libXinerama.so.1.0.0 -shared
  4. Tôi đã mở nautilus (trình thám hiểm tệp gnome) bằng root, bằng cách gõ Alt-F2 và sau đó:
    gksu nautilus
  5. Tôi đã điều hướng đến / usr / lib, tìm thấy libXinerama.so.1.0.0 và tạo một bản sao lưu của nó.
  6. Tôi đã sao chép libXinerama.so.1.0.0 từ thư mục tải xuống của mình vào thư mục / usr / lib, ghi đè lên bản sao ở đó (mà tôi vừa sao lưu ở bước 5, vì vậy tôi có thể hoàn tác điều này sau nếu cần.) điều rõ ràng là rất hữu ích khi lưu ý rằng kích thước tệp của phiên bản "giả" lớn hơn (12,6 kb) so với phiên bản "thực" mà tôi đang thay thế (8,6 kb).
  7. Tôi đã tạo một tệp văn bản mới có tên .fakexinerama trong thư mục / home / dave của tôi và đặt tệp này vào đó: (dựa trên kích thước màn hình vật lý 1440x900 của tôi)
    2
    0 0 720 900
    720 0 720 900

Fake Xinerama cho phép bạn xác định bất kỳ loại màn hình ảo nào được thiết lập mà bạn muốn, nhưng tôi chỉ muốn một màn hình chia dọc. Để đạt được điều đó trên màn hình của bạn, kích thước pixel X theo Y, nhìn vào ví dụ tệp của tôi, chỉ cần thay thế 720 bằng X / 2 và thay thế 900 bằng Y.

Đó là nó. Tôi đăng xuất và đăng nhập trở lại, và đã chạy.

Một lần nữa xin cảm ơn Lubos Lunak vì đã tạo ra bản mod này và akira đã chỉ cho tôi về nó.


Điều này giúp tôi rất nhiều với màn hình ba đầu. Xinerama khá chậm với ba máy tính để bàn, vì vậy sử dụng điều này cho phép tôi đưa hai người trong số họ vào song sinh mà không gây khó chịu tối đa cho cả hai vấn đề và có lần thứ ba là một màn hình X riêng biệt tham gia vào song song với Xinerama. Cảm ơn đã dành thời gian để viết ra các bước David!
Kyle Brandt

7

Hiện tại có một dự án mới có tên FakeXRandR hoạt động thực sự thẳng tiến.

Đây là một công cụ để lừa một máy chủ X11 để tin rằng có nhiều màn hình hơn thực tế. Nó móc vào libXRandR và libXinerama và thay thế một số cấu hình màn hình có thể định cấu hình bằng nhiều màn hình ảo. Một công cụ đi kèm với gói này có thể được sử dụng để định cấu hình cách chia màn hình.


Tôi đã sử dụng fakexrandr thành công một lần trong một thời gian. Thật không may, màn hình của tôi bị xáo trộn khi tôi có xorg.conf (tôi cần độ phân giải tùy chỉnh cho màn hình ultrawide của mình). Tôi buộc phải xóa cấu hình fakexrandr, khởi động lại X và cấu hình lại fakexrandr.
JAponte

3

Điều này có thể được thực hiện trong XRandR 1.5 mà không cần phần mềm bổ sung. Mặc dù fakexinerama và FakeXRandR đều không hoạt động với tôi trên Xubfox, nhưng giải pháp này cuối cùng đã chia màn hình thành hai.

Để phân chia màn hình, hãy làm như sau:

  1. Nhập xrandrvào thiết bị đầu cuối để kiểm tra tên đầu ra và độ phân giải hiện tại của màn hình bạn muốn tách.
    Trên hệ thống của tôi, kết quả là:

    Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
    HDMI1 disconnected (normal left inverted right x axis y axis)
    HDMI2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
       1920x1080     60.00*+  50.00    59.94
       1920x1080i    60.00    50.00    59.94  
       1600x900      60.00  
       1280x1024     75.02    60.02  
       1152x864      75.00  
       1280x720      60.00    50.00    59.94  
       1024x768      75.08    60.00  
       800x600       75.00    60.32  
       720x576       50.00  
       720x576i      50.00
       720x480       60.00    59.94
       720x480i      60.00    59.94
       640x480       75.00    60.00    59.94
       720x400       70.08
    VGA1 disconnected (normal left inverted right x axis y axis)
    VIRTUAL1 disconnected (normal left inverted right x axis y axis)
    

    Chúng ta có thể thấy rằng màn hình của tôi được kết nối với HDMI2 và độ phân giải được đặt thành 1920x1080.

  2. Thêm 2 màn hình ảo với xrandr --setmonitorlệnh đảm bảo chúng trùng với màn hình vật lý của bạn và được đặt cạnh nhau. Cú pháp của lệnh là (không có dấu ngoặc kép):

    xrandr --setmonitor "monitor_name" "width_px"/"width_mm"x"height_px"/"height_mm"+"x_offset_px"+"y_offset_px" "output_name" 
    

    Đối với hệ thống của tôi, đó là:

    xrandr --setmonitor HDMI2~1 960/254x1080/286+0+0 HDMI2
    xrandr --setmonitor HDMI2~2 960/255x1080/286+960+0 none
    
  3. Mặc dù ở trên đã cấu hình các màn hình ảo trên hệ thống của tôi nhưng những thay đổi chưa được áp dụng cho đến khi tôi thực hiện (có vẻ như làm mới xrandr):

    xrandr --fb 1921x1080
    xrandr --fb 1920x1080
    

Để duy trì các thay đổi sau khi khởi động lại, bạn sẽ muốn thực hiện các lệnh này khi đăng nhập. Bạn có thể làm như vậy bằng cách nối thêm các lệnh ở cuối ~/.profiletệp của bạn .


1
Thật tốt khi nó tồn tại ngay trong xrandr, thật tuyệt. Nhưng nó chỉ làm cho phía bên trái màn hình của tôi có thể sử dụng được, phần bên phải không hiển thị gì cả. Và tôi không nhận được lỗi hiển thị. - Ồ, có vẻ như Awesome WM không hỗ trợ màn hình, nhưng chỉ sử dụng đầu ra. Vì vậy, bạn cần hỗ trợ trong WM là tốt.
nert

Ồ, đừng bận tâm, tuyệt vời có hỗ trợ cho màn hình của xrandr, nó không hoạt động với tôi. Nhưng tuyệt vời có thể tự làm điều này: awesomewm.org/apidoc/groupes/screen.html#screen:fake_add
nert

1

Tôi đã bắt gặp một bài viết trên omgubfox cung cấp một cách khá dễ dàng để bắt chước chức năng Windows Snap trong Ubuntu / Gnome bằng bảng điều khiển Compiz. Windows Snap này để lại cho tôi một máy tính để bàn màn hình rộng, nhưng bản thân các cửa sổ có thể dễ dàng được neo để lấp đầy một nửa màn hình. (Đó không chính xác là những gì tôi đang tìm kiếm ban đầu, nhưng vẫn khá tiện dụng.)


1

Tôi đã sử dụng một giải pháp cho câu hỏi chính xác này trong một vài năm bằng cách sử dụng bộ ba. Thiết bị đó sẽ hợp nhất tối đa 3 màn hình và báo cáo một màn hình lớn cho X.

Đây là cách chia màn hình lớn đó thành các không gian làm việc ảo trong xorg.conf:

Section "Device"
    # ... your other settings above
    Option         "TwinViewXineramaInfoOverride" "1280x1024+0+0, 1280x1024+1280+1, 1280x1024+2560+0"
EndSection

Và nếu bạn đang sử dụng trình điều khiển nvidia mới nhất, những trình điều khiển đó cung cấp tiện ích mở rộng xinerama của riêng họ mà dường như bỏ qua cài đặt ở trên, do đó bạn phải thêm phần sau vào phần thiết bị đó:

Option         "NoTwinViewXineramaInfo" "true"

0

Tôi khá chắc chắn rằng bạn có thể làm điều này bằng cách điều chỉnh tệp cấu hình X của mình , nhưng tôi sẽ không chỉ vì tôi có thể phá vỡ cấu hình hiển thị của mình. Nếu bạn thử điều này, hãy cẩn thận, sao lưu cấu hình của bạn và đảm bảo rằng bạn có thông tin đăng nhập thay thế mà bạn có thể sử dụng trong trường hợp bạn phải sửa màn hình của mình.

Bạn có thể nhận được nhiều sự hài lòng hơn từ trình quản lý cửa sổ ốp lát như xmonad hoặc thậm chí chạy compiz để kiểm soát cách cửa sổ mở, đóng và xếp.


0

Hoạt động tốt cho tôi:

Tôi đã sử dụng cách sau cho hai màn hình (1280x1024 + 2048x1152):

3
0 0 1280 1024
1280 0 1024 1152
2304 0 1024 1152

0

Nếu bạn đang sử dụng compiz, bạn có thể thấy plugin lưới của nó là một giải pháp dễ dàng và linh hoạt hơn. Bạn có thể cấu hình nó để xếp một cửa sổ ở nửa bên trái / phải của màn hình khi kéo nó vào cạnh.

Đó là tính năng Chụp cửa sổ được mô tả trong bài viết mà David liên kết đến. Ngoài ra, bạn có thể định cấu hình các phím tắt và làm cho một cửa sổ chiếm nửa trên / dưới hoặc một phần tư màn hình.

Xinerama gây ra một cú đánh hiệu suất đáng chú ý (vì nó sao chép các hành động X trên tất cả các màn hình Xinerama) và không hoạt động tốt với các trình quản lý cửa sổ hỗn hợp.

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.