Tela de rotação automática no Dell 13 7000 com 15.04 (Gnome)

Tela de rotação automática no Dell 13 7000 com 15.04 (Gnome)

O Gnome parece muito adequado para dispositivos habilitados para toque. Existe uma maneira de girar automaticamente a tela quando eu viro o laptop/tablet?

Responder1

Editar: sei que isso não responde diretamente à sua pergunta, pois temos computadores diferentes e você está interessado no Gnome, mas gostaria de postar isso em algum lugar para ajudar outras pessoas.

O seguinte funcionou para mim no Ubuntu 16.10 (Unity) em um Spectre x360 (Kaby Lake). Suspeito que um tratamento semelhante deva funcionar para outros laptops.

Como na resposta do @Yalokly, instale iio-sensor-proxy:

sudo apt-get install iio-sensor-proxy

Isso pode ser uma lata de minhocas para começar a funcionar. Você sabe que está funcionando se, ao executar, monitor-sensoralgo acontecer quando você gira o dispositivo.Aquié o repositório onde você pode encontrar algumas informações sobre solução de problemas. Tive alguns problemas para fazê-lo funcionar. Atualizar meu kernel de 4.8 para 4.10 funcionou para mim. Procure um tutorial online. Como muitos outros, tenho o bug em que o monitoramento do sensor só funciona depois que o computador é suspenso e reiniciado pelo menos uma vez.

O Unity não faz rotação automática e modo tablet por conta própria. Combinei scripts deaquieaquipara que:

  1. A tela gira automaticamente
  2. O teclado e o trackpad só funcionam quando o laptop está orientado normalmente; desativado nas outras três orientações
  3. O iniciador do Unity é colocado na parte inferior para orientações retrato e à esquerda para orientações paisagem
  4. O onboardprograma é iniciado nas três orientações de 'tablet' e eliminado na orientação de 'laptop' (extra: achei útil ativar o pop-up automático em modo de texto nas preferências integradas)

Aqui está o roteiro:

#!/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: Minha tela se chama eDP-1, a sua pode ter um nome diferente. Execute xrandrpara descobrir o nome e altere as quatro instâncias no script acima.

Salve isso em algum lugar como auto-rotate.sh, torne-o executável ( chmod a+x auto-rotate.sh) e adicione-o aoAplicativos de inicialização.

Responder2

Este softwarefoi relatado que funciona em muitos dispositivos 2 em 1. Mas você precisa executar o kernel e o gnome mais recentes.

Responder3

Usei o código @Ian Hincks, mas tenho uma pequena sugestão para torná-lo útil. Eu tenho um Dell Inspiron 13 série 7000 e esta máquina possui um sensor de luz para equilibrar o brilho da luz de fundo. Tive que modificar a construção da linha de “orientação”, pois as mudanças no sensor de luz são rápidas e contaminam a orientação capturada. Então recebo três mudanças de luz, por uma linha de orientação. Se eu capturar apenas uma linha do log, perco a linha de orientação. É por isso que aumentei a captura de log para 4 linhas e alterei o grep regex para capturar a última orientação. Então, a nova linha ORIENTATION será:

ORIENTATION=$(tail -n 4 sensor.log | grep 'orientation' | grep -oEm 1 '[^ ]+$')

Obrigado @Ian Hincks pelo seu código!

Responder4

estou a usarauto rotação

Ele pode girar a tela e o digitalizador manualmente ou automaticamente. Existe uma opção para o daemon systemd executá-lo em segundo plano.

informação relacionada