Sonunda, dock durumumu algılayacak ve monitörleri otomatik olarak değiştirecek eksiksiz bir komut dosyası kurulumunu bir araya getirdim.
Yaptığım ilk şey Xorg.conf dosyamdan kurtulmaktı çünkü çözdüğü daha fazla soruna neden oldu. Bir nvdia kartı kullandığım için sonunda disper kullanmanın en iyi yol olduğunu gördüm . Standart komutları dualview kurulumuma ulaşamadığı için daha önce indirim yapmıştım, ancak daha sonra disper ile kullanmak için özel bir metamode oluşturabildiğimi buldum.
Aşağıda, komut dosyalarının ve dosyaların içerikleriyle birlikte tam bir dökümü verilmiştir.
XCreateMouseVoid komut dosyası oluşturun:
Komut Dosyası Adı: ~/.mousevoid
#!/bin/bash
echo "Mouse Void"
/opt/XCreateMouseVoid/XCreateMouseVoid 0 1112 1280 88 &
/opt/XCreateMouseVoid/XCreateMouseVoid 0 0 1280 88 &
chmod +x ~/.mousevoid
Disper ayarları dosyası oluştur:
Dosya adı: ~/.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
Dışa aktarma dbus oturum komut dosyasını oluşturun:
Komut Dosyası Adı: ~/.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
Yalnızca kullanıcı tarafından çalıştırılabilir olarak ayarla: chmod 700 ~/.export_x_info
Ardından Başlangıç Uygulamalarına koyun:
Name: X Environment Variables
Command: /home/your_user/.export_x_info
Yeniden başlatmadığınız sürece .Xdbus dosyasını oluşturmak için ~ / .export_x_info çalıştırmanız gerekir
Bir dock olayında çalışacak udev kuralını oluşturun:
Komut Dosyası Adı: /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
Udev kuralıyla ilişkili komut dosyasını oluşturun:
Komut Dosyası Adı: /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
Çıkarma komut dosyasını oluşturun ( kullanıcı_adınızı kullanıcı adınızla eşleşecek şekilde değiştirin ):
Komut Dosyası Adı: /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
(Değiştir dok komut dosyası oluşturma your_user kullanıcı adınızı eşleşecek):
Komut Dosyası Adı: /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
Dock komut dosyalarında hata ayıklamak için udev hata ayıklama günlüğünü etkinleştirmeniz gerekir: