Gnome scheint sehr gut für Touch-Geräte geeignet zu sein. Gibt es eine Möglichkeit, den Bildschirm automatisch zu drehen, wenn ich den Laptop/das Tablet umdrehe?
Antwort1
Bearbeiten: Ich weiß, dass dies Ihre Frage nicht direkt beantwortet, da wir unterschiedliche Computer haben und Sie an Gnome interessiert sind, aber ich wollte dies irgendwo posten, um anderen zu helfen.
Das Folgende hat bei mir für Ubuntu 16.10 (Unity) auf einem Spectre x360 (Kaby Lake) funktioniert. Ich vermute, dass eine ähnliche Vorgehensweise auch bei anderen Laptops funktionieren sollte.
Installieren Sie wie in der Antwort von @Yalokly iio-sensor-proxy
:
sudo apt-get install iio-sensor-proxy
Das kann eine ziemliche Herausforderung sein, bis es funktioniert. Sie wissen, dass es funktioniert, wenn beim Ausführen monitor-sensor
beim Drehen Ihres Geräts etwas passiert.Hierist das Repo, in dem Sie möglicherweise Informationen zur Fehlerbehebung finden. Ich hatte einige Probleme, es zum Laufen zu bringen. Das Aktualisieren meines Kernels von 4.8 auf 4.10 hat bei mir funktioniert. Suchen Sie online nach einem Tutorial. Wie viele andere habe ich den Fehler, dass die Sensorüberwachung nur funktioniert, nachdem der Computer mindestens einmal angehalten und wieder aufgenommen wurde.
Unity kann die automatische Rotation und den Tablet-Modus nicht selbst durchführen. Ich habe Skripte ausHierUndHierso dass:
- Bildschirm dreht sich automatisch
- Tastatur und Trackpad funktionieren nur bei normaler Ausrichtung des Laptops; in den anderen drei Ausrichtungen sind sie deaktiviert
- Der Unity Launcher befindet sich unten für Hochformat und links für Querformat
- Das
onboard
Programm wird in den drei „Tablet“-Ausrichtungen gestartet und für die „Laptop“-Ausrichtung beendet (Extra: Ich fand es hilfreich, das automatische Popup im Textmodus in den integrierten Einstellungen zu aktivieren).
Hier ist das Skript:
#!/bin/sh
# IH: this script is taken from a combo of:
# https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu
# https://askubuntu.com/questions/757900/hp-spectre-x360-disable-touchpad-in-tablet-mode-ubuntu-15-10
# 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 eDP-1 --rotate normal
gsettings set com.canonical.Unity.Launcher launcher-position Left
xinput set-int-prop 12 "Device Enabled" 8 1 #Enable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 1 #Enable Pad
killall onboard
;;
bottom-up)
xrandr --output eDP-1 --rotate inverted
gsettings set com.canonical.Unity.Launcher launcher-position Left
xinput set-int-prop 12 "Device Enabled" 8 0 #Disable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 0 #Disable Pad
onboard &
;;
right-up)
xrandr --output eDP-1 --rotate right
gsettings set com.canonical.Unity.Launcher launcher-position Bottom
xinput set-int-prop 12 "Device Enabled" 8 0 #Disable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 0 #Disable Pad
onboard &
;;
left-up)
xrandr --output eDP-1 --rotate left
gsettings set com.canonical.Unity.Launcher launcher-position Bottom
xinput set-int-prop 12 "Device Enabled" 8 0 #Disable Keyboard
xinput set-int-prop 13 "Device Enabled" 8 0 #Disable Pad
onboard &
;;
esac
done
Hinweis: Mein Bildschirm heißt eDP-1
, Ihrer kann anders heißen. Führen Sie es aus, xrandr
um den Namen herauszufinden, und ändern Sie die vier Instanzen im obigen Skript.
Speichern Sie dies irgendwo als auto-rotate.sh
, machen Sie es ausführbar ( chmod a+x auto-rotate.sh
) und fügen Sie es hinzu zuStartup-Anwendungen.
Antwort2
Diese Softwaresoll auf vielen 2-in-1-Geräten funktionieren. Sie müssen jedoch den neuesten Kernel und Gnome ausführen.
Antwort3
Ich habe den Code von @Ian Hincks verwendet, aber ich habe einen kleinen Vorschlag, wie ich ihn nützlicher machen kann. Ich habe einen Dell Inspiron 13 der 7000-Serie und dieser Computer hat einen Lichtsensor, um die Helligkeit der Hintergrundbeleuchtung auszugleichen. Ich musste den Aufbau der „Orientierungs“-Zeile ändern, da die Änderungen des Lichtsensors schnell erfolgen und die erfasste Orientierung verfälschen. Dann erhalte ich drei Lichtänderungen durch eine Orientierungszeile. Wenn ich nur eine Zeile des Protokolls erfasse, verliere ich die Orientierungszeile. Aus diesem Grund habe ich die Protokollerfassung auf 4 Zeilen erhöht und den Grep-Regex geändert, um die letzte Orientierung zu erfassen. Dann lautet die neue ORIENTIERUNGSZeile:
ORIENTATION=$(tail -n 4 sensor.log | grep 'orientation' | grep -oEm 1 '[^ ]+$')
Vielen Dank @Ian Hincks für Ihren Code!
Antwort4
Ich benutzeautomatisch drehen
Es kann den Bildschirm und den Digitalisierer manuell oder automatisch drehen. Es besteht die Möglichkeit, den Systemd-Daemon im Hintergrund laufen zu lassen.