Как я могу настроить xfce автоматически на изменение доступных выходов?

11

В xfce я могу запустить Настройки -> Дисплей, чтобы изменить предпочитаемый монитор вывода. То, для чего я не нашел опцию, это чтобы она автоматически настраивалась на изменение доступных выходных данных.

Например, если я использую дисплей DVI, но отсоединяю свой ноутбук, XFCE не будет автоматически осознавать, что у меня больше нет работающего дисплея, и менять выход. Гном сделал это, хотя я не уверен, через какой сервис. Я бы хотел, чтобы у меня всегда был хотя бы один рабочий выход автоматически.

ПОБОЧНОЕ ПРИМЕЧАНИЕ: это связано с другим моим вопросом: если я просто использую диспетчер окон, а не среду рабочего стола, как я могу получать автоматические обновления разрешения стыковки / отсоединения? , но для xfce, а не для любого стандартного оконного менеджера.

Кен Киндер
источник
1
лучшее, что я когда-либо видел: unix.stackexchange.com/a/120945/14907
akostadinov
@akostadinov Ответы должны быть ответами. Я пойду вперед и превращу это в одно.
Александр Дубинский

Ответы:

6
$ xrandr --auto

Из справочной страницы xrandr:

--auto : для подключенных, но отключенных выходов, это позволит им использовать их предпочтительный режим (или что-то близкое к 96dpi, если у них нет предпочтительного режима). Для отключенных, но включенных выходов это отключит их.

pl1nk
источник
Это работает для меня, по крайней мере, для моей настройки.
pl1nk
Но это разовая команда, а не служба, верно?
Александр Дубинский
0

Ответ на этот вопрос в Unix StackExchange: /unix/101809/how-can-i-automatics-update-my-monitor-layout-in-xfce/120945#120945 Однако, поскольку это не так Можно пометить этот вопрос как дубликат вопроса на другом сайте, я просто собираюсь скопировать ответ здесь.


Одним из способов является создание правила udev, но, поскольку я хотел что-то более переносимое, у меня есть этот скрипт bash. Он опирается на поддержку inotifywait, не имеет каких-либо петель и считается эффективным.

external-lcd.sh

#!/bin/sh
# inspired of:                                                                                            
#   http://unix.stackexchange.com/questions/4489/a-tool-for-automatically-applying-randr-configuration-   when-external-display-is-p                                                                                
#   http://ozlabs.org/~jk/docs/mergefb/                                                                   
#   http://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes/181543#181543  

export MONITOR2=/sys/class/drm/card0-VGA-1/status                                                         

while inotifywait -e modify,create,delete,open,close,close_write,access $MONITOR2;                        

dmode="$(cat $MONITOR2)"                                                                                  

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

Не забудьте сделать файл исполняемым ( chmod +x external-lcd.sh). Тогда просто запускайте его всякий раз, когда запускаете свою DE.

Я использую это на archlinux, поэтому я думаю, что это должно работать. Вы можете изменить параметры xrandr или поменять их местами, чтобы использовать конфигурации arandr.

Александр Дубинский
источник
-1

Такой опции нет, поскольку технология обнаружения аппаратных событий, не зависящих от рабочего стола ( udev), является довольно новой для такого хобби-проекта, как xfce.

Вы можете получить хорошие результаты, копаясь в D-Busи udev. Посмотрите на udev, который не запускает события удаления для начинающих.

aquaherd
источник