Mengubah resolusi layar / geometri vncserver tanpa randr di Linux

9

Saya ingin mengubah resolusi / geometri sesi VNC saya secara dinamis tanpa mempengaruhi program yang berjalan di dalamnya.

Saya merujuk: Mengubah resolusi sesi VNC di linux . Saya tidak memiliki izin root untuk memperbarui versi vncserver yang lebih baru, jadi perintah berikut tidak berfungsi sampai sekarang:

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

Untuk saat ini, setiap kali saya ingin mengubah ukuran layar dari satu monitor ke yang lain, saya mematikan sesi dan memulai kembali dengan -geometryopsi yang dimodifikasi . Karena ini saya harus kehilangan program di dalamnya.

Apakah ada cara untuk meretas file yang menyimpan geometri dan mengubah nilai untuk mengubah resolusi? Saya tidak dapat menemukan file seperti itu. Di folder rumah saya, saya melihat file di bawah ini:

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

Isi xstartupfile tidak membantu:

#!/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 &

... di sini xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &garis tetap konstan untuk resolusi apa pun.

[Catatan: Saya melihat bahwa xrandritu diinstal di mesin linux.]

iammilind
sumber

Jawaban:

4

Solusi "Retas": jalankan vncserver tanpa geometri yang ditentukan

vncserver :1

Lalu saya akan terhubung ke vnc, dan di Fedora, saya hanya akan masuk ke Pengaturan> Menampilkan> Tidak Diketahui 0 "dan mengubah resolusi dengan cepat seperti ini. Ambil beberapa klik daripada mengetik (DX), tetapi mudah.

aeolus
sumber
1
Pilihan ini menghasilkan "tidak dapat menentukan versi xrandr" dan tidak lebih: - / (Debian 8) tetapi terlihat menarik.
m3nda
1

Setel opsi geometri dalam file konfigurasi systemd (atau skrip startup yang berlaku) ~ contoh ini berfungsi dengan Fedora 28 (dengan asumsi deskriptor file selinux sudah diperbaiki).

Ganti USERNAME dengan nama pengguna yang sebenarnya:

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
Chad Geary
sumber
1

Jawaban di atas untuk Fedora tidak bekerja untuk saya (RedHat Enterprise), saya dapat mencapai apa yang Anda butuhkan dalam langkah-langkah ini:

1) masuk ke sesi VNC Anda (sudah ada)

2) buka terminal dan ketik: xrandr -s 1920x1080 (atau geometri / tampilan lain yang didukung *)

untuk melihat tampilan / resolusi yang didukung randr, ketik:

xrandr (tanpa argumen)

Mudah, dan tidak ada yang mewah!

Momchil Milev
sumber
0

$HOME/.vnc/xstartupadalah file yang Anda cari dan ya, Anda dapat mengatur geometri di sana. Ini harus menyesuaikan pada koneksi ulang tanpa mengganggu sesi Anda (tidak 100% yakin tapi cukup yakin).

brad
sumber
1
Akan lebih bermanfaat untuk menunjukkan daripada memberi tahu.
scottlittle