linux যবহ লিনাক্সে একটি VNC সেশনের রেজল্যুশন পরিবর্তন করা




লিনাক্সের সুবিধা (12)

আমি কাজ করে একটি Linux ওয়ার্কস্টেশন সংযোগ করতে VNC ব্যবহার করি। কর্মক্ষেত্রে আমার একটি 20 "মনিটর রয়েছে যা 1600x1200 এ চালায়, যখন বাড়িতে আমি 1440x900 এর রেজোলিউশনের সাথে আমার ল্যাপটপ ব্যবহার করি। 1440x900 এ চালানোর জন্য আমি ভিএনসিএসভারকে সেট করি তবে আমার মনিটরের অনেক জায়গা থেকে আমি মিস করি। এটি 1600x1200 এ চালানোর জন্য এটি ল্যাপটপের স্ক্রীনে মাপসই করা হয় না এবং আমাকে সর্বদা এটি স্ক্রোল করতে হবে।

ফ্লাই এ কোন ভিএনসি সেশনের আকার পরিবর্তন করার কোন ভাল উপায় আছে?

আমার VNC সার্ভার RealVNC E4.x (আমি সঠিক সংস্করণটি মনে রাখি না) SuSE64 এ চলছে।


রিয়েল ভিএনসি সার্ভার 4.4 এর মধ্যে Xrandr এর জন্য সমর্থন রয়েছে, যা VNC কে পুনরায় আকার দেওয়ার অনুমতি দেয়। সার্ভারটি দিয়ে শুরু করুন:

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

তার সাথে পুনরায় আকার পরিবর্তন করুন:

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

আকর্ষণীয় কেউ এই উত্তর। TigerVNC তে, যখন আপনি সেশনে লগ ইন করেন। উপরের মেনু বার থেকে System > Preference > Display যান (আমি আমার দূরবর্তী সার্ভার হিসাবে সেন্ট ওএস ব্যবহার করছিলাম)। রেজল্যুশন ড্রপ ডাউন উপর ক্লিক করুন, 1080p সহ বিভিন্ন সেটিংস পাওয়া যায়। আপনি চান যে এক নির্বাচন করুন। এটা উড়ে পরিবর্তন হবে।

একটি ডায়ালগ অনুরোধ করা হয় যখন আপনি নতুন সেটিং প্রয়োগ করুন নিশ্চিত করুন। অন্যথা এটি উইন্ডোজের মতো আগের সেটিংসে ফিরে আসবে


উবুন্টু (10.04) এর সাথে প্রেরিত ভিএনসি 4 সার্ভার (4.1.1) xrandr এর মাধ্যমে ফ্লাই রেজোলিউশন পরিবর্তন সমর্থন করার জন্য প্যাচ করা হয়েছে। দুর্ভাগ্যবশত এটি অকার্যকর কারণ এটি বৈশিষ্ট্য খুঁজে পাওয়া কঠিন ছিল। তাই এখানে এটা ...

একাধিক 'জ্যামিতি' উদাহরণ সহ সার্ভারটি শুরু করুন, যেমন:

vnc4server -geometry 1280x1024 -geometry 800x600

একটি ভিএনসিভিউয়ারের টার্মিনাল থেকে ('ডাইমেনিক ডেস্কটপ রিকজাইজিং সক্ষম করুন' সক্ষম সহ) উপলব্ধ মোডগুলি দেখতে xrandr ব্যবহার করুন:

xrandr

পুনরাবৃত্তি পরিবর্তন, উদাহরণস্বরূপ ব্যবহার করুন:

xrandr -s 800x600

এটাই.


@ সোমবার দ্বারা সমাধান Xvnc TigerVNC 1.1.0 এ আমার জন্য কাজ করেছে, তাই আমি এটি একটি একক ব্যাশ ফাংশন vncsize xy এ সংহত করেছি । এটি ব্যবহার করুন: 1400 1000 vncsize । এটি অনুমান করে যে xrandr VNC আউটপুট নামটি ডিফল্ট হিসাবে রিপোর্ট করে।

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_]/ } )
            xrandr --newmode $newMode
            xrandr --addmode default "$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
}

