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

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

Adquiri recentemente um notebook conversível Lenovo Yoga 3 de 11 ". Ele funciona bem pronto para uso com Ubuntu Gnome LTS 16.04.2 - WiFi, Bluetooth, até suspende e retoma o trabalho sem problemas até o momento.

Percebi que o Gnome 3 ainda permite que a tela gire automaticamente com base nos sensores de rotação integrados. O Yoga 3 11" oferece sensores de rotação iio-sensor-proxyque já estão instalados por padrão no Ubuntu Gnome. Acontece que a orientação relatada por iio-sensor-proxyparece estar errada em 90°.

Tela de rotação automática no Dell 13 7000 com 15.04 (Gnome)tem uma solução em termos de um script de shell personalizado que controla a rotação da tela. Prefiro não usar esta solução, pois ela desativa o botão "desativar rotação da tela" no Gnome Shell.

Eu já fiz algumas pesquisas e descobri que isso iio-sensor-proxydeveria causar udevo acionamento de um evento que é então usado pelo Gnome 3 para definir a orientação da tela via xrandr. No entanto, não consigo encontrar uma maneira de dizer udevao Gnome 3 que o acelerômetro está montado em uma orientação diferente da tela, o que exige que as direções sejam traduzidas entre elas.

Então, a questão é: como isso pode ser feito? O remapeamento de orientação deve ser possível no iio-sensor-proxy, udevou no Gnome 3, e na verdade não me importo muito onde isso é feito. Parece que não encontro nenhum arquivo de configuração que possa alterar facilmente para conseguir o que preciso.

Como solução alternativa, por enquanto estou usando o script da pergunta Ask ubuntu vinculada acima, com modificações para explicar o problema de exibição/acelerômetro desalinhado. Para que isso funcione, tenho que desabilitar a rotação automática da 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 meio que anula o propósito da configuração de rotação da tela do Gnome 3 .

Responder1

Veja a resposta de Krzysztof Stasiak para a teoria.

Na prática, minha máquina - um netbook 2s one mix one - por padrão tem uma tela girada 90 graus no sentido anti-horário.

Pelo que entendi, por padrão - toda máquina que não possui substituições possui uma matriz de ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, 1

Colocar o seguinte em /etc/udev/hwdb.d/60-sensor.hwdb corrigiu meu caso:

sensor:modalias:*
  ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

Responder2

DeSite GitLab iio-sensor-proxy 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 computada corresponda à da tela.

iio-sensor-proxylê essas informações da ACCEL_MOUNT_MATRIXpropriedade udev do dispositivo. Veja 60-sensor.hwdbpara detalhes.

informação relacionada