Rotación automática de pantalla en Dell 13 7000 con 15.04 (Gnome)

Rotación automática de pantalla en Dell 13 7000 con 15.04 (Gnome)

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-sensorsuceden 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:

  1. La pantalla gira automáticamente
  2. El teclado y el trackpad solo funcionan cuando la computadora portátil está orientada normalmente; discapacitado en las otras tres orientaciones
  3. El iniciador de Unity se coloca en la parte inferior para orientaciones verticales y a la izquierda para orientaciones horizontales.
  4. El onboardprograma 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 xrandrpara 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.

información relacionada