বাহ্যিক ডিসপ্লেটি প্লাগ ইন করা অবস্থায় স্বয়ংক্রিয়ভাবে র্যান্ডআর কনফিগারেশন প্রয়োগ করার জন্য একটি সরঞ্জাম


53

এমন একটি সরঞ্জাম রয়েছে যা একজনকে সক্ষম করে:

  • প্রতি মনিটরের ভিত্তিতে বর্তমান র‌্যান্ডআর কনফিগারেশন (অবস্থান, ওরিয়েন্টেশন, রেজোলিউশন ইত্যাদি) মনে রাখবেন,
  • অ্যাপ্লিকেশন বা xrandr (1) দিয়ে চারপাশে উপহাস করার প্রয়োজন নেই, ডিসপ্লেটি প্লাগ ইন করার সাথে সাথেই সর্বশেষে পরিচিত ভাল কনফিগারেশনটি স্বয়ংক্রিয়ভাবে প্রয়োগ করুন?

কনফিগারেশনগুলি প্রতি-ব্যবহারকারী, প্রতি-প্রদর্শন ভিত্তিতে প্রয়োগ করতে হবে।

যদি বন্যের মধ্যে এই জাতীয় কোনও সরঞ্জাম না থাকে তবে আমি নিজেই এটি একসাথে নিক্ষেপ করতে চাই, তবে যতদূর আমি দেখতে পাচ্ছি, কোনও মনিটরের প্লাগ ইন করা হয়েছে তা বলার উপায় নেই I আমাকে কী xrandr -q দিয়ে পোল করতে হবে? একবারে কোনও আউটপুট সংযুক্ত বা সংযোগ বিচ্ছিন্ন হয়েছে তা খুঁজে বের করার জন্য, বা এটি করার আরও কার্যকর উপায় আছে কি? ওদেবকে কি ঠিক তাই করা যায়?


আপনি কি নিশ্চিত যে এটি বলার উপায় নেই যে আপনার কার্ডের সাথে একটি মনিটর প্লাগ ইন করা হয়েছে। udevadm monitor --propertyটার্মিনাল থেকে দৌড়াতে এবং মনিটরে প্লাগ ইন করার চেষ্টা করুন my আমার কার্ডের সাহায্যে, আমি যখন একটি প্লাগ ইন করা হয় তখন একটি ইভেন্ট দেখতে পাই u তবে আমি নিশ্চিত না যে আপনি কীভাবে ইউদেভ ব্যবহার করে প্রতি ব্যবহারকারী ভিত্তিতে এটি প্রয়োগ করতে সক্ষম হবেন।
স্টিভেন ডি

@ স্টিভেন: আপনার মন্তব্যটির উত্তর হওয়া উচিত। এটি সম্পূর্ণ উত্তর নয়, তবে তা উল্লেখযোগ্য অগ্রগতি করে। যদি উদেব কোনও হার্ডওয়্যার ইভেন্ট দেখতে পান, তবে এটি হলকে অবহিত করবে যা একটি ডিবিএস ইভেন্ট প্রেরণ করবে যা ব্যবহারকারীর কোড দ্বারা দেখা যাবে।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

উত্তর:


19

আমি এই সহজ (হোমমেড) স্ক্রিপ্টটি ব্যবহার করছি যা ভেন্ডিএ সংযুক্ত / সংযোগ বিচ্ছিন্ন হয়ে যাওয়ার পরে পোলিং র‌্যান্ডআর রাখে এবং এলভিডিএস 1 এবং ভিজিএ 1 এর মধ্যে স্যুইচ করে। (জন্য এবং HDMI আউটপুট, নিম্নলিখিত স্ক্রিপ্ট ফাইলে পরিবর্তন সব VGA1থেকে HDMI1)

এটি একটি নোংরা সমাধান, তবুও এটি ঠিক কাজ করছে।

এটি আমার সেটআপটির জন্য কাস্টমাইজ করা হয়েছে: আপনার সম্ভবত র্যান্ডআর আউটপুট নামগুলি ( LVDS1এবং VGA1) পরিবর্তন করতে হবে এবং আমার বিপরীতে আপনি সম্ভবত ভিজিএর জন্য আপনার র্যান্ডআর ডিফল্ট মোডে ভাল থাকবেন।

