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-sensor
algo 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:
- A tela gira automaticamente
- O teclado e o trackpad só funcionam quando o laptop está orientado normalmente; desativado nas outras três orientações
- O iniciador do Unity é colocado na parte inferior para orientações retrato e à esquerda para orientações paisagem
- O
onboard
programa é 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 xrandr
para 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.