การเปลี่ยนความละเอียดของเซสชัน VNC ใน linux [ปิด]


153

ฉันใช้ VNC เพื่อเชื่อมต่อกับเวิร์กสเตชัน Linux ในที่ทำงาน ที่ทำงานฉันมีจอ 20 "ที่ทำงานที่ 1600x1200 ในขณะที่อยู่ที่บ้านฉันใช้แล็ปท็อปที่มีความละเอียด 1440x900 ถ้าฉันตั้งค่า vncserver ให้ทำงานที่ 1440x900 ฉันพลาดพื้นที่บนจอภาพเป็นจำนวนมาก ตั้งให้ทำงานที่ 1600x1200 มันไม่พอดีกับหน้าจอแล็ปท็อปและฉันต้องเลื่อนมันตลอดเวลา

มีวิธีที่ดีในการปรับขนาดเซสชัน VNC ทันทีหรือไม่

เซิร์ฟเวอร์ VNC ของฉันคือ RealVNC E4.x (ฉันจำรุ่นไม่แน่นอน) ที่ทำงานบน SuSE64


ฉันอยากจะพูดถึงบางสิ่งที่ฉันเจอเมื่อไม่นานมานี้ แต่ฉันยังไม่สามารถทดสอบได้ มีโปรแกรมใหม่ที่เรียกว่า FreeNX ที่ได้กำหนดไว้เพื่อแทนที่สำหรับ VNC นี่คือลิงค์: freenx.berlios.de
andho

@andho - ดูเหมือนว่าลิงก์นั้นจะใช้งานไม่ได้
ArtOfWarfare

@ArtOfWarfare หวังว่านี้จะช่วยให้help.ubuntu.com/community/FreeNX ตอนนี้น่าจะเสถียรแล้ว ฉันคิดว่าฉันจะลองเร็ว ๆ นี้ตามเวลาที่กำหนด
andho

คำตอบ:


159

เซิร์ฟเวอร์ Real VNC 4.4 มีการรองรับ Xrandr ซึ่งอนุญาตให้ปรับขนาด VNC เริ่มต้นเซิร์ฟเวอร์ด้วย:

vncserver -geometry 1600x1200 -randr 1600x1200,1440x900,1024x768

จากนั้นปรับขนาดด้วย:

xrandr -s 1600x1200
xrandr -s 1440x900
xrandr -s 1024x768

1
ขอบคุณ Nathan แม้แต่ผู้ใช้ realvnc ก็ดูเหมือนจะไม่เน้นคุณลักษณะ xrandr ... ดูเพิ่มเติมที่ฟังก์ชันทุบตีของฉันด้านล่างเพื่อให้สามารถขี่จักรยานผ่านมติ randr
พฤศจิกายน

7
คุณอาจพบว่าการใส่ตัวเลือกทั้งหมดเหล่านี้ลงใน.vnc/configไฟล์นั้นสะดวก ตัวอย่างเช่นบรรทัดแรกของการกำหนดค่าของฉันคือ:-randr 800x600,1024x768,1280x800,1280x960,1280x1024,1680x1050,1920x1080,3360x1050,1024x700,1200x740,1600x1000,3200x1000
bfroehle

@ นาธานฉันพยายามใช้โซลูชันที่คุณให้ แต่ไม่ประสบความสำเร็จ คุณกรุณาลองตอบคำถามของฉันได้ไหม?
Geek

3
ฉันสงสัยว่ามันใช้งานได้tightvncserverหรือไม่
Dimitry K

4
@DimitryK ฉันมี tightvncserver และไม่ทำงาน ฉันลบมันและติดตั้ง VNC จริง ฉันแนะนำมัน ความละเอียดแนวนอนทั้งหมด: 320x240,480x320,482x320,560x360,576x360,640x480,640x482,648x,,x48,7xx80,7xx80,7x10,7xx80x1080x1080x1080x128080x1080x1080x1080x1080x1080121080 ที่กำลังจะมาทั้งหมดแนวนอนทั้งหมด 1600x900,1600x1024,1600x1200,1680x1050,1920x1080,1920x1200,2048x1024,2048x1152,2048x1536,2560x1080,2560x1440,2560x1600,2560x2048,3072x1536,3072x1728,3840x2160,4096x2048,4096x2304,7680x4320,8192x4096,8192x4608
barwnikk