#!/bin/bash

# setting up new mode for my VGA
xrandr --newmode "1920x1080" 148.5 1920 2008 2052 2200 1080 1089 1095 1125 +hsync +vsync
xrandr --addmode VGA1 1920x1080

# default monitor is LVDS1
MONITOR=LVDS1

# functions to switch from LVDS1 to VGA and vice versa
function ActivateVGA {
    echo "Switching to VGA1"
    xrandr --output VGA1 --mode 1920x1080 --dpi 160 --output LVDS1 --off
    MONITOR=VGA1
}
function DeactivateVGA {
    echo "Switching to LVDS1"
    xrandr --output VGA1 --off --output LVDS1 --auto
    MONITOR=LVDS1
}

# functions to check if VGA is connected and in use
function VGAActive {
    [ $MONITOR = "VGA1" ]
}
function VGAConnected {
    ! xrandr | grep "^VGA1" | grep disconnected
}

# actual script
while true
do
    if ! VGAActive && VGAConnected
    then
        ActivateVGA
    fi

    if VGAActive && ! VGAConnected
    then
        DeactivateVGA
    fi

    sleep 1s
done

সম্পূর্ণ পদক্ষেপ:

  1. টার্মিনাল টিপে টিপুন Ctrl+Alt+t
  2. স্বয়ংক্রিয়-স্যুইচিং শেল স্ক্রিপ্টটি তৈরি এবং সঞ্চয় করতে একটি ভাল অবস্থানে নেভিগেট করুন। উদাহরণ

    cd ./Desktop/

  3. আপনার কাঙ্ক্ষিত পাঠ্য সম্পাদক দিয়ে .sh ফাইলটি তৈরি এবং সম্পাদনা করুন (এখানে, আমি প্লুমা ব্যবহার করেছি You আপনি ন্যানো, ভিম, ইত্যাদি চেষ্টা করতে পারেন)। আপনার সুবিধার্থে নাম দিন। উদাহরণ

    sudo pluma homemadeMonitor.sh

  4. ফাইলটি সম্পাদনা করুন এবং উপরের উল্লিখিত স্ক্রিপ্ট থেকে সমস্ত কিছু অনুলিপি করুন (#! / বিন / ব্যাশ সহ একটি)

  5. টার্মিনালে নিম্নলিখিত কমান্ডটি টাইপ করে .sh ফাইলটিকে কার্যকর করতে সক্ষম করুন

    sudo chmod +x homemadeMonitor.sh

  6. .Sh ফাইলটি চালান

    ./homemadeMonitor.sh


ভালো স্ক্রিপ্ট! ধন্যবাদ, আমার এরকম কিছু দরকার ছিল। আমি কেবল এটি অনুলিপি করেছি এবং এটি স্বয়ংক্রিয়ভাবে চালানোর জন্য সেট আপ করেছি। ধন্যবাদ!
লিনাকোনিওস

21

"[একটি] মনিটরটি প্লাগ ইন করা হয়েছে" এমন প্রশ্নের জবাবে প্রশ্নের অংশ:

সমর্থনটি এখনও বেশ কিছুটা পরিবর্তিত হয়, তবে সাম্প্রতিক কার্নেলের সাহায্যে যখন ডিসপ্লে হটপ্লাগ হয় তখন ইউদেব ইভেন্ট উত্পন্ন করার জন্য কিছুটা সমর্থন রয়েছে। কার্নেল ২.6.৩৮ এবং এটিআই এক্স ১৪০০ হার্ডওয়্যার সহ, আমি প্রথমবার একটি ভিজিএ প্রদর্শন সংযোগ করার পরে একটি ইভেন্ট পাই তবে পরবর্তী সংযোগ বিচ্ছিন্ন বা প্রদর্শনটির পুনরায় সংযোগের কোনও ইভেন্ট নেই no ইন্টেল হার্ডওয়্যারের আরও ভাল সমর্থন থাকতে পারে। এনভিআইডিআইএ মালিকানাধীন ড্রাইভার বর্তমানে কেএমএস সমর্থন করে না; আমি এনভিআইডিএ হার্ডওয়ারে হটপ্লাগ ইভেন্টগুলি সন্ধান করার চেষ্টা করি নি, তবে আমি সন্দেহ করি এটি কার্যকর হবে।

আপনি যদি ওদেব নিয়ে পরীক্ষা করতে চান তবে নীচের পদক্ষেপগুলি চেষ্টা করতে পারেন:

  • নতুন কার্নেল আপডেট করুন
  • নিশ্চিত হয়ে নিন যে কার্নেল মোড সেটিং (কেএমএস) সক্ষম হয়েছে। সক্ষম করা থাকলে, এটি আপনার কার্নেল আউটপুটটিতে প্রতিবেদন করা উচিত। আমার বলে [drm] radeon kernel modesetting enabledএবং[drm] initializing kernel modesetting
  • আপনি চালনা udevadm monitor --property(সংযোগ) সংযোগ স্থাপনের সময় ইভেন্টগুলি রিপোর্ট করা হয়েছে কিনা তা দেখুন এবং দেখুন

আপনি যদি হটপ্লাগে ডিসপ্লেতে ইউদেব ইভেন্টগুলি পেয়ে থাকেন তবে আপনি কোনও ইউদেব নিয়মের সাথে স্ক্রিপ্টটি ট্রিগার করতে পারেন:

ACTION=="change", SUBSYSTEM=="drm", HOTPLUG=="1", RUN+="/path/to/hotplug.sh"

দ্রষ্টব্য: আপনি যদি মালিকানা বাইনারি ড্রাইভারের সাথে এনভিআইডিআইএ জিপিইউ ব্যবহার করেন তবে এটি কাজ করবে না , কারণ এটি কেএমএস ব্যবহার করে না। আপনি কোনও উদেব ইভেন্ট পাবেন না


19

কোনও সরঞ্জাম যা প্রতি ব্যবহারকারী এবং প্রতি-প্রদর্শন ভিত্তিতে মনিটরের কনফিগারেশন প্রোফাইলগুলি সঞ্চয় করতে পারে তা সম্পর্কিত, অটোরেন্ডার ঠিক তা করবে। https://github.com/wertarbyte/autorandr

আমার ল্যাপটপের একটি এনভিআইডিআইএ কার্ড রয়েছে, তাই আমি এক্সরেন্ডারের পরিবর্তে বিলি ব্যাকএন্ড ব্যবহার করি: http://willem.engen.nl/projects/disper/ । আপনি যদি এটিকে কল করেন তবে অ্যান্টোরেন্ডার আপনার মনিটরদের পরিচালনা করতে ব্যাকএন্ড হিসাবে ব্যাপ্তি হিসাবে ব্যবহার করবে autodisper। যদিও এই পোস্টের বাকি অংশগুলির জন্য, আমি এটি autorandrধারাবাহিকতার হিসাবে উল্লেখ করব ।

আপনি প্রোফাইল সংরক্ষণ করতে পারেন autorandr --save profile_nameautorandrনিজে নিজে চালানো আপনাকে প্রোফাইলগুলির একটি তালিকা দেবে এবং বর্তমান কনফিগারেশন হিসাবে কোনটি সনাক্ত করা হয়েছে তা সনাক্ত করবে।

এই ক্ষেত্রে:

$ autorandr
laptop
syncmaster19 (detected)

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

একটি অতিরিক্ত সতর্কতা হিসাবে আমি --default laptopসেই আদেশটি সংযুক্ত করেছি , যা বর্তমান কনফিগারেশনের সাথে মেলে এমন কোনও সংরক্ষিত প্রোফাইল না থাকলে ল্যাপটপের প্রদর্শনে এটি ডিফল্ট করে তুলবে। সুতরাং প্রদর্শনগুলি স্যুইচ করার জন্য আমি সম্পূর্ণ কমান্ডটি ব্যবহার করি:

autorandr --change --default laptop

দুর্ভাগ্যক্রমে আমার মেশিনটি হটপ্লাগ করলে আমার মেশিন কোনও ইউদেব আউটপুট দেয় না। আমি এনভিআইডিআইএ মালিকানাধীন ড্রাইভারগুলি ব্যবহার করছি, তাই অবাক হওয়ার কিছু নেই। সুতরাং আমি এটি আপাতত XF68Display কী (Fn-F8) এ আবদ্ধ করেছি, যা প্রায় হিসাবে ভাল।


1
অটোরেন্ডার হ'ল সময় নষ্ট, খারাপ ডকুমেন্টেড, এলোমেলো মনিটরের ব্লিংকস, কোনও ইনস্টল / আনইনস্টল নির্দেশনা। এটি ব্যবহার করে সমাধান করতে পারেudev
লিও গ্যালুচি

5
সেক্ষেত্রে পাইথন-র একটি ভাল রক্ষণাবেক্ষণের পাইথন কাঁটাচামচ রয়েছে autorandr: github.com/phillipberndt/autorandr
ওলেগস জেরেমেজেভস

7

আমি উপরে বর্ণিত শেল স্ক্রিপ্টের সাথে উপরে প্রস্তাবিত উদেব নিয়মটি ব্যবহার করেছি

#!/bin/sh

dmode="$(cat /sys/class/drm/card0-VGA-1/status)"
export DISPLAY=:0
export XAUTHORITY=/home/yourusername/.Xauthority

if [ "${dmode}" = disconnected ]; then
     /usr/bin/xrandr --auto
elif [ "${dmode}" = connected ];then
     /usr/bin/xrandr --output VGA1 --auto --right-of LVDS1
else /usr/bin/xrandr --auto
fi

Xauthority অংশটি রফতানির পাশাপাশি প্রয়োজনীয় DISPLAY, $DISPLAYএটি কোন সংখ্যার সমান তা দেখতে আপনি প্রতিধ্বনি ব্যবহার করতে পারেন । আপনার xrandr -qকাছে থাকা বাহ্যিক মনিটরগুলি দেখতে ব্যবহার করুন । শেষের বিবৃতিটি কেবলমাত্র প্রদর্শন ছাড়াই কখনও আটকাবেন না তা নিশ্চিত করার জন্য।


6

একটি ছোট প্রোগ্রাম যা এক্স সার্ভারটির পরিবর্তিত মনিটরের কনফিগারেশন সম্পর্কে অবহিত করার জন্য অপেক্ষা করে এবং তার পরে প্রদত্ত কমান্ড কার্যকর করে (যেমন autorandrঅন্য উত্তরে উল্লিখিত) এখানে পাওয়া যায়: https://bitbucket.org/portix/srandrd/overview

এটি এমন একটি পরিষ্কার সমাধান বলে মনে হচ্ছে যা ব্যবহার করে udev(যেখানে আপনাকে সঠিক এক্স সার্ভার ইত্যাদি আবিষ্কার করার জন্য চিন্তা করতে হবে))