সম্ভবত আমি সবচেয়ে অজানা উত্তর পোস্ট করেছি কিন্তু এখানে গিয়েছে: TigerVNC ক্লায়েন্ট / ভিউয়ার ব্যবহার করুন এবং বিকল্পগুলির স্ক্রিন ট্যাবের অধীনে 'Resize remote session to local window' চেক করুন।

আমি জানি না $ TigerVNC ক্লায়েন্টটি কি রিমোট ভেনেসারভার বা xrandr বা Xvnc বা gnome বা বলে ... ... কিন্তু যখন আমি টাইগার ভিএনসি ক্লায়েন্ট উইন্ডোটি পরিবর্তন করি তখন এটি পুনরায় আকার দেয়।

আমার সেটআপ:

  • CentOS 6 এ চলমান টাইগার ভিএনসি সার্ভার 6. গনোম ডেস্কটপ হোস্টিং। (এছাড়াও RHEL 6.6 সঙ্গে কাজ করে)
  • উইন্ডোজ টাইগার ভিএনসি ক্লায়েন্টের সাথে কিছু সংস্করণ।

এটির সাথে রেজোলিউশন ক্লায়েন্ট উইন্ডো আকারের মাপ পরিবর্তন করতে পরিবর্তিত হয় তবে এটি কোনও ব্যাপার না এবং এটি zooming না, এটি প্রকৃত রেজোলিউশন পরিবর্তন (আমি xrandr আউটপুটে নতুন রেজোলিউশন দেখতে পাচ্ছি)।

আমি সমস্ত চেষ্টা করেছি যা আমি XRandr তে একটি নতুন রেজোলিউশন যোগ করতে চেষ্টা করেছি, কিন্তু কোনও উপকারে নেই, 'xrandr: Failed to get size of gamma for output default' সর্বদা 'xrandr: Failed to get size of gamma for output default' ত্রুটি।