68

พบว่า vnc4server (4.1.1) ที่จัดส่งมาพร้อมกับ Ubuntu (10.04) ได้รับการติดตั้งเพื่อรองรับการเปลี่ยนความละเอียดได้ทันทีผ่าน xrandr น่าเสียดายที่คุณลักษณะนี้หายากเพราะไม่มีเอกสาร ดังนั้นนี่คือ ...

เริ่มต้นเซิร์ฟเวอร์ด้วยอินสแตนซ์ 'รูปทรงเรขาคณิต' หลายอันเช่น:

vnc4server -geometry 1280x1024 -geometry 800x600

จากเทอร์มินัลใน vncviewer (ด้วย: เปิดใช้งาน 'อนุญาตให้ปรับขนาดเดสก์ท็อป dymanic') ใช้ xrandr เพื่อดูโหมดที่มี:

xrandr

เพื่อเปลี่ยน resulution ตัวอย่างเช่นใช้:

xrandr -s 800x600

แค่นั้นแหละ.


ฉันพยายามใช้วิธีการของคุณเช่นเดียวกับแนวทางที่นาธานแนะนำ แต่ไม่ประสบความสำเร็จ คุณสามารถมองเห็นสิ่งที่หายไปที่นี่ได้ไหม?
Geek

ทำงานได้อย่างสมบูรณ์แบบ ขอบคุณ!
Roney Michael

27

ฉันทำงานTigerVNCบนเซิร์ฟเวอร์ลินุกซ์ของเราซึ่งมีพื้นฐานRandRสนับสนุน ฉันเพิ่งเริ่ม vncserver โดยไม่มีตัวเลือก -randr หรือหลาย -geometry

เมื่อฉันรัน xrandr ในเทอร์มินัลจะแสดงความละเอียดหน้าจอทั้งหมดที่มี:

bash> xrandr
 SZ:    Pixels          Physical       Refresh
 0   1920 x 1200   ( 271mm x 203mm )   60
 1   1920 x 1080   ( 271mm x 203mm )   60
 2   1600 x 1200   ( 271mm x 203mm )   60
 3   1680 x 1050   ( 271mm x 203mm )   60
 4   1400 x 1050   ( 271mm x 203mm )   60
 5   1360 x 768    ( 271mm x 203mm )   60
 6   1280 x 1024   ( 271mm x 203mm )   60
 7   1280 x 960    ( 271mm x 203mm )   60
 8   1280 x 800    ( 271mm x 203mm )   60
 9   1280 x 720    ( 271mm x 203mm )   60
*10  1024 x 768    ( 271mm x 203mm )  *60
 11   800 x 600    ( 271mm x 203mm )   60
 12   640 x 480    ( 271mm x 203mm )   60
Current rotation - normal
Current reflection - none
Rotations possible - normal
Reflections possible - none

จากนั้นฉันสามารถเปลี่ยนไปใช้ความละเอียดอื่นได้อย่างง่ายดาย (fe เปลี่ยนเป็น 1360x768):

bash> xrandr -s 5

ฉันใช้ตัวดู TightVnc เป็นไคลเอนต์และมันจะปรับให้เข้ากับความละเอียดใหม่โดยอัตโนมัติ


เพื่อให้คนไม่ไปในการไล่ล่าห่านป่าคุณสามารถโปรดรายการทั้งรุ่น TigerVnc และการกระจายเซิร์ฟเวอร์ลินุกซ์ + รุ่นของคุณ? ขอบคุณ
nhed

ฉันสามารถยืนยันได้ว่ามันทำงานได้ดีกับ TiverVnc 1.1.0 (เซิร์ฟเวอร์ Linux, ไคลเอนต์ Linux)
Benedikt Waldvogel

