Ce tutoriel explique comment automatiser la rotation de l'affichage en fonction de l'orientation de l'écran sous Linux. Cette fonctionnalité est supportée nativement pour les versions récentes Gnome mais pas sous KDE plasma. Ce tutoriel propose une solution en attendant que cette fonctionnalité soit supportée sous KDE.
Installation des dépendances
Sous Debian, Ubuntu, Mint:
sudo apt install iio-sensor-proxy
Vérifications
Dans un terminal, on lance la commande :
monitor-sensor
... et on fait pivoter l'écran. On vérifie que la commande détecte bien les changement d'orientation.
Exemple :
(mando@silk) (~) $ monitor-sensor
Waiting for iio-sensor-proxy to appear
+++ iio-sensor-proxy appeared
=== Has accelerometer (orientation: normal)
=== No ambient light sensor
=== No proximity sensor
Accelerometer orientation changed: right-up
Accelerometer orientation changed: normal
Une fois cette vérification faite, on interrompt le script (ctrl+c).
Script
On crée le script /usr/local/bin/auto-screen-rotate.sh et on y copie colle ce script ou la version simplifiée ci-dessous :
#!/bin/sh
# Based on https://gist.github.com/matoken/1c79ee3546e515e0fdb3bc1e55f9a87e#file-auto-screen-rotate-sh
MONITOR=$1
if [ -z $MONITOR ]; then
MONITOR="eDP-1"
fi
monitor-sensor \
| grep --line-buffered "Accelerometer orientation changed" \
| grep --line-buffered -o ": .*" \
| while read -r line; do
line="${line#??}"
if [ "$line" = "normal" ]; then
rotate=normal
elif [ "$line" = "left-up" ]; then
rotate=left
elif [ "$line" = "right-up" ]; then
rotate=right
elif [ "$line" = "bottom-up" ]; then
rotate=inverted
else
echo "Unknown rotation: $line"
continue
fi
xrandr --output "${MONITOR}" --rotate "$rotate"
done
Lancement du script au démarrage de KDE
Ouvrir le panneau de configuration KDE
Aller dans Espace de travail > Démarrage automatique
Cliquer sur Ajouter > Ajouter un script de connexion.