Thay đổi độ phân giải màn hình / hình học của vncserver mà không cần randr trong Linux


9

Tôi muốn thay đổi độ phân giải / hình học của phiên VNC của mình một cách linh hoạt mà không ảnh hưởng đến các chương trình chạy bên trong nó.

Tôi đã giới thiệu: Thay đổi độ phân giải của phiên VNC trong linux . Tôi không có quyền root để cập nhật phiên bản vncserver mới hơn, vì vậy lệnh sau không hoạt động như bây giờ:

vncserver -geometry 1280x1024 -randr 1280x1024,1280x800

Hiện tại, bất cứ khi nào tôi muốn thay đổi kích thước màn hình từ màn hình này sang màn hình khác, tôi sẽ hủy phiên và khởi động lại với -geometrytùy chọn đã sửa đổi . Do đó, tôi phải mất các chương trình bên trong nó.

Có cách nào để hack tệp lưu trữ hình học và thay đổi các giá trị để thay đổi độ phân giải không? Tôi không thể tìm thấy tập tin như vậy. Trong thư mục nhà của tôi, tôi thấy các tập tin dưới đây:

mgandhi@starbase:~/.vnc$ ll
total 12
-rwxr-xr-x 1 mgandhi bc  334 Jun 25 10:32 xstartup
-rw------- 1 mgandhi bc    8 Jun 25 10:32 passwd
-rw-r--r-- 1 mgandhi bc    6 Jun 25 11:08 starbase.radisys.com:23.pid
-rw-r--r-- 1 mgandhi bc 1664 Jun 25 11:08 starbase.radisys.com:23.log

Nội dung của xstartuptệp không giúp được:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

... ở đây xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &dòng không đổi cho bất kỳ độ phân giải.

[Lưu ý: Tôi thấy rằng nó xrandrđược cài đặt trong máy linux.]

Câu trả lời:


4

Giải pháp "Hack": khởi động vncserver mà không có bất kỳ hình dạng cụ thể nào

vncserver :1

Sau đó, tôi sẽ kết nối với vnc và trong Fedora, tôi sẽ chỉ vào Cài đặt> Hiển thị> Không xác định 0 "và thay đổi độ phân giải nhanh như thế này. Hãy nhấp vào thay vì gõ (DX), nhưng thật dễ dàng.


1
Tùy chọn này dẫn đến "không thể xác định phiên bản xrandr" và không có gì nữa: - / (Debian 8) nhưng trông thú vị.
m3nda

1

Đặt tùy chọn hình học trong tệp cấu hình systemd (hoặc tập lệnh khởi động có thể áp dụng khác) ~ ví dụ này hoạt động với Fedora 28 (giả sử mô tả tệp selinux là cố định).

Thay thế USERNAME bằng tên người dùng thực tế:

cat /etc/systemd/system/vncserver@\:1.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=USERNAME

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/USERNAME/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

1

Câu trả lời ở trên cho Fedora không phù hợp với tôi (RedHat Enterprise), tôi đã có thể thực hiện những gì bạn cần trong các bước sau:

1) đăng nhập vào phiên VNC của bạn (hiện tại)

2) mở một thiết bị đầu cuối và gõ: xrandr -s 1920x1080 (hoặc hình học / màn hình được hỗ trợ khác *)

để xem randr hỗ trợ hiển thị / độ phân giải, gõ:

xrandr (không có đối số)

Dễ dàng, và không có gì lạ mắt!


0

$HOME/.vnc/xstartuplà tập tin bạn đang tìm kiếm và vâng, bạn có thể đặt hình học ở đó. Nó sẽ điều chỉnh khi kết nối lại mà không làm hỏng phiên của bạn (không chắc chắn 100% nhưng khá chắc chắn).


1
Nó sẽ hữu ích hơn để hiển thị hơn để nói.
scottlittle
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.