1
ฉันใช้ vncviewer และทุกครั้งที่ฉันพยายามเปลี่ยน resoultion ที่หน้าต่างปิด
AWE

ขอถามหน่อยได้ไหมว่ารุ่น xrandr นี้คืออะไร Mine: โปรแกรม xrandr เวอร์ชั่น 1.3.5 เซิร์ฟเวอร์รายงาน RandR เวอร์ชั่น 1.3 ดูเหมือนแตกต่างอย่างสิ้นเชิงเช่นไม่มีคอลัมน์แรก
Wakan Tanka

เพียงแค่เพิ่มว่ามันทำงานร่วมกับ Real VNC ในฐานะลูกค้าได้เช่นกัน ผ่านการทดสอบสำหรับรุ่น 6.0.3
Vivek VK

25

ฉันคิดว่าดีที่สุดของคุณคือการเรียกใช้เซิร์ฟเวอร์ VNC ด้วยรูปทรงเรขาคณิตที่แตกต่างกันในพอร์ตที่แตกต่างกัน ฉันจะลองจากหน้าคน

$vncserver :0 -geometry 1600x1200
$vncserver :1 -geometry 1440x900

จากนั้นคุณสามารถเชื่อมต่อจากที่ทำงานไปที่หนึ่งพอร์ตและจากที่บ้านไปที่อื่น

แก้ไข: จากนั้นใช้ xmove เพื่อย้ายหน้าต่างระหว่างสองเซิร์ฟเวอร์ x


3
@Pat ปัญหาเกี่ยวกับการแก้ปัญหาของคุณคือฉันไม่สามารถย้ายหน้าต่างจากเซสชัน VNC หนึ่งไปยังอีกเซสชันหนึ่งได้อย่างง่ายดาย หากฉันอยู่ระหว่างการดีบักเมื่อฉันต้องจากไปฉันต้องการที่จะรับที่ที่ฉันออกไป (อาจเป็นเพราะหน้าต่างขยับไปมาเล็กน้อยเนื่องจากการปรับขนาด) หากฉันมีสองเซสชันแยกกันฉันจะไม่สามารถดำเนินการต่อเหมือนเดิมเพราะฉันจะต้องปิดหน้าต่างจากเซสชันหนึ่งแล้วเปิดใหม่อีกครั้ง ในทางกลับกันหากมีวิธีย้ายหน้าต่างที่มีอยู่จาก X-server หนึ่งไปยังอีกหน้าต่างหนึ่งนั่นอาจช่วยแก้ปัญหาได้
นาธาน Fellman

1
xmove ไม่ได้อยู่ในที่เก็บ Ubuntu ปัจจุบัน xpra คือซึ่งจะทำสิ่งเดียวกัน (ทำหน้าที่เป็น X proxy)
Sam Hartsfield

20

เมื่อคำถามนี้ปรากฏขึ้นครั้งแรกบน Google ฉันคิดว่าฉันจะแบ่งปันวิธีแก้ปัญหาโดยใช้ TigerVNC ซึ่งเป็นค่าเริ่มต้นในวันนี้

xrandrช่วยให้การเลือกโหมดการแสดงผล (aka มติ) แต่เนื่องจาก modelines ถูกเขียนยาก modeline เพิ่มเติมใด ๆ เช่น "2560x1600" หรือ "1600x900" จะต้องมีการเพิ่มเข้าไปในรหัส ฉันคิดว่านักพัฒนาซอฟต์แวร์ที่เขียนโค้ดนั้นฉลาดกว่ามากและรายการฮาร์ดโค้ดเป็นเพียงตัวอย่างของค่า มันนำไปสู่ข้อสรุปว่าต้องมีวิธีในการเพิ่มโมเดลที่กำหนดเองและman xrandrยืนยันมัน

