Gnome parece muy adecuado para dispositivos táctiles, ¿hay alguna manera de rotar automáticamente la pantalla cuando giro la computadora portátil/tableta?
Respuesta1
Editar: Sé que esto no responde tu pregunta directamente ya que tenemos diferentes computadoras y estás interesado en Gnome, pero quería publicar esto en algún lugar para ayudar a otros.
Lo siguiente funcionó para mí para Ubuntu 16.10 (Unity) en un Spectre x360 (Kaby Lake). Sospecho que un tratamiento similar debería funcionar para otras computadoras portátiles.
Como en la respuesta de @Yalokly, instale iio-sensor-proxy
:
sudo apt-get install iio-sensor-proxy
Esto puede ser una lata de gusanos para empezar a trabajar. Sabes que está funcionando si cuando ejecutas monitor-sensor
suceden cosas cuando giras tu dispositivo.Aquíes el repositorio donde puede encontrar información sobre solución de problemas. Tuve algunos problemas para ponerlo en marcha. Actualizar mi kernel de 4.8 a 4.10 funcionó para mí. Busque un tutorial en línea. Como muchos otros, tengo el error de que el monitoreo del sensor solo funciona después de que la computadora se ha suspendido o reanudado al menos una vez.
Unity no realiza funciones de rotación automática ni modo tableta por sí solo. Combiné guiones deaquíyaquíde modo que:
- La pantalla gira automáticamente
- El teclado y el trackpad solo funcionan cuando la computadora portátil está orientada normalmente; discapacitado en las otras tres orientaciones
- El iniciador de Unity se coloca en la parte inferior para orientaciones verticales y a la izquierda para orientaciones horizontales.
- El
onboard
programa se inicia en las tres orientaciones de 'tableta' y se cierra en la orientación de 'computadora portátil' (extra: me resultó útil habilitar la ventana emergente automática en modo texto en las preferencias integradas)
Aquí está el guión:
#!/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
Nota: Mi pantalla se llama eDP-1
, la tuya puede llamarse de otra manera. Ejecute xrandr
para averiguar el nombre y cambie las cuatro instancias en el script anterior.
Guarde esto en algún lugar como auto-rotate.sh
, hágalo ejecutable ( chmod a+x auto-rotate.sh
) y agréguelo aAplicaciones de inicio.
Respuesta2
Este softwareSe informó que funciona en muchos dispositivos 2 en 1. Pero debes ejecutar el kernel y gnome más recientes.
Respuesta3
He usado el código de @Ian Hincks, pero tengo una pequeña sugerencia para hacerlo útil. Tengo una Dell Inspiron 13 serie 7000 y esta máquina tiene un sensor de luz para equilibrar el brillo de la retroiluminación. Tuve que modificar la construcción de la línea de "orientación", porque los cambios del sensor de luz son rápidos y contaminan la orientación capturada. Luego recibo tres cambios de luz, por una línea de orientación. Si capturo solo una línea del registro, pierdo la línea de orientación. Es por eso que aumenté la captura de registros a 4 líneas y cambié la expresión regular grep para capturar la última orientación. Entonces, la nueva línea de ORIENTACIÓN será:
ORIENTATION=$(tail -n 4 sensor.log | grep 'orientation' | grep -oEm 1 '[^ ]+$')
¡Gracias @Ian Hincks por tu código!
Respuesta4
Estoy usandoauto rotar
Puede rotar la pantalla y el digitalizador de forma manual o automática. Existe una opción para que systemd daemon lo ejecute en segundo plano.