Onde eu tenho que colar um comando “xinput” para que ele execute quando o GNOME é iniciado?

10

No meu Thinkpad, preciso executar algo assim no terminal:

xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Middle Button Emulation" 8 1

para que meus dois botões no meu touchpad imitem o clique do meio do mouse. Agora eu preciso que esta linha seja executada toda vez que eu iniciar o GNOMe ou o X ou qualquer outra coisa, de forma que "simplesmente funcione".

Eu tentei ~ / .xsession ou ~ / .bashrc mas sem sucesso. Devo colocá-lo no GNOME iniciar scripts ou em / etc / X em algum lugar?

Estou usando o Ubuntu 11.10.

    
por michuk 14.11.2011 / 17:04

4 respostas

7

Estou usando o Enlightenment DM, mas isso é relevante para outros DMs / desktops. Eu começo minha sessão usando o xsession, então eu inicialmente coloquei comandos xinput em ~ / .xsession, o que não alterou todas as configurações que eu queria mudar. Apenas alguns deles. Eu esperava todas ou nenhuma alteração, então adicionei um loop de 10 interações à minha .xsession com intervalos de 1 segundo, executando comandos xinput a cada vez e verificando se as configurações foram aplicadas. Para minha surpresa, todas as configurações foram aplicadas após a primeira iteração.

Isto significa que é o seu Mestre que faz algo para sobrescrever suas configurações de xinput e já que o comando que inicia seu DM (E17 no meu caso) é o último em seu arquivo .xsession, este arquivo não é lugar para isso. / p>

Eu adicionei as seguintes linhas no meu ~ / .profile e isso resolveu o problema:

# don't run unless we're being invoked from an xwindows session
if [[ -n ${DISPLAY} ]]; then

  # set your devices names here
  pointer1="IBM TrackPoint"
  pointer2="Lite-On Technology Corp. ThinkPad USB Keyboard with TrackPoint"
  pointer3="Logitech USB Trackball"

  id1=$(xinput | awk -F= "/$pointer1.*pointer/ {print $2}" | cut -f1)
  id2=$(xinput | awk -F= "/$pointer2.*pointer/ {print $2}" | cut -f1)
  id3=$(xinput | awk -F= "/$pointer3.*pointer/ {print $2}" | cut -f1)

  if [[ -n "${id1}" ]]; then
    xinput --set-button-map "${id1}" 1 2 3 4 5 6 7
    xinput set-prop "${id1}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id1}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id1}"  "Evdev Wheel Emulation Button" 2
    xinput set-prop "${id1}"  "Evdev Middle Button Emulation" 0
  fi

  if [[ -n "${id2}" ]]; then
    xinput --set-button-map "${id2}" 1 2 3 4 5 6 7
    xinput set-prop "${id2}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id2}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id2}"  "Evdev Wheel Emulation Button" 2
    xinput set-prop "${id2}"  "Evdev Middle Button Emulation" 0
  fi

  if [[ -n "${id3}" ]]; then
    xinput --set-button-map "${id3}" 1 2 3 4 5 6 7 8 9
    xinput set-prop "${id3}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id3}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id3}"  "Evdev Wheel Emulation Button" 8
    xinput set-prop "${id3}"  "Evdev Middle Button Emulation" 1
  fi
fi

PS. set-int-prop foi preterido em favor de set-prop (man xinput).

Espero que isso ajude alguém.

    
por Marcin Kaminski 16.10.2012 / 19:59
4

Adicione o comando diretamente aos aplicativos de inicialização. No campo de comando.

ou

crie um script simples e adicione o script aos aplicativos de inicialização.

    
por Nick Thom 16.10.2012 / 20:05
3

Crie um arquivo em /etc/X11/Xsession.d/ para ele.

    
por Florian Diesch 14.11.2011 / 18:56
1

Foi assim que eu fiz no Ubuntu 14.04 do terminal:

1) Verifique o nome do seu dispositivo:

xinput list

2) Veja as opções disponíveis para o seu dispositivo:

xinput list-props "Your Device Name"

3) Edite as configurações (para tornar as configurações consistentes após a reinicialização / desligamento, apenas adicione este comando a Startup Applications ):

xinput set-prop "Your Device Name" "Option Name" "Value"

Aqui está um exemplo de comando que usei para ativar arrombamentos bloqueados no meu touchpad:

xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Locked Drags" 1

Para ativar / alterar outra opção, basta procurar nas opções disponíveis do seu dispositivo e brincar com elas até obter o resultado desejado, depois adicionar o comando para Startup Applications e pronto! Espero que ajude! :)

    
por Marco 05.05.2014 / 17:21