ด้วยพื้นหลังนั้นหากเป้าหมายคือการแบ่งปันเซสชัน VNC ระหว่างคอมพิวเตอร์สองเครื่องที่มีความละเอียดสูงกว่าและสมมติว่าเซิร์ฟเวอร์ VNC เป็นคอมพิวเตอร์ที่มีความละเอียด "1600x900":

  1. เริ่มเซสชัน VNC ด้วยรูปทรงเรขาคณิตที่ตรงกับจอแสดงผลทางกายภาพ:

    $ vncserver -geometry 1600x900 :1
    
  2. ในคอมพิวเตอร์ "2560x1600" ให้เปิดตัว VNC Viewer (ฉันชอบ Remmina) และเชื่อมต่อกับเซสชัน VNC ระยะไกล:

    host:5901
    
  3. เมื่อภายในเซสชัน VNC เริ่มต้นหน้าต่างเทอร์มินัล

  4. ยืนยันว่ารูปทรงเรขาคณิตใหม่พร้อมใช้งานในเซสชัน VNC:

    $ xrandr
    Screen 0: minimum 32 x 32, current 1600 x 900, maximum 32768 x 32768
    VNC-0 connected 1600x900+0+0 0mm x 0mm
       1600x900      60.00 +
       1920x1200     60.00  
       1920x1080     60.00  
       1600x1200     60.00  
       1680x1050     60.00  
       1400x1050     60.00  
       1360x768      60.00  
       1280x1024     60.00  
       1280x960      60.00  
       1280x800      60.00  
       1280x720      60.00  
       1024x768      60.00  
       800x600       60.00  
       640x480       60.00  
    

    และคุณจะสังเกตเห็นว่าหน้าจอมีขนาดค่อนข้างเล็ก

  5. แสดงรายการ modeline (ดูบทความ xrandr ใน ArchLinux wiki) สำหรับการแก้ปัญหา "2560x1600":

    $ cvt 2560 1600
    # 2560x1600 59.99 Hz (CVT 4.10MA) hsync: 99.46 kHz; pclk: 348.50 MHz
    Modeline "2560x1600_60.00"  348.50  2560 2760 3032 3504  1600 1603 1609 1658 -hsync +vsync
    

    หรือถ้าจอภาพเก่าได้รับการกำหนดเวลา GTF:

    $ gtf 2560 1600 60
    # 2560x1600 @ 60.00 Hz (GTF) hsync: 99.36 kHz; pclk: 348.16 MHz
    Modeline "2560x1600_60.00"  348.16  2560 2752 3032 3504  1600 1601 1604 1656 -HSync +Vsync
    
  6. เพิ่ม modeline ใหม่ให้กับเซสชัน VNC ปัจจุบัน:

    $ xrandr --newmode "2560x1600_60.00"  348.16  2560 2752 3032 3504  1600 1601 1604 1656 -HSync +Vsync
    
  7. ในxrandrเอาต์พุตด้านบนมองหาชื่อที่แสดงในบรรทัดที่สอง:

    VNC-0 connected 1600x900+0+0 0mm x 0mm
    
  8. ผูกโมเดลใหม่เข้ากับมอนิเตอร์เสมือน VNC ปัจจุบัน:

    $ xrandr --addmode VNC-0 "2560x1600_60.00"
    
  9. ใช้มัน:

    $ xrandr -s "2560x1600_60.00"
    

ใช้เพื่อสร้างเวิร์กสเปซที่ใหญ่ขึ้นด้วย tigervnc และ mwm มันทำงานเพื่อเพิ่มขนาดหน้าจอ แต่เวิร์กสเปซถูก จำกัด ไว้ที่ขนาดเริ่มต้นที่ใช้โดย vnc
user2019716

มันเกิดจาก mwm พื้นที่ทั้งหมดถูกใช้ประโยชน์เมื่อ mwm ถูกรีสตาร์ท
user2019716

ยอดเยี่ยมมากขอบคุณมากสำหรับสูตรมันช่วยได้จริงๆ
Adrian Rosoga

สิ่งนี้ช่วยฉันประหยัดเวลาได้มากขอบคุณ!
เบ็นเดวิส

17