5

প্লাগ ইন করার সময় যদি আপনার অবশ্যই এটি স্বয়ংক্রিয়ভাবে প্রদর্শনটি সনাক্ত করতে পারে তবে মনে হয় সবচেয়ে পরিষ্কার সমাধানটি হল আপনার xrandr কমান্ড সম্বলিত একটি স্ক্রিপ্ট চালানোর জন্য একটি UDEV নিয়ম যুক্ত করা। এখানে একটি ব্যবহারকারীর সমাধান 1 এর একটি উদাহরণ :

udevadm
এই পদক্ষেপটি সহ ইউডিইটিভি ইভেন্টগুলি পর্যবেক্ষণ (আউটপুট) প্রতিটি ব্যবহারকারীর জন্য সবচেয়ে গুরুত্বপূর্ণ হবে। চালান udevadm monitor --environment --udev। তারপরে আপনার এইচডিএমআই কেবলটি সংযুক্ত করুন।

UDEV বিধি
উপরের কমান্ড থেকে প্রাপ্ত ফলাফলের ভিত্তিতে, ব্যবহারকারী এই UDEV নিয়মটি তৈরি করেছেন /etc/udev/rules.d/95-monitor-hotplug.rules

KERNEL=="card0", SUBSYSTEM=="drm", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/dan/.Xauthority", RUN+="/usr/local/bin/hotplug_monitor.sh"

