Alterando a maneira como a rotação automática de tela funciona no shell do Gnome

7

Adquiri recentemente um notebook conversível Lenovo Yoga 3 11 ". Funciona com o Ubuntu Gnome LTS 16.04.2 - Wi-Fi, Bluetooth, até mesmo suspende e retoma o trabalho sem problemas até o momento.

Notei que o Gnome 3 permite até mesmo a tela girar automaticamente com base nos sensores de rotação integrados. O Yoga 3 11 "oferece sensores de rotação via iio-sensor-proxy , que já está instalado por padrão no Ubuntu Gnome. Por acaso, a orientação relatada por iio-sensor-proxy parece estar fora de 90 °.

link tem um solução em termos de um script de shell personalizado que lida com a rotação da tela. Eu preferiria não usar essa solução, pois desativa o botão "desativar a rotação da tela" no Gnome Shell.

Eu já fiz alguma pesquisa e descobri que iio-sensor-proxy deveria fazer o udev acionar um evento que é usado pelo Gnome 3 para definir a orientação da tela via xrandr . No entanto, não consigo encontrar uma maneira de dizer ao udev ou ao Gnome 3 que o acelerômetro está montado em uma orientação diferente da tela, o que requer que as direções sejam traduzidas entre elas.

Então, a pergunta é: como isso pode ser feito? O remapeamento de orientação deve ser possível em iio-sensor-proxy , udev ou Gnome 3, e eu realmente não ligo muito para onde isso é feito. Eu não consigo encontrar nenhum arquivo de configuração que eu possa mudar facilmente para conseguir o que eu preciso.

Como uma solução alternativa para o momento, estou usando o script da pergunta do ubuntu relacionada acima, com modificações para explicar o problema de exibição / acelerômetro desalinhado. Para que isso funcione, eu tenho que desabilitar a rotação automática de tela no Gnome 3. Embora esta solução também permita iniciar e matar automaticamente onboard (teclado na tela) dependendo da orientação atual, ela acaba com o propósito da rotação da tela do Gnome 3 configuração.

    
por hoe 26.04.2017 / 19:29

1 resposta

1

De site de iio-sensor-proxy GITHUB Quando o acelerômetro não está montado da mesma forma que a tela, precisamos modificar as leituras do acelerômetro para garantir que a orientação calculada corresponda à da tela um.

iio-sensor-proxy lê essas informações da propriedade ACCEL_MOUNT_MATRIX udev do dispositivo. Veja 60-sensor.hwdb para detalhes.

    
por 09.06.2017 / 11:22