যে সংস্করণের সাথে এটি আমার জন্য কাজ করে তা ঠিক আছে (যদিও আমার অতীতের কোন সংস্করণ নিয়ে সমস্যা হয়নি তবে আমি yum install gnome-* tigervnc-server করে এবং জরিমানা কাজ করে সর্বশেষটি 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.

আমি মনে করি আপনার ভিন্ন পোর্টে ভিন্ন জ্যামিতি দিয়ে VNC সার্ভার চালানো আপনার সেরা সেরা। আমি মানুষের পাতা উপর ভিত্তি করে চেষ্টা করবে

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

তারপরে আপনি কাজের থেকে এক পোর্টে এবং অন্য কোনও ঘরে সংযোগ করতে পারেন।

সম্পাদনা করুন: তারপর এক্স-ভিভ ব্যবহার করুন দুই এক্স-সার্ভারগুলির মধ্যে উইন্ডোগুলি সরাতে।


নাথান এর (গৃহীত) উত্তর যোগ করা:

আমি রেজুলেশন তালিকা মাধ্যমে চক্র চেয়েছিলেন কিন্তু এটি জন্য কিছু দেখতে না:

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

এটি বর্তমান সূচী পায়, পরেরটিতে পদক্ষেপ এবং ত্রুটিগুলিতে 0 ফিরে চক্র (অর্থাত্ শেষ)


সম্পাদনা

Xrandr এর একটি পরবর্তী সংস্করণটি মিলিয়ে সংশোধন করা হয়েছে ("*" লাইনের শেষে এবং কোনও নেতৃস্থানীয় রেজোলিউশন সনাক্তকারী নয়)।

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

আমি লিনাক্স সম্পর্কে নিশ্চিত নই, তবে উইন্ডোজের নিচে, tightvnc সনাক্ত করবে এবং সার্ভারে রেজোলিউশন পরিবর্তনগুলিতে মানিয়ে নেবে।

সুতরাং আপনি ওয়ার্কস্টেশনে ভিএনসি করতে সক্ষম হবেন, ডেস্কটপ, বৈশিষ্ট্যাবলী, রেজোলিউশন সেট করুন এবং আপনার ক্লায়েন্ট ভিএনসি উইন্ডো নিজেই তার আকার পরিবর্তন করুন।


এই প্রশ্নটি প্রথমে গুগলে আসে, আমি ভাবলাম আমি টাইগার ভিএনসি ব্যবহার করে একটি সমাধান ভাগ করব যা আজকাল ডিফল্ট।

xrandr ডিসপ্লে মোডগুলি (উর রেজুলেশনস) নির্বাচন করতে সক্ষম হওয়ায় মডেলগুলির হার্ড কোডেড থাকার কারণে কোনও অতিরিক্ত মডেলিন যেমন "2560x1600" বা "1600x900" কোডটিতে যোগ করা দরকার। আমি মনে করি কোড লেখক যারা ডেভেলপার অনেক স্মার্ট এবং হার্ড কোডেড তালিকা মানগুলির নমুনা। এটি কাস্টম মডেলিন এবং man xrandr ক্রেন্ডার যুক্ত করার একটি উপায় থাকা উচিত উপসংহারের দিকে পরিচালিত করে এটি নিশ্চিত করে।

সেই পটভূমিটির সাথে যদি উপরের দুটি রেজোলিউশনের সাথে দুটি কম্পিউটারের মধ্যে একটি VNC সেশন ভাগ করা এবং "1600x900" রেজোলিউশনের সাথে কম্পিউটারটি VNC সার্ভারটি হয় বলে ধরে নেওয়া হয়:

  1. প্রকৃত প্রদর্শনের সাথে মিলে একটি জ্যামিতি সহ একটি VNC সেশন শুরু করুন:

    $ vncserver -geometry 1600x900 :1
    
  2. "2560x1600" কম্পিউটারটি ভিএনসি ভিউয়ারটি চালু করে (আমি রিম্মিনা পছন্দ করি) এবং রিমোট ভিএনসি সেশনে সংযোগ করে:

    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. "2560x1600" রেজোলিউশনের জন্য মডেলিন তালিকাটি দেখুন (আর্চলিনux উইকি-তে xrandr নিবন্ধটি দেখুন):

    $ 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. বর্তমান ভিএনসি সেশনে নতুন মডেলিন যুক্ত করুন:

    $ 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"
    

এই সত্যিই সহজ।

আপনার পাই মধ্যে ssh মাধ্যমে লগইন করুন

এক্সিকিউট

vncserver -geometry 1200x1600

এটি একটি নতুন অধিবেশন তৈরি করবে :1

ipaddress:1 এ আপনার ভিএনসি ক্লায়েন্টের সাথে সংযোগ করুন ipaddress:1

এটাই.


আমি একটি সহজ ধারণা, এই মত কিছু আছে:

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

আচ্ছা, লিনাক্স এবং সিমিলার এসএর অধীনে সকল ডিসপ্লে ডিভাইসের জন্য আমার আরও ভাল সমাধান দরকার


অন্যদিকে, যদি একটি এক্স-সার্ভার থেকে অন্য এক্সটেনশান উইন্ডোতে সরানোর একটি উপায় থাকে তবে এটি সমস্যাটি সমাধান করতে পারে।

আমার মনে হয় আপনি দুটি পৃথক এক্স-সার্ভারের মধ্যে উইন্ডোগুলি সরাতে xmove ব্যবহার করতে পারেন। কাজেই যদি এটি কাজ করে, তবে অন্তত এই রেজোলিউশনটি পরিবর্তন না করেই আপনি যা চান তা করার জন্য এটি আপনাকে একটি উপায় দিতে হবে।







vnc