এনভায়রনমেন্ট ভেরিয়েবলগুলি ব্যবহার করুন যাতে xrandr ব্যবহারকারীর প্রোফাইলের অধীনে চলবে।

xrandr স্ক্রিপ্ট হটপ্লাগ_মনিটর.শ

আপনার প্রয়োজন অনুসারে আপনি xrandr বিকল্পগুলি সামঞ্জস্য করতে চাইতে পারেন।

#! /usr/bin/bash

export DISPLAY=:0
export XAUTHORITY=/home/dan/.Xauthority

function connect(){
    xrandr --output HDMI1 --right-of LVDS1 --preferred --primary --output LVDS1 --preferred 
}

function disconnect(){
      xrandr --output HDMI1 --off
}

xrandr | grep "HDMI1 connected" &> /dev/null && connect || disconnect

3

যারা, যে কোনও কারণেই হটপ্লাগ রুটটি নিতে চান না, এখনও ইনোটিফয়েট ব্যবহার করে কোনও স্ক্রিপ্টের মধ্যে পোল না দেওয়া সম্ভব:

#! / বিন / ব্যাশ

SCREEN_LEFT = DP2
SCREEN_RIGHT = eDP1
START_DELAY = 5

renice +19 /> / dev / নাল

ঘুম $ START_DELAY

