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

4

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

    
por Dean 09.06.2015 / 13:36

3 respostas

1

Este software foi reportado para funcionar em muitos dispositivos 2-em-1. Mas você precisa executar o kernel e o gnome mais recentes.

    
por Yalok Iy 30.08.2015 / 21:23
3

Edit: Eu sei que isso não responde diretamente à sua pergunta, já que temos computadores diferentes e você está interessado no Gnome, mas eu queria postar isso em algum lugar para ajudar os outros.

O seguinte funcionou para mim para o Ubuntu 16.10 (Unity) em um Spectre x360 (Kaby Lake). Eu suspeito que um tratamento similar deve funcionar para outros laptops.

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

sudo apt-get install iio-sensor-proxy

Isso pode ser uma lata de worms para trabalhar. Você sabe que está funcionando se quando você executa monitor-sensor coisas acontecem quando você gira seu dispositivo. Aqui é o repositório onde você pode encontrar algumas informações sobre solução de problemas. Eu tive alguns problemas para começar. Atualizar meu kernel de 4.8 para 4.10 funcionou para mim. Procure por um tutorial online. Como muitos outros, eu tenho o bug em que o monitoramento do sensor só funciona depois que o computador foi suspenso - reiniciado pelo menos uma vez.

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

  1. A tela gira automaticamente
  2. O teclado e o trackpad só funcionam quando o laptop é normalmente orientado; desativado nas outras três orientações
  3. O
  4. lançador Unity é colocado na parte inferior para orientações de retrato e deixado para orientações de paisagem
  5. O programa onboard é iniciado nas três orientações de "tablet" e desativado para a orientação de 'laptop' (extra: achei útil ativar o popup automático no modo de texto nas preferências do onboard)

Aqui está o script:

#!/bin/sh
# IH: this script is taken from a combo of:
# https://linuxappfinder.com/blog/auto_screen_rotation_in_ubuntu
# https://sobrelinux.info/questions/45217/hp-spectre-x360-disable-touchpad-in-tablet-mode-ubuntu-15-10"$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 é chamada eDP-1 , a sua pode ser chamada de algo diferente. Execute xrandr para descobrir o nome e altere as quatro instâncias no script acima.

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

    
por Ian Hincks 04.03.2017 / 21:31
0

Eu usei o código @Ian Hincks, mas tenho uma pequena sugestão para fazer isso útil. Eu tenho um Dell Inspiron 13 7000 series, e esta máquina tem um sensor de luz para equilibrar a luz de fundo brilhante. Eu tive que modificar a construção da linha de "orientação", porque as mudanças do sensor de luz são rápidas e contaminam a orientação capturada. Então eu 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 regex do grep para capturar a última orientação. Então, a nova linha de ORIENTAÇÃO será:

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

Obrigado @Ian Hincks pelo seu código!

    
por triad 18.07.2017 / 14:11