Se eu usar apenas um gerenciador de janelas e não um ambiente de desktop, como obtenho atualizações automáticas de resolução de dock / undock?

3

O Gnome e o KDE alteram as resoluções quando eu conecto / desacopso meu laptop.

Eles parecem fazer isso automaticamente, mais ou menos, com base no estado do computador. Eu gostaria de ter esse comportamento se eu apenas executar algo como IceWM ou Openbox. Ou mesmo XFCE.

Alguma recomendação?

    
por Ken Kinder 17.02.2012 / 08:46

1 resposta

2

Eu tenho em /etc/udev/rules.d/80-monitor.rules

ACTION=="change", SUBSYSTEM=="drm", ENV{HOTPLUG}=="1", ENV{DEVNAME}=="dri/card0", RUN+="/etc/udev/monitors.sh"

Em seguida, em /etc/udev/monitors.sh (executável marcado):

#!/bin/sh
set -e

export DISPLAY=:0
export XAUTHORITY=$(getent passwd $(w -h -s|awk '$3==":0"{print $1}'|sed 1q)|cut -d: -f6)/.Xauthority

desktop() {
    xrandr --output LVDS1 --off || true
    xrandr --output HDMI3 --auto --primary --output HDMI2 --auto --right-of HDMI3
}

laptop() {
    xrandr --output HDMI3 --off || true
    xrandr --output HDMI2 --off || true
    xrandr --output LVDS1 --auto
}

if xrandr|grep -q 'HDMI2 connected'; then
    desktop
else
    laptop
fi

Algumas dicas e capturas com este exemplo:

  1. Funciona apenas para o primeiro usuário conectado graficamente.
  2. Você precisará ajustar o script para corresponder à configuração do seu monitor. Veja o xrandr manpage para ajuda com isto.
  3. Não tenho certeza se a regra do udev corresponderá ao evento de mudança de status do monitor de todos. Eu usei udevadm monitor --property para descobrir o que usar.
  4. Eu tive que usar --off para desativar todos os displays explicitamente antes de reconfigurar antes que o xrandr permitisse que eu configurasse novos. Acho que isso depende do motorista e não está bem documentado.
  5. Estou usando a presença da tela externa para decidir o caminho a ser reconfigurado. Isso pode não funcionar para todos.
  6. xrandr define algumas resoluções por padrão, o que foi ótimo para mim. Consulte a página de manual para obter detalhes sobre como definir resoluções personalizadas, se precisar.
por Robie Basak 07.08.2012 / 23:12