น่าสนใจไม่มีใครตอบเรื่องนี้ ใน TigerVNC เมื่อคุณเข้าสู่เซสชัน ไปที่System > Preference > Displayจากแถบเมนูด้านบน (ฉันใช้ Cent OS เป็นเซิร์ฟเวอร์ระยะไกลของฉัน) คลิกที่ความละเอียดแบบเลื่อนลงมีการตั้งค่าต่างๆรวมถึง 1080p เลือกรายการที่คุณชอบ มันจะเปลี่ยนได้ทันที

ป้อนคำอธิบายรูปภาพที่นี่

ตรวจสอบให้แน่ใจว่าคุณใช้การตั้งค่าใหม่เมื่อมีข้อความแจ้ง มิฉะนั้นจะเปลี่ยนกลับเป็นการตั้งค่าก่อนหน้าเช่นเดียวกับใน Windows


1
นี่เป็นการตั้งค่าของ TigerVNC ของ CentOS หรือโปรแกรมจัดการหน้าต่างหรือไม่?
Nathan Fellman

นี่เป็นการตั้งค่าใน CentOS คุณสามารถเข้าถึงได้จาก 'TigerVNC Viewer' เมื่อคุณเข้าสู่ระบบ
Hammad Khan

2
ชีวิตของฉันปลอดภัยนี้
Yu Jiaao

9

พวกนี้ง่ายจริงๆ

เข้าสู่ระบบผ่านทางsshpi ของคุณ

ปฏิบัติ

vncserver -geometry 1200x1600

สิ่งนี้จะสร้างเซสชันใหม่ :1

เชื่อมต่อกับลูกค้า vnc ของคุณที่ ipaddress:1

แค่นั้นแหละ.


7
นั่นเป็นคำตอบที่ผิดเพราะจะไม่เปลี่ยนความละเอียดของเซสชันที่มีอยู่ แต่เพียงสร้างใหม่
Nathan Fellman

6

การเพิ่มคำตอบของ Nathan (ยอมรับแล้ว):

ฉันต้องการวนรายการความละเอียด แต่ไม่เห็นอะไรเลย:

function vncNextRes()
{
   xrandr -s $(($(xrandr | grep '^*'|sed 's@^\*\([0-9]*\).*$@\1@')+1)) > /dev/null 2>&1 || \
   xrandr -s 0
}

ได้รับดัชนีปัจจุบันก้าวไปอีกอันหนึ่งแล้ววนกลับเป็น 0 โดยมีข้อผิดพลาด (เช่นจบ)


แก้ไข

แก้ไขเพื่อให้ตรงกับรุ่นที่ใหม่กว่าของ xrandr ("*" อยู่ที่ท้ายบรรทัดและไม่มีตัวระบุความละเอียดนำหน้า)

function vncNextRes()
{
   xrandr -s $(($(xrandr 2>/dev/null | grep -n '\* *$'| sed 's@:.*@@')-2))  || \
   xrandr -s 0
}

3

วิธีการแก้ปัญหาโดย @omiday ทำงานสำหรับฉันใน Xvnc TigerVNC 1.1.0 ดังนั้นฉันข้นมันเข้าไปทุบตีเดียวฟังก์ชั่นvncsize XY ใช้มันเช่นนี้vncsize 1400 1000 ใช้งานได้กับชื่อเอาต์พุต VNC ใด ๆ "default" หรือ "VNC-0"

function vncsize {
    local x=$1 y=$2
    local mode
    if mode=$(cvt "$x" "$y" 2>/dev/null)
    then
        if [[ $mode =~ "Modeline (.*)$" ]]
        then
            local newMode=${BASH_REMATCH[1]//\"/}
            local modeName=${newMode%% *}
            local newSize=( ${modeName//[\"x_]/ } )
            local screen=$(xrandr -q|grep connected|cut -d' ' -f1)
            xrandr --newmode $newMode
            xrandr --addmode "$sscreen" "$modeName"
            xrandr --size "${newSize[0]}x${newSize[1]}" &&
                return 0
        else
            echo "Unable to parse modeline for ($x $y) from $mode"
            return 2
        fi
    else
        echo "\`$x $y' is not a valid X Y pair"
        return 1
    fi
}

2

บางทีคำตอบที่โง่ที่สุดที่ฉันโพสต์ แต่ไปที่นี่: ใช้ TigerVNC client / viewer และตรวจสอบ'Resize remote session to local window'ภายใต้แท็บ Screen ของตัวเลือก

ฉันไม่ทราบว่าไคลเอนต์ $% # @ TigerVNC บอก vncserver ระยะไกลหรือ xrandr หรือ Xvnc หรือ gnome หรือ ... แต่มันปรับขนาดเมื่อฉันเปลี่ยนหน้าต่างลูกค้า TigerVNC

การตั้งค่าของฉัน:

  • เซิร์ฟเวอร์ Tiger VNC ทำงานบน CentOS 6 โฮสต์เดสก์ท็อป GNOME (ทำงานร่วมกับ RHEL 6.6 ด้วย)
  • Windows บางเวอร์ชันมี Tiger VNC Client

ด้วยการเปลี่ยนแปลงความละเอียดนี้เพื่อให้พอดีกับขนาดของหน้าต่างไคลเอ็นต์ไม่ว่ามันจะเป็นอะไรและมันไม่ใช่zoomingการเปลี่ยนแปลงความละเอียดจริง (ฉันสามารถดูความละเอียดใหม่ในเอาต์พุต xrandr)

ฉันพยายามทั้งหมดที่ฉันสามารถทำได้เพื่อเพิ่มความละเอียดใหม่ให้กับ xrandr แต่เพื่อประโยชน์ใด ๆ มักจะจบลงด้วย'xrandr: Failed to get size of gamma for output default'ข้อผิดพลาด

รุ่นที่ใช้งานได้สำหรับฉันตอนนี้ (แม้ว่าฉันไม่เคยมีปัญหากับรุ่นใด ๆ ในอดีตที่ผ่านมาฉันเพิ่งติดตั้งการใช้yum install gnome-* tigervnc-serverงานล่าสุดและทำงานได้ดี)

OS: RHEL 6.6 (Santiago)
VNC Server:
Name        : tigervnc-server
Arch        : x86_64
Version     : 1.1.0
Release     : 16.el6

# May be this is relevant..
$ xrandr --version
xrandr program version       1.4.0
Server reports RandR version 1.4
$ 

# I start the server using vncserver -geometry 800x600
# Xvnc is started by vncserver with following args:
/usr/bin/Xvnc :1 -desktop plabb13.sgdcelab.sabre.com:1 (sg219898) -auth /login/sg219898/.Xauthority 
-geometry 800x600 -rfbwait 30000 -rfbauth /login/sg219898/.vnc/passwd -rfbport 5901 -fp catalogue:/e
tc/X11/fontpath.d -pn


# I'm running GNOME (installed using sudo yum install gnome-*)
Name        : gnome-desktop
Arch        : x86_64
Version     : 2.28.2
Release     : 11.el6

Name        : gnome-session
Arch        : x86_64
Version     : 2.28.0
Release     : 22.el6

Connect using Tiger 32-bit VNC Client v1.3.1 on Windows 7.

คุณใช้ TigerVNC เวอร์ชันใดสำหรับไคลเอ็นต์ / เซิร์ฟเวอร์ของคุณ ฉันลองวันนี้และมันไม่ได้ปรับขนาดโดยอัตโนมัติสำหรับฉัน ฉันใช้ RHEL 6.2 ที่รัน Xvnc TigerVNC 1.1.0 สำหรับเซิร์ฟเวอร์และไคลเอนต์ vncviewer-1.4.3.exe
cdwilson

@cdwilson หวังว่าคุณจะลองกับไคลเอนต์ในโหมดเต็มหน้าจอ รุ่นที่เพิ่มเข้ามา HTH
Kashyap

ปรากฎว่า 1.1.0 ไม่ได้เล่นได้ดีกับสิ่งที่พวกเขากำลังทำงานบนเครื่องทำงานของเรา การเรียกใช้ 1.4.3 ล่าสุดจาก$HOMEไดเรกทอรีของฉันทำงานตามที่คาดไว้github.com/TigerVNC/tigervnc/issues/155
cdwilson

ยืนยัน: openSuse 15.1, GDM, KDE Plasma, TigerVNC ไคลเอ็นต์ 1.9.0 ความละเอียดของเดสก์ท็อประยะไกลของฉันตามขนาดของหน้าต่างไคลเอนต์ใด ๆ ความละเอียด ad-hoc บ้าอัตราส่วนใด ๆ ใน GDM หรือ KDE ใช้งานได้อย่างมีเสน่ห์ไม่ต้องติดตั้งอะไรบนไคลเอนต์หรือเซิร์ฟเวอร์
Espinosa

1

ฉันไม่แน่ใจเกี่ยวกับ linux แต่ใน windows tightvnc จะตรวจจับและปรับให้เข้ากับการเปลี่ยนแปลงความละเอียดบนเซิร์ฟเวอร์

ดังนั้นคุณควรจะสามารถ VNC เข้าไปในเวิร์กสเตชันทำสิ่งที่เทียบเท่ากับการคลิกขวาบนเดสก์ท็อปคุณสมบัติตั้งค่าความละเอียดเป็นอะไรและมีหน้าต่าง vnc ลูกค้าของคุณปรับขนาดตัวเองตาม


1

ในทางกลับกันหากมีวิธีย้ายหน้าต่างที่มีอยู่จาก X-server หนึ่งไปยังอีกหน้าต่างหนึ่งนั่นอาจช่วยแก้ปัญหาได้

ฉันคิดว่าคุณสามารถใช้xmoveเพื่อย้ายหน้าต่างระหว่างสองเซิร์ฟเวอร์ x แยกกัน ดังนั้นหากใช้งานได้อย่างน้อยที่สุดก็ควรให้วิธีการทำสิ่งที่คุณต้องการแม้ว่าจะไม่ง่ายเหมือนการเปลี่ยนความละเอียด


คุณรู้หรือไม่ถ้า xmove ใช้ชื่ออื่นใน SuSE Linux
นาธาน Fellman

@NathanFellman คุณดู xpra แล้วหรือยัง มันเป็นโปรแกรมที่ผ่านมามากขึ้น แต่เครื่องมือที่คล้ายกันen.wikipedia.org/wiki/Xpraและsoftware.opensuse.org/package/xpra
DDay

ฉันไม่สามารถควบคุมสิ่งนี้ได้มากเพราะฉันทำงานใน บริษัท ขนาดใหญ่ที่ฝ่ายไอทีเลือกใช้เครื่องมือการเข้าถึงระยะไกล
Nathan Fellman

0

เท่าที่ฉันรู้ไม่มีทางที่จะเปลี่ยนความละเอียดของลูกค้าเพียงแค่ใช้ VNC เพราะมันเป็นเพียงแอปพลิเคชั่น "monitor mirroring"

TightVNCอย่างไรก็ตาม (ซึ่งเป็นไคลเอนต์ VNC และแอปพลิเคชันเซิร์ฟเวอร์) สามารถปรับขนาดหน้าจอในฝั่งไคลเอ็นต์เช่นทำให้ทุกอย่างเล็กลงเล็กน้อย (คล้ายกับเทคนิคการปรับขนาดภาพในโปรแกรมกราฟิก) สิ่งนี้จะใช้ได้ผลถ้าคุณไม่ใช้ขนาดแบบอักษรเล็กเกินไป VNC ในทางทฤษฎีควรใช้งานร่วมกันได้ระหว่างแอปพลิเคชั่น VNC ที่แตกต่างกัน


คำถามนี้เป็นคำถามของ linux อย่างเคร่งครัดคำตอบของ windows นี้ไม่สามารถใช้งานได้ที่นี่ ใน windows VNC เป็นเพียงจอแสดงผล แต่ใน Linux มันเป็นเดสก์ท็อปเสมือนและต่อมาบางรุ่นเพิ่มการสนับสนุน 'display 0' (เช่นมอนิเตอร์) VNC Scaling เป็นประสบการณ์การใช้งานที่ไม่ดีนัก
nhed

0

ฉันมีความคิดง่าย ๆ ดังนี้:

#!/bin/sh

echo `xrandr --current | grep current | awk '{print $8}'` >> RES1
echo `xrandr --current | grep current | awk '{print $10}'` >> RES2
cat RES2 | sed -i 's/,//g' RES2

P1RES=$(cat RES1)
P2RES=$(cat RES2)
rm RES1 RES2
echo "$P1RES"'x'"$P2RES" >> RES
RES=$(cat RES)

# Play The Game

# Finish The Game with Lower Resolution

xrandr -s $RES

ฉันต้องการโซลูชันที่ดีกว่าสำหรับอุปกรณ์แสดงผลทั้งหมดภายใต้ Linux และ Similars SO


-3

ฉันคิดว่ามันขึ้นอยู่กับโปรแกรมจัดการหน้าต่างของคุณ

ฉันเป็นผู้ใช้ windows ดังนั้นนี่อาจเป็นการเดาที่ผิด แต่: ไม่มีสิ่งที่เรียกว่าX-Server ที่ทำงานบนเครื่อง linux - อย่างน้อยสำหรับคนที่อาจเป็นเป้าหมายที่น่าสนใจสำหรับ VNC - คุณสามารถเชื่อมต่อกับ " X-ลูกค้า "?

VNC ใช้ทุกสิ่งที่อยู่บนหน้าจอและ "อุโมงค์ผ่านเครือข่ายของคุณ" หากฉันไม่ผิดทั้งหมดโปรโตคอล "X" ควรเปิดโอกาสให้คุณใช้ความละเอียดของเดสก์ท็อปของลูกค้า

ลองX-Serverบน Wikipedia ลองดูว่าอาจให้ภาพรวมคร่าวๆ


ความคิดนั้นดีและสามารถทำได้โดยใช้ ssh tunnel และเซิร์ฟเวอร์ x แบบโลคัล คุณมีเซิร์ฟเวอร์ x บนเครื่องของคุณและให้สิทธิ์ลูกค้าระยะไกลเข้าถึงเซิร์ฟเวอร์ x ซึ่งจะทำให้ gui ของแอประยะไกลบนจอแสดงผลของคุณ
andho

@ และไม่มีสิ่งนี้ไม่ใช่สิ่งที่ผู้ขอเรียกร้อง - ปัญหาที่นี่คือคุณจะเสียม่ายเมื่อสูญเสียการเชื่อมต่อ หน้าต่างเปิดเหนืออุโมงค์จะเป็นประโยชน์สำหรับแอประยะสั้นเท่านั้นไม่ใช่ถ้าคุณต้องการที่จะใช้เดสก์ท็อปของคุณ (และแอพที่เปิดอยู่ทั้งหมดภายใน) จากไคลเอนต์หนึ่งไปยังอีกไคลเอนต์ ...
พฤศจิกายน

@nhed ฉันไม่รู้ว่านี่เป็นประโยชน์หรือไม่ แต่มันเป็นความคิด สำหรับแอพระยะยาวสามารถใช้โปรแกรม 'หน้าจอ' ได้ไหม?
andho

@andho หน้าจอยอดเยี่ยมสำหรับแอปแบบข้อความเท่านั้น ... OP ได้ถามเกี่ยวกับ X apps ... และฉันมาที่มุมนี้ของเว็บเพราะฉันกำลังมองหาสิ่งเดียวกันและดูเหมือนว่า xranr หรือ xmove สิ่งที่ตู้เสื้อผ้า (xrandr เป็นตัวเลือกที่สะอาด)
nhed

@ ไม่มี, ใช่นี่เป็นปัญหาที่ฉันมีเช่นกัน เพียงแค่โยนความคิดนั้นออกไปเพื่อให้บางคนมีประสบการณ์มากขึ้นสามารถตีมันออกไปได้โดยไม่ต้องทดสอบว่ามันเป็นไปได้หรือไม่
andho
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.