OLD_DUAL = "ডামি"

যখন [1]; করা
    ডুয়াল = $ (বিড়াল / সিএস / শ্রেণি / ড্রাম / কার্ড0-ডিপি -২ / স্থিতি)

    যদি ["$ OLD_DUAL"! = "$ ডুয়াল"]; তারপর
        যদি ["$ ডুয়াল" == "সংযুক্ত"]; তারপর
            প্রতিধ্বনি 'ডুয়াল মনিটর সেটআপ'
            xrandr - আউটপুট $ SCREEN_LEFT - আউটো - নোট সাধারণ
        আর
            প্রতিধ্বনি 'একক মনিটর সেটআপ'
            xrandr --auto
        ফাই

        OLD_DUAL = "$ দ্বৈত"
    ফাই

    inotifywait -q -e বন্ধ / সিস / শ্রেণি / ড্রাম / কার্ড0-ডিপি-2 / স্থিতি / দেব / নাল
সম্পন্ন

এক্সরেন্ডারের সাথে পোলিং আমার ব্র্যান্ডের নতুন ল্যাপটপে গুরুতর ব্যবহারযোগ্যতার সমস্যা দিয়েছে (মাউস পর্যায়ক্রমে স্টল হবে)।


1

পিরোর সমাধানটি ব্যবহার করার সময়, আমি এক্সরেন্ডার থেকে কিছু অতিরিক্ত আউটপুট পেয়েছি, তাই আমি গ্রেপের জন্য -c বিকল্পটি ব্যবহার করেছি যা ম্যাচের সংখ্যা গণনা করে। আমি এটি এইচডিএমআই এর জন্য রূপান্তর করেছি এবং পাশাপাশি অডিও সুইচ যুক্ত করেছি:

#!/bin/bash
# adapted from http://unix.stackexchange.com/questions/4489/

# default monitor is LVDS1
MONITOR=LVDS1

# functions to switch from LVDS1 to HDMI1
function ActivateHDMI {
    xrandr --output HDMI1 --mode 1920x1080 --dpi 160 --output LVDS1 --off
    pactl set-card-profile 0 output:hdmi-stereo-extra1
    MONITOR=HDMI1
}
function DeactivateHDMI {
    xrandr --output HDMI1 --off --output LVDS1 --auto
    pactl set-card-profile 0 output:analog-stereo
    MONITOR=LVDS1
}

# functions to check if HDMI is connected and in use
function HDMIActive {
    [ $MONITOR = "HDMI1" ]
}
function HDMIConnected {
    [[ `xrandr | grep "^HDMI1" | grep -c disconnected` -eq 0 ]]
}

# actual script
while true
do
    if ! HDMIActive && HDMIConnected
    then
        ActivateHDMI
    fi

    if HDMIActive && ! HDMIConnected
    then
        DeactivateHDMI
    fi

    sleep 1s
done

1

আমি অনুমান করি যে এই প্রশ্নটি দেখছেন এমন লোকেরা যারা জিনোম ব্যবহার করতে চান না এবং যারা জিনোম ব্যবহার করেন তাদের এই প্রশ্নটি দেখার দরকার নেই, তবে সম্পূর্ণতার স্বার্থে:

জিনোমের অন্তর্নির্মিত এই কার্যকারিতা রয়েছে। আপনি যদি জিনোম-নিয়ন্ত্রণ-কেন্দ্রের মাধ্যমে সেটআপটি পরিবর্তন করেন, জিনোম-সেটিংস-ডেমন এটি মনে রাখে (ইন .config/monitors.xml) এবং কোনও মনিটর প্লাগ ইন বা আউট হয়ে গেলে স্বয়ংক্রিয়ভাবে এটি প্রয়োগ করে।

দুর্ভাগ্যক্রমে মনিটর.এক্সএমএল ফাইলের কনফিগারেশনটি ভালভাবে নথিভুক্ত নয়। এখানে প্রশ্ন দেখুন । জিনোম ডিসপ্লে টুলিংয়ের প্যানিং সেটআপ করার কোনও উপায় নেই, মনিটরের প্রতি স্কেলিং করা এবং এটি জুম-আউট করে না। যেহেতু অনেকগুলি লোকেরা নিয়মিত ডিপিআই স্ক্রিনের সাথে একত্রে একটি হাইডিপিআই ল্যাপটপ স্ক্রিন ব্যবহার করছে সেগুলি কার্যকর করার উপযুক্ত সমাধান পাওয়ার জন্য যথেষ্ট নয়।

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


1

উদাহরণস্বরূপ এক্সএফসিতে সরল করতে দয়া করে "আরেন্ডার" ইনস্টল করুন যা আপনার ডিস্ট্রো প্যাকেজগুলিতে পাওয়া উচিত। "আরেন্ডার" ব্যবহার করে আপনার প্রদর্শনটি কনফিগার করুন উদাহরণস্বরূপ এটিকে "ডিসপ্লেলআউট" হিসাবে সংরক্ষণ করুন। আরেন্ডার আপনার ".sh" এক্সটেনশনের যোগ করতে হবে যাতে উপরের আইরিন দ্বারা উল্লিখিত "হটপ্লাগ_মনিটর.শ" স্ক্রিপ্টটিতে যেমন লেখা হয় "ফাংশন কানেক্ট ()" তে এটি সরাসরি ব্যবহার করা যায়:

function connect(){
 /path/to/displayLayout.sh
}

"#! / Bin / bash" এর ঠিক ঠিক নীচে স্ক্রিপ্টের শীর্ষে সংযোগ বিচ্ছিন্ন করার পদ্ধতিটি যুক্ত করুন:

#!/bin/bash
#
PLUGGED_EXTERNAL=`xrandr | awk /"connected [0-9]"/'{print $1}'`

xrandr ডিসপ্লেটি সনাক্ত করে এবং আউটপুট কে উত্তেজিত করবে যা নিয়মিত অভিব্যক্তি "সংযুক্ত" এর উপর ভিত্তি করে এটি ফিল্টার করবে যা সংখ্যার সংক্ষেপে অনুসরণ করবে যা আমরা চাই। আমার মতে নিয়মিত অভিব্যক্তিতে যথাযথ রেজোলিউশনের সাথে মিলে যাওয়া প্রয়োজন নয় কারণ প্রাথমিক প্রদর্শনটি "সংযুক্ত প্রাথমিক" হিসাবে অনুসরণ করা হয় যার পরে সংখ্যার সমাধান হয়। তারপরে, "প্রিন্ট print 1 মুদ্রণ" কেবল প্রথম কলাম প্রিন্ট করবে যা এই ক্ষেত্রে বাহ্যিক মনিটরের নাম এবং এটি PLUGGED_EXTERNAL ভেরিয়েবলে সংরক্ষণ করা হবে। স্ক্রিপ্টে স্থির প্রদর্শন নাম "HDMI1" এর পরিবর্তে $ PLUGGED_EXTERNAL এর মতো ব্যবহার করা যেতে পারে:

function disconnect(){
  xrandr --output $PLUGGED_EXTERNAL --off
}

xrandr | grep "$PLUGGED_EXTERNAL connected" &> /dev/null && connect || disconnect

0

সেটআপটি সহজ করার জন্য আমার উত্তরটি সম্পাদনা করা হচ্ছে।

এক্সরেন্ডারে স্ক্রিন লেআউটটি স্বয়ংক্রিয় করতে অটোর্যান্ডার ইনস্টল করুন, https://github.com/nalipaz/autorandr/releases থেকে সর্বশেষ .deb ধরুন এবং চালান:

dpkg -i [file]

সঞ্চিত স্ক্রিন লেআউট সহ অটোরেন্ডার সেটআপ করুন

autorandr --save [docked|mobile|home|etc]

উদাহরণস্বরূপ, আমার ল্যাপটপে কোনও মনিটরবিহীন প্লাগ ইন করা হয়েছে, আমি যেভাবে চাই তার ইচ্ছা মতো সেটআপ করেছি, তারপরে দৌড়ে:

autorandr --save mobile

তারপরে আমার এইচডিএমআই প্লাগ ইন করে পুনরায় কনফিগার করা আরেন্ডার লাগিয়ে দৌড়াল:

autorandr --save docked

আপনার প্রতিটি লেআউট সেট আপ করার পরে আপনি চালাতে পারেন ('পূর্ববর্তী পছন্দের নামের সাথে' মোবাইল 'প্রতিস্থাপন করুন, আমি মোবাইল ব্যবহার করেছি):

autorandr --default mobile

এখন যে অটোোরেন্ডার সব সেটআপ আপনি কোনও প্যাকেজ ইনস্টল করে প্রক্রিয়াটি স্বয়ংক্রিয় করতে পারবেন যা সংযুক্ত ডিসপ্লেগুলির জন্য পোল করে এবং autorandr --changeসনাক্তকরণের পরে চালানো হবে । হ্যাঁ, আমি উদেব সম্পর্কে জানি এবং এটি আপনার পক্ষে কাজ করে যদি আপনি সেট আপ করতে পারেন তবে আমার পরীক্ষায় উদেব আমার এইচডিএমির জন্য ধারাবাহিকভাবে কাজ করেন নি। এটি প্রতি 20 টি প্লাগ / আনপ্লাগ বা তার মধ্যে কেবল 1 টির কাজ করেছিল এবং কখনও কখনও এটি পুরোপুরি বন্ধ হয়ে যায়।

এখান থেকে সর্বশেষ .deb ডাউনলোড করুন: https://github.com/nalipaz/poll-xrandr/releases/ তারপরে ইনস্টল করুন

dpkg -i [file]

সম্ভবত এটি প্রয়োজনীয় যে আপনি কাজ শেষ করার পরে আরও কাজ পরিচালনা করুন autorandr --change, অটোোরেন্ডার এই আদেশগুলি ~ / .autorandr / postwitch নামক কোনও ফাইলের মধ্যে সন্নিবেশ করার অনুমতি দেয়। নিম্নলিখিত হিসাবে করুন:

cd ~/.autorandr/ && touch postswitch && chmod +x postswitch

নিম্নলিখিত পোস্টগুলির সাথে মিলের মতো পোস্টউইচ ফাইলটি সম্পাদনা করুন:

#!/bin/bash
if pidof conky > /dev/null 2>&1; then
  killall conky
fi
(sleep 2s && xrandr-adjust-brightness restore -q) &
(sleep 2s && nitrogen --restore) &
(sleep 3s && conky -q) &

অতিরিক্ত হিসাবে আপনি সম্ভবত আপনার স্টার্টআপগুলিতে অটোরেন্ডার এবং পোল-এক্সরেন্ডার যুক্ত করতে চান যা নিম্নলিখিত দুটি কমান্ডের মতো:

autorandr --change &
poll-xrandr &

একটি মনিটরে আনপ্লাগ বা প্লাগ করুন এবং যাদুটি দেখুন!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.