#1 Le 21/11/2021, à 08:43
- 321guyver
Editer un script pour ajouter une condition / relancer le GUI.
Bonjour, j'ai ubuntu mate 20.04 sur mon lenovo miix 320 et j'en suis très content. En grande partie grâce à ceci.
En particulier, ce script lancé au démarrage permet de tourner l'écran et le tactile quad on pivote (utile en mode tablette) :
#!/bin/sh
# Auto rotate screen based on device orientation
# Receives input from monitor-sensor (part of iio-sensor-proxy package)
# Screen orientation and launcher location is set based upon accelerometer position
# Launcher will be on the left in a landscape orientation and on the bottom in a portrait orientation
# This script should be added to startup applications for the user
# Clear sensor.log so it doesn't get too long over time
> /tmp/sensor.log
# Launch monitor-sensor and store the output in a variable that can be parsed by the rest of the script
monitor-sensor >> /tmp/sensor.log 2>&1 &
# Parse output or monitor sensor to get the new orientation whenever the log file is updated
# Possibles are: normal, bottom-up, right-up, left-up
# Light data will be ignored
while inotifywait -e modify /tmp/sensor.log; do
# Read the last line that was added to the file and get the orientation
ORIENTATION=$(tail -n 1 /tmp/sensor.log | grep 'orientation' | grep -oE '[^ ]+$')
# Set the actions to be taken for each possible orientation
case "$ORIENTATION" in
right-up)
xrandr --output DSI-1 --rotate right && xinput set-prop "FTSC1000:00 2808:1015" 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1;;
bottom-up)
xrandr --output DSI-1 --rotate inverted && xinput set-prop "FTSC1000:00 2808:1015" 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1;;
normal)
xrandr --output DSI-1 --rotate normal && xinput set-prop "FTSC1000:00 2808:1015" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1;;
left-up)
xrandr --output DSI-1 --rotate left && xinput set-prop "FTSC1000:00 2808:1015" 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1;;
esac
xinput disable "FTSC1000:00 2808:1015" && xinput enable "FTSC1000:00 2808:1015"
#killall caja
done
Problème : en mode ordi, j'aimerais qu'il ne tourne pas. Y a-t-il un moyen de modifier le script pour qu'il ne s'active que quand il détecte que le clavier est débranché ?
Question bonus : la rotation de l'écran provoque un bug d'affichage : une bande de l'écran à droite (d'épaisseur = largeur - hauteur de l'écran) ne se comporte pas correctement. Comment redémarrer l'affichage en une ligne de commande sous Mate ?
Merci d'avance
Dernière modification par 321guyver (Le 21/11/2021, à 12:01)
Ce serait sans doute l'une des plus grandes opportunités ratées de notre siècle si le logiciel libre ne servait à libérer que du code : http://donnons.org/, http://www.agoravox.fr/, http://www.couchsurfing.org/, http://esperanto-france.org/, http://www.mouvement-zeitgeist.fr/, https://monnaie-libre.fr/
Hors ligne
#2 Le 21/11/2021, à 14:08
- Watael
Re : Editer un script pour ajouter une condition / relancer le GUI.
je vérifierais plutôt l'écran connecté (xrandr --listmonitors, qui devrait ne pas être le même sur un PC et sur une tablette), si ?
sinon xinput --list devrait t'aider.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 22/11/2021, à 06:06
- 321guyver
Re : Editer un script pour ajouter une condition / relancer le GUI.
Bonjour,
merci de ta réponse.
avec clavier :
~$ xrandr --listmonitors
Monitors: 1
0: +*DSI-1 1280/339x800/212+0+0 DSI-1
Sans clavier : idem
~$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ HTX USB HID Device HTX HID Device Consumer Control id=13 [slave pointer (2)]
⎜ ↳ HTX USB HID Device HTX HID Device Mouse id=17 [slave pointer (2)]
⎜ ↳ HTX USB HID Device HTX HID Device Touchpad id=19 [slave pointer (2)]
⎜ ↳ FTSC1000:00 2808:1015 id=9 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ FTSC1000:00 2808:1015 UNKNOWN id=10 [slave keyboard (3)]
↳ gpio-keys id=11 [slave keyboard (3)]
↳ gpio-keys id=12 [slave keyboard (3)]
↳ HTX USB HID Device HTX HID Device Keyboard id=15 [slave keyboard (3)]
↳ HTX USB HID Device HTX HID Device System Control id=16 [slave keyboard (3)]
↳ HTX USB HID Device HTX HID Device Wireless Radio Control id=18 [slave keyboard (3)]
Je dirais que mon clavier s'appelle HTX USB HID Device. C'est aussi comme ça qu'Onboard l'appelle. Au passage, la dernière ligne parle de radio control : devrais-je pouvoir contrôler la tablette à distance avec le clavier détaché ?
Quoi qu'il en soit, je n'ai aucune idée de la syntaxe à employer dans le script : if "HTX USB Device"=no then faire la suite...
Dernière modification par 321guyver (Le 22/11/2021, à 06:07)
Ce serait sans doute l'une des plus grandes opportunités ratées de notre siècle si le logiciel libre ne servait à libérer que du code : http://donnons.org/, http://www.agoravox.fr/, http://www.couchsurfing.org/, http://esperanto-france.org/, http://www.mouvement-zeitgeist.fr/, https://monnaie-libre.fr/
Hors ligne
#4 Le 22/11/2021, à 06:31
- Watael
Re : Editer un script pour ajouter une condition / relancer le GUI.
tu ne peux pas demander d'afficher la liste des moniteurs pour savoir si ton clavier est branché, ou pas !
j'avais proposé xrandr pensant que le script ne s'exécutait pas sur la même machine, et donc ne proposait pas la même connectique écran.
ce genre d'événement (clavier branché/débranché) se gère par udev. cf. wiki Ubuntu - udev
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne