Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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