Comment puis-je faire pivoter mon écran de la manière la plus simple?

54

Je suis l'heureux propriétaire d'un moniteur pivot, lequel écran peut être pivoté (physiquement). Quel est le moyen le plus simple de faire tourner mon écran lorsque je tourne mon moniteur?

Pour le moment, je lance d'abord l'application "Displays", puis modifie les paramètres et confirme. Mais c’est en fait une procédure laborieuse, car je souhaite changer d’orientation quelques fois par minute.

Y a-t-il un indicateur pour cela ou un équivalent? Puis-je définir un raccourci clavier pour lancer une commande dédiée? En fait, je pense à quelque chose de similaire au programme Windows iRotate .

Agmenor
la source

Réponses:

94

Allez dans Clavier -> Raccourcis, sélectionnez "Raccourcis personnalisés" et appuyez sur "+" pour ajouter un nouveau raccourci.

"Nom" est un nom descriptif pour l'action ("Rotate monitor"). Dans "Commande", tapez la commande personnalisée à exécuter lorsque le raccourci est activé.

Une fois que le raccourci est dans la liste, sélectionnez sa ligne, appuyez sur Entrée, puis sur la combinaison de touches de votre choix pour activer le raccourci. En cas de conflit, le gestionnaire de raccourcis vous le dira et vous pourrez choisir une combinaison différente.

Vous pouvez avoir un raccourci pour activer l'affichage pivoté et un autre pour le ramener en position verticale. Vous pouvez même, si vous en savez assez, écrire une commande qui maintient l’état et permute simplement entre verticalité et rotation.

Maintenant, en ce qui concerne la commande que vous devez utiliser, c'est probablement xrandr:

xrandr --output HDMI1 --rotate left

xrandr --output HDMI1 --rotate normal

Le paramètre de sortie dépend du port auquel votre moniteur est branché. Pour voir ce que vous avez actuellement, tapez:

xrandr -q

Le mien dit:

Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 309mm x 174mm
   1366x768       60.0*+
   1360x768       59.8     60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA2 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)

Dans ce cas, mon --putput serait LVDS1, car tous les autres sont déconnectés.

roadmr
la source
2
C'est excellent.
Agmenor
Je suis nouveau sur Linux et j'ai essayé de le configurer, mais lorsque j'utilise la commande, rien ne se passe. Dois-je configurer quelque chose d'autre pour que mes raccourcis clavier personnalisés fonctionnent? Les commandes intégrées fonctionnent, mais pas les commandes personnalisées que j'ai créées. J'utilise Ubuntu 14.04. J'ai suivi les instructions et écrit ce qui suit dans la ligne de commande. xrandr --output HDMI1 --rotate left J'ai utilisé ctrl + left comme raccourci. Lorsque j'utilise cette commande dans le terminal, tout fonctionne très bien. Juste pas avec le raccourci clavier.
Nelsond
@nelsond avez-vous vérifié que vous utilisez HDMI1 avec xrandr -q?
Elder Geek
11
Hé, cela xrandr -o rightfonctionne aussi et n'a pas besoin de spécifier la cible actuelle
whitenoisedb
J'ai eu output LVDS1 not found;et output HTMI1 not found;grâce au commentaire de @ whitenoisedb que j'ai simplement utilisé xrandr -o normal, sans spécifier l' --outputargument pour remettre l'écran dans la direction normale.
Paul Rougieux le
16

Fonctionne très bien avec

xrandr --output LVDS1 --rotate left
xrandr --output LVDS1 --rotate right
xrandr --output LVDS1 --rotate inverted
xrandr --output LVDS1 --rotate normal
Vergadin Le Nain
la source
Existe-t-il une alternative qui ne
puisse
solution parfaite
Waseem
5

Voici un bel exemple sur la façon de le faire en fonction de l'entrée du capteur: https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu

Donc, fondamentalement, essayez ce qui précède pour identifier l’écran que vous souhaitez voir pivoté. Selon le modèle de moniteur, il peut y avoir un capteur qui envoie un signal?

Cela fonctionne bien pour mon Lenovo Yoga 2 11 avec capteur de rotation intégré et déplace également le dock Unity.

Le scénario:

#!/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
> sensor.log

# Launch monitor-sensor and store the output in a variable that can be parsed by the rest of the script
monitor-sensor >> 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 sensor.log; do
# Read the last line that was added to the file and get the orientation
ORIENTATION=$(tail -n 1 sensor.log | grep 'orientation' | grep -oE '[^ ]+$')

# Set the actions to be taken for each possible orientation
case "$ORIENTATION" in
normal)
xrandr --output eDP1 --rotate normal && gsettings set com.canonical.Unity.Launcher launcher-position Left ;;
bottom-up)
xrandr --output eDP1 --rotate inverted && gsettings set com.canonical.Unity.Launcher launcher-position Left ;;
right-up)
xrandr --output eDP1 --rotate right && gsettings set com.canonical.Unity.Launcher launcher-position Bottom ;;
left-up)
xrandr --output eDP1 --rotate left && gsettings set com.canonical.Unity.Launcher launcher-position Bottom ;;
esac
done

et prérequis pour les capteurs:

sudo apt install iio-sensor-proxy inotify-tools
Vincent Gerris
la source
monitor-sensorne fait aucune sortie. Savez-vous si je peux le configurer? J'ai un CV et des lsmod | grep accspectacleshp_accel 28672 0 lis3lv02d 20480 1 hp_accel
Mina Michael
@MinaMichael, vous rencontrez peut-être un bogue dans le noyau. Regardez ici
JrBenito
Cela fonctionne sur le noyau 4.8, cela peut être un bogue dans les versions ultérieures, car le script que j’utilise n’a jamais fonctionné. Merci de contribuer au rapport de bogue si vous le pouvez ou de créer un nouveau bogue, le cas échéant.
Vincent Gerris
1

J'ai écrit un script shell pour le faire. (Requiert xrandr grep awk)

#!/bin/sh
# invert_screen copyright 20170516 alexx MIT Licence ver 1.0
orientation=$(xrandr -q|grep -v dis|grep connected|awk '{print $4}')
display=$(xrandr -q|grep -v dis|grep connected|awk '{print $1}')
if [ "$orientation" == "inverted" ]; then
   xrandr --output $display --rotate normal
else
   xrandr --output $display --rotate inverted
fi

Si vous aimez les one-liners:

[ "$(xrandr -q|grep -v dis|grep con|awk '{print $4}')" == 'inverted' ] && xrandr -o normal || xrandr -o inverted
Alexx Roche
la source
1
Pour moi c'est au $5lieu de $4.
Nicolai
1
Avec xrandr --version 1.5.0 $ 5 travaille pour moi (le danger d'utiliser une sortie texte) [ "$(xrandr -q|grep -v dis|grep con|awk '{print $5}')" != 'inverted' ] && xrandr -o inverted || xrandr -o normalest plus sûr car il est par défaut "normal"
Alexx Roche