Làm cách nào để căn chỉnh các cạnh dưới của hai màn hình với xrandr?


20

Tôi có hai kết quả đầu ra mà tôi muốn sử dụng trên máy tính xách tay của mình:

  • LVDS1 - 1366 × 768
  • HDMI1 - 1920 × 1080

Tôi thiết lập màn hình của mình như vậy:

xrandr --output LVDS1 --auto --output HDMI1 --auto --right-of LVDS1

Đây là tất cả tốt và tốt, nhưng máy tính xách tay của tôi nằm thấp hơn đáng kể so với màn hình bên ngoài của tôi, và với các cạnh trên của màn hình được căn chỉnh, nó làm cho việc nhảy từ màn hình này sang màn hình khác khá không trực quan. Có cách nào để tôi có thể căn chỉnh các cạnh dưới thay thế? Tôi nghĩ rằng tôi có thể sử dụng --poscờ để làm điều này, nhưng tôi đã thử và không thấy bất kỳ sự khác biệt nào (có lẽ tôi không biết sử dụng nó đúng cách).

Câu trả lời:


36
 xrandr --output LVDS1 --auto --pos 0x312 --output HDMI1 --auto --pos 1366x0

Về cơ bản, --pose chỉ định vị trí của góc trên bên trái của màn hình trong không gian màn hình ảo. Màn hình ảo là một màn hình bao trùm toàn bộ màn hình vật lý của bạn. Đây là một cách rất chung để chỉ định vị trí màn hình.

Bạn muốn cấu hình này:

(virtual screen coordinates)
     0       1366                 1366+1920

   0           A-----------------------
               |                      |
               |                      |
               |                      |
  x? B---------|         HDMI         |
     |         |                      |
     |  LVDS   |       1920x1080      |
     |1366x768 |                      |
1080 ----------------------------------

Và bạn cần tọa độ của A và B để sử dụng trong --postùy chọn. xđược giải dễ dàng như 1080 - 768 = 312, vì vậy A ở (1366,0) và B ở (0,312).

Do đó, các tùy chọn --pose thích hợp là - đặt 1366x0 cho HDMI và - đặt 0,312 cho LVDS. Bạn không phải chỉ định kích thước màn hình ảo (nữa), nó được thay đổi kích thước tự động.

Lưu ý rằng --poscó thể bị lạm dụng, ví dụ để tạo một lỗ hổng giữa hai màn hình của bạn hoặc tạo sự chồng chéo. Hầu hết (tất cả?) WM sẽ không thể xử lý việc đó thông qua.

EDIT: oh, bạn muốn cách khác, đã sửa nó.


Heh, đã tìm ra điều này ngay trước khi bạn đăng. Bạn có thể giải thích cách cờ --pose hoạt động không?
elynnaie

Cảm ơn, điều này rất có ý nghĩa! Tôi nghĩ rằng bạn muốn thay thế 1600 bằng 1080 trong ví dụ của bạn.
elynnaie

@denaje: Đã sửa.
BatchyX

2
Có cách nào để làm điều đó trong xrandr mà không sử dụng các giá trị ma thuật không? Tôi muốn có một tập lệnh hoạt động bất kể độ phân giải của màn hình tôi cắm vào. Nếu không tôi đoán tôi có thể trích xuất các giá trị từ đầu ra của xrandr, nhưng điều đó nghe có vẻ hơi tẻ nhạt
Khaur

5

Ngoài câu trả lời tuyệt vời của @ BatchyX , một tùy chọn thay thế thuận tiện hơn của IMB và IMO có thể sử dụng ARandR (viết tắt của "Another XRandR GUI"):

ARandR được thiết kế để cung cấp giao diện người dùng trực quan đơn giản cho XRandR. Vị trí màn hình tương đối được hiển thị bằng đồ họa và có thể được thay đổi theo cách kéo và thả.

Bạn có thể cần phải cài đặt nó trước, nhưng nó có sẵn trong hầu hết các kho của distro . Đây là cách tôi tìm trên LXDE, để thiết lập với một màn hình ngoài được kết nối qua VGA, ở trên và màn hình gốc (cỡ netbook) bên dưới nó:

Ảnh chụp màn hình ARandR


3

Nếu bạn đang tìm kiếm một giải pháp dựa trên GUI kéo và thả, tôi có thể đề xuất ARandR .

Nó cho phép bạn đặt các cài đặt XRandR quan trọng nhất, ví dụ như vị trí và độ phân giải màn hình, sau đó có thể được lưu dưới dạng tập lệnh shell gọi xrandrvới các tham số tương ứng.


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.