A entrada da tela sensível ao toque não gira: Lenovo Yoga 13 / Yoga 2 Pro

8

Depois de receber o Lenovo Yoga 13 para o Natal, fiquei satisfeito com o seu desempenho com o Ubuntu. É fácil alterar a orientação da exibição no menu Configurações de exibição ou digitando, por exemplo, xrandr -o inverted no terminal. No entanto, isso não gira a entrada da tela sensível ao toque (ou - menos importante - o touchpad).

Procurei soluções para esse problema e encontrei duas fontes promissoras.
(1) link . A instalação do pacote aqui e a execução dos comandos informados giraram a exibição e a entrada do touchpad (mas não a da tela sensível ao toque). (2) link . Este site recomendou a atualização de um pacote de entrada, que eu não tentei.

    
por user28549 15.01.2014 / 01:06

3 respostas

8

Encontrei uma resposta direta à minha pergunta lendo as informações úteis em Wiki do Ubuntu: X - Transformação de coordenadas de entrada .

Estes comandos podem ser usados para alinhar as rotações dos dispositivos de entrada e a exibição:

  1. O primeiro comando gira a exibição, onde pode ficar à esquerda, direita, normal ou invertida:% xrandr -o <orientation>

  2. remapear o dispositivo de entrada:
    xinput set-prop '<device name>' 'Coordinate Transformation Matrix' <matrix-elements-rowwise>

O segundo comando remapeia o dispositivo de entrada (ou seja, o touchpad ou a tela de toque) em que <matrix-elements-rowwise> é 0 -1 1 1 0 0 0 0 1 , 0 1 0 -1 0 1 0 0 1 , 1 0 0 0 1 0 0 0 1 ou -1 0 1 0 -1 1 0 0 1 ; correspondendo às orientações acima.

Os nomes do touchpad e da tela sensível ao toque podem ser encontrados com xinput list e podem ser desativados totalmente com xinput disable <device-name> . Posteriormente, xinput enable <device-name> irá reativar o dispositivo de entrada.

No meu caso, e provavelmente para outras pessoas com um Yoga 13 (também no Yoga 2 Pro), o touchscreen é chamado ELAN Touchscreen e o touchpad SynPS/2 Synaptics TouchPad .

Assim, coloco um script curto no meu diretório pessoal chamado rotate-inverted.sh com o seguinte conteúdo:

    #!/bin/bash
    # This script rotates the screen and touchscreen input 180 degrees, disables the touchpad, and enables the virtual keyboard
    xrandr -o inverted
    xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
    xinput disable 'SynPS/2 Synaptics TouchPad'
    onboard &

Depois tornei o script executável com

chmod u+x rotate-inverted.sh

e atribuiu o comando ~/rotate-inverted.sh ao atalho de teclado Ctrl + Alt + I em < Configurações do Sistema - > Teclado .

Depois de fazer o logout e entrar novamente, consegui girar o teclado pressionando esse atalho.

Eu fiz o mesmo tipo de coisa para as outras posições de rotação, usando os comandos xinput enable 'SynPS/2 TouchPad' e killall onboard em vez de xinput disable 'SynPS/2 TouchPad' e onboard & para rotate-normal.sh .

Alguns outros neste tópico discutiram a designação de tais scripts para os botões extras no
Yoga - como o botão de bloqueio - bem como executá-los automaticamente ao mudar a posição do Yoga; mas eu não sabia como fazer isso.

    
por user28549 15.01.2014 / 01:51
3

Eu adicionei mais algumas linhas, a segunda execução do script irá voltar ao normal e habilitar o touchpad, testado com o Ideapad 2 Pro. Pela maneira que eu coloquei lançador para o script no painel lateral HowTo: new launcher .

O acelerômetro ainda não é suportado no kernel, mas talvez algo esteja chegando no próximo lançamento.

crie o script /usr/local/bin/rotate-screen.sh

#!/bin/bash
# This script rotates the screen and touchscreen input 180 degrees, disables the touchpad, and enables the virtual keyboard
# And rotates screen back if the touchpad was disabled

isEnabled=$(xinput --list-props 'SynPS/2 Synaptics TouchPad' | awk '/Device Enabled/{print $NF}')

if [ $isEnabled == 1 ] 
then
    echo "Screen is turned upside down"
    xrandr -o inverted
    xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
    xinput disable 'SynPS/2 Synaptics TouchPad'
    # Remove hashtag below if you want pop-up the virtual keyboard  
    # onboard &
else
    echo "Screen is turned back to normal"
    xrandr -o normal
    xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
    xinput enable 'SynPS/2 Synaptics TouchPad'
    # killall onboard 
fi

e dê a ele direitos executáveis:

sudo chmod +x /usr/local/bin/rotate-screen.sh
    
por user267578 10.04.2014 / 21:24
1

O utilitário spin foi projetado para funcionar com o ThinkPad Yogas, de modo que ele lida com informações sobre a caneta e assim por diante, e oferece tudo tipos de controle de orientação (por botão, rotação de tela e acelerômetro). Pode valer a pena tentar.

    
por d3pd 29.04.2015 / 21:38