Page 2 sur 2

Re: [awesomewm]Extension screenful

Publié : lun. 04 juin 2012, 18:18
par GuilouV
Ce test avec une clé usb fonctionne :roll:

PS: désolé aussi pour le temps de réponse, j'étais en déplacement toute la semaine

Re: [awesomewm]Extension screenful

Publié : lun. 04 juin 2012, 18:35
par MrMen
Donce comme on s'en doute tous les deux, c'est la règle udev qui ne convient pas. Il va falloir regarder un peu du côté du répertoire drm et de udev. Quand tu branches un écran tu as bien des différences dans le repertoire drm. Dis moi non stp :D (mais j'y crois pas trop)

Re: [awesomewm]Extension screenful

Publié : mar. 05 juin 2012, 01:51
par GuilouV
Je ne sais pas trop de quelles différences tu veux parler. En tout cas quand je branche un écran je n'ai aucun répertoire renommé ou crée dans /sys/class/drm.

Re: [awesomewm]Extension screenful

Publié : mar. 05 juin 2012, 08:03
par MrMen
Tu as quand même un fichier qui est modifié non ? Celui qui correspond à la sortie sur laquelle tu te branches.

Re: [awesomewm]Extension screenful

Publié : mer. 13 juin 2012, 21:50
par GuilouV
Salut !

Mea culpa encore pour le délai de réponse mais je n'ai pas eu une minute à moi jusqu'à aujourd'hui. Par contre je viens avec une bonne nouvelle (pour moi au moins). Je viens de tester le branchement d'un second écran et maintenant le script fonctionne... je ne sais pas si c'est une mise à jour du système ou le fait d'être passé à systemd qui a bouleversé les choses mais bon...

Voici donc le script modifié que j'utilise maintenant :

Code : Tout sélectionner

#!/bin/bash

LOG=detect-screen.log

# modify
export XAUTHORITY=/home/vignaux-g/.Xauthority
export DISPLAY=:0

if [ -e /tmp/$LOG ]
then
    rm /tmp/$LOG
fi
touch /tmp/$LOG
cd /tmp

output=$(ls /sys/class/drm | sed '/card.*-/!d; /.*LVDS.*/d')
echo "available output are : "$output >> $LOG

# get what output to use
for i in $output
do
    if [ "$(cat /sys/class/drm/$i/status)" == "connected" ]
    then
   valid=$i
    else
    cp /$HOME/.config/awesome/rcDefault.lua /$HOME/.config/awesome/rc.lua &
xrandr --output LVDS1 --mode 1280x800 --output HDMI1 --off --output VGA1 --off &
echo 'awesome.restart()' | awesome-client
    fi
done

# put a nice name into valid
valid=$(echo $valid | sed 's/card.-//g; s/-.//g;s/.*/&1/')

# activate if needed
    if [ "$valid" = "VGA1" ]
        then
cp /$HOME/.config/awesome/rcDefault.lua /$HOME/.config/awesome/rc.lua &
xrandr --output $valid --auto --right-of LVDS1 &
echo 'awesome.restart()' | awesome-client
    fi
    if [ "$valid" = "HDMI1" ]
    then
cp /$HOME/.config/awesome/rcHDMI.lua /$HOME/.config/awesome/rc.lua &
xrandr --output $valid --mode 1360x768 --right-of LVDS1 &
echo 'awesome.restart()' | awesome-client
    fi
exit 0
Ce script est adapté à l'utilisation de deux écrans (pour plus il faudrait prévoir un test pour connaître quel écran se déconnecte). Il est capable d'autodétecter l'écran nouvellement branché ou débranché et d'adapter les affichages en conséquences selon le type de moniteur détecté.
J'ai également ajouté une commande xdotool (du paquet du même nom). Utilisant des écrans en mode étendu et non clone si je n'utilise pas cette commande tout l'affichage de l'écran principal bascule sur l'écran secondaire lors du branchement d'un nouveau moniteur (puisque ma souris bascule automatiquement sur ce nouvel écran et que mon awesomewm est configuré pour afficher les fenêtres sur l'écran où est la souris).

J'attends commentaires, critiques, améliorations avant de passe le post en résolu.

EDIT: la commande xdotool ne semble pas fonctionner correctement à chaque fois puisque parfois après branchement d'un second moniteur je me retrouve avec tous mes tags (shifty) sur le nouveau moniteur. Si quelqu'un a une solution pour celà... (pour tenter de faire simple j'aimerai qu'au branchement d'un nouveau moniteur je conserve ce qui était affiché sur mon écran principal sur celui-ci).