Como posso executar um script sh direcionado a configurações do X11 no login? [duplicado]

5

Os controles baseados em gui para a aceleração do mouse não são suficientes para domar meu mouse, então estou corrigindo isso executando:

xinput set-prop 10 "Device Accel Constant Deceleration" 2.9

Este script tem o efeito desejado (todas as vezes) quando executado manualmente a partir do terminal. No entanto, ainda não encontrei uma maneira de executá-lo em cada login. As tentativas de executá-lo através de rc.local ou usando as opções de inicialização de script nas configurações do sistema permaneceram infrutíferas.

Você tem alguma sugestão do que mais eu poderia tentar? Devo modificar os arquivos de configuração do X11 diretamente? Diversas postagens relacionadas a este tópico são desaconselhadas.

    
por Adrian 29.04.2014 / 17:01

2 respostas

0

Uma maneira é usar uma tarefa cron com a diretiva reboot , que será executada na inicialização de todos os sistemas (e reinicialização).

Para fazer isso:

  • Emitir sudo crontab -e para inserir um cron job no crontab do root
  • Em uma nova linha, insira @reboot xinput set-prop 10 "Device Accel Constant Deceleration" 2.9 2>&1 >> /var/log/my_xinput.log

Se o trabalho não estiver em execução, talvez você queira apontar o caminho completo para o comando xinput.

Ao dizer o caminho completo para o comando ( xinput ), quero dizer que o cron precisa saber onde encontrar o executável - script que precisa ser executado. Isso pode ser feito por:

  • apontando cron para o caminho completo do que precisa ser executado, por exemplo, eu tenho um script localizado em ~/bin/myscript.sh ; Para ter certeza de que o cron sabe onde encontrar meu script, devo inserir o caminho completo para o cronjob, que é /home/username/bin/myscript.sh .
  • Ou definindo variáveis de ambiente no arquivo crontab e antes de meu cronjob, como:

SHELL=/bin/sh para especificar qual shell usar PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/username/bin nota a última entrada, etc

Para o seu problema, tente:

/usr/bin/xinput set-prop 10 "Device Accel Constant Deceleration" 2.9

Finalmente, você pode querer verificar esta referência sobre o Cron:

por Stef K 29.04.2014 / 17:49
0

Não tendo sorte com o crontab , consegui que o meu script fosse iniciado em cada login. No entanto, esta é uma solução específica do KDE, então não tenho certeza se é válida para o AskUbuntu.

De qualquer forma, aqui vai a minha solução:

fix_mouse_accel.sh

#!/bin/bash

/usr/bin/xinput set-prop 10 "Device Accel Constant Deceleration" 2.9

Verifique se o arquivo é executável:

chmod 755 fix_mouse_accel.sh

Em seguida, vá para Configurações do sistema > Inicialização e desligamento . Clique em Adicionar Script e aponte para o seu script. Desmarque a caixa de links simbólicos a menos que você queira manter uma cópia local em algum lugar; Pessoalmente eu prefiro que o arquivo "desapareça" nas pastas de configuração do KDE, já que eu não vou mais tocá-lo.

    
por Adrian 30.04.2014 / 11:46