অবশেষে আমি একটি সম্পূর্ণ স্ক্রিপ্ট সেটআপ একসাথে রেখেছি যা আমার ডকের স্থিতি সনাক্ত করতে এবং মনিটরগুলিকে স্বয়ংক্রিয়ভাবে স্যুইচ করবে।
আমি প্রথম কাজটি করেছিলাম আমার Xorg.conf থেকে মুক্তি পাওয়ার কারণ এটি আরও সমস্যার সমাধান করেছে। যেহেতু আমি একটি এনভিডিএ কার্ড ব্যবহার করছি আমি অবশেষে দেখতে পেলাম যে ডিস্পার ব্যবহার করা সবচেয়ে ভাল উপায়। আমি এর আগে এটি ছাড় দিয়েছিলাম কারণ এর স্ট্যান্ডার্ড কমান্ডগুলি আমার ডুয়ালভিউ সেটআপটি অর্জন করতে পারে না তবে আমি খুঁজে পেলাম যে আমি ডিসপারের সাথে ব্যবহারের জন্য একটি কাস্টম মেটাਮੋড তৈরি করতে পারি।
কাস্টম metamode তৈরি করতে আমি পূর্ববর্তী পরীক্ষামূলক সহ Xorg.conf সঞ্চিত মান ব্যবহৃত NV-নিয়ন্ত্রণ-dpy এবং xrandr একটি নির্দেশিকা হিসেবে। এই metamode এবং অন্যান্য twinview মান একটি ফাইল মাধ্যমে disper প্রেরণ যেতে পারে যে যোগ করা হয় নি stdin ।
এক্সক্রিয়েটমাউসওয়াইড স্ক্রিপ্ট তৈরি করুন:
স্ক্রিপ্টের নাম: ~/.mousevoid
#!/bin/bash
echo "Mouse Void"
/opt/XCreateMouseVoid/XCreateMouseVoid 0 1112 1280 88 &
/opt/XCreateMouseVoid/XCreateMouseVoid 0 0 1280 88 &
chmod +x ~/.mousevoid
বিচ্ছিন্ন সেটিংস ফাইল তৈরি করুন:
ফাইলের নাম: ~/.disperDocked
backend: nvidia
associated displays: CRT-0, DFP-0, DFP-1
metamode: CRT-0: 1280x1024_60 @1280x1024 +0+88, DFP-1: 1920x1200 @1920x1200 +1280+0
scaling: default, default, stretched
xinerama info order: DFP-1, CRT-0, DFP-0
এক্সপোর্ট ডিবিস সেশন স্ক্রিপ্ট তৈরি করুন:
স্ক্রিপ্টের নাম: ~/.export_x_info
#!/bin/bash
# Export the dbus session address on startup so it can be used by any other environment
sleep 5
touch $HOME/.Xdbus
chmod 600 $HOME/.Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.Xdbus
# Export XAUTHORITY value on startup so it can be used by cron
env | grep XAUTHORITY >> $HOME/.Xdbus
echo 'export XAUTHORITY' >> $HOME/.Xdbus
শুধুমাত্র ব্যবহারকারী কার্যকর করতে সেট করুন: chmod 700 ~/.export_x_info
তারপরে এটি স্টার্টআপ অ্যাপ্লিকেশনগুলিতে রাখুন:
Name: X Environment Variables
Command: /home/your_user/.export_x_info
আপনি যদি পুনরায় আরম্ভ না করেন তবে আপনি। Xdbus ফাইল তৈরি করতে ~ / .export_x_info চালানোর দরকার
ডাব ইভেন্টের সাথে চলতে পারে এমন udev নিয়ম তৈরি করুন:
স্ক্রিপ্টের নাম: /etc/udev/rules.d/81-dell-dock.rules
KERNEL=="dock.0", ACTION=="change", RUN+="/usr/local/sbin/dell-dock"
chmod +x /etc/udev/rules.d/81-dell-dock.rules
উদেব নিয়মের সাথে সম্পর্কিত স্ক্রিপ্টটি তৈরি করুন:
স্ক্রিপ্টের নাম: /usr/local/sbin/dell-dock
#!/bin/sh
# wait for the dock state to change
sleep 0.5
DOCKED=$(cat /sys/devices/platform/dock.0/docked)
case "$DOCKED" in
"0")
echo "Run UnDocking Script..."
/usr/local/sbin/undock
;;
"1")
echo "Run Docking Script..."
/usr/local/sbin/dock
;;
esac
exit 0
chmod +x /usr/local/sbin/dell-dock
আনডক স্ক্রিপ্ট (পরিবর্তন তৈরি করুন your_user আপনার ব্যবহারকারী নাম মেলে):
স্ক্রিপ্টের নাম: /usr/local/sbin/undock
#!/bin/bash
USER=your_user
export HOME=/home/$USER
source $HOME/.Xdbus
export DISPLAY=:0
echo "UnDocking Script"
echo "Switch primary monitor"
sudo -u $USER disper -s
echo "Killall XCreateMouseVoid"
pkill XCreate
echo "Restart conky"
pkill conky
sudo -u $USER conky &
chmod +x /usr/local/sbin/undock
ডক স্ক্রিপ্ট (পরিবর্তন তৈরি করুন your_user আপনার ব্যবহারকারী নাম মেলে):
স্ক্রিপ্টের নাম: /usr/local/sbin/dock
#!/bin/bash
USER=your_user
export HOME=/home/$USER
source $HOME/.Xdbus
export DISPLAY=:0
echo "Docking Script"
echo "Switch to Dualview"
sudo -u $USER disper -i < $HOME/.disperDocked
echo "Start XCreateMouseVoid"
pkill XCreate
sudo -u $USER $HOME/.mousevoid
echo "Restart conky"
pkill conky
sudo -u $USER conky &
chmod +x /usr/local/sbin/dock