LINUX.ORG.RU

[Bash] [dmesg] Bugfree скрипт.

 ,


0

1

Запустил скрипт на постоянную орбиту. Если выключаешь мышь, включается тачпад и наоборот.

#!/bin/sh
dmesg | grep "OPTICAL MOUSE" > /dev/null && synclient TouchpadOff=1
while :; do
        dmesg | tail -n 1 | grep "USB disconnect" > /dev/null && synclient TouchpadOff=0
        dmesg | tail -n 3 | grep "OPTICAL MOUSE" > /dev/null && synclient TouchpadOff=1
        sleep 1
done
Вроде, работает. Даже, если запустить ось с выдернутой мышкой. Правильно ли я все делаю? Чтобы, вдруг, скрипт не перестал работать.



Последнее исправление: tsya (всего исправлений: 3)

tsya> dmesg | tail -n 1 | grep «USB disconnect» > /dev/null && synclient TouchpadOff=0
tsya> dmesg | tail -n 3 | grep «OPTICAL MOUSE» > /dev/null && synclient TouchpadOff=1

зачем два раза дергать dmesg, когда можно один

dmesg | tail -n3 | awk '/OPTICAL MOUSE/ {system(«synclient TouchpadOff=1»); exit}; /USB disconnect/ {system(«synclient TouchpadOff=1»); exit}'

sdio ★★★★★
()

> dmesg |
Существует теоретическая вероятность того, что за время работы sleep 1 ядро вдруг выплюнет кучу строк в лог (например, kernel oops, сетевой флуд, и много других причин).

Идеи:
- следить за содержимым /dev/input/by-path/
- каким-либо способом получать у иксов текущий список устройств ввода (xinput?)

AITap ★★★★★
()
Ответ на: комментарий от sdio

Как-то не догадался через авк. Там же можно вызвать системную команду.

tsya
() автор топика
Ответ на: комментарий от AITap

> Существует теоретическая вероятность того, что за время работы sleep 1 ядро вдруг выплюнет кучу строк в лог

Я как раз об этом спрашивал.

tsya
() автор топика
Ответ на: комментарий от AITap

> - каким-либо способом получать у иксов текущий список устройств ввода (xinput?)

Насчет во этого не понял.

tsya
() автор топика
Ответ на: комментарий от AITap

Понял Просто надо было еще установить xinput.

tsya
() автор топика
Ответ на: комментарий от nexeuse

Ладно, забей. Через dmesg ненадежно.
Можно еще и флэшку автомонтировать.

ls /dev/disk/by-id/ | grep "JetFlash" && mount -t vfat /dev/sdb1 /mnt
Но размонтровать придется вручную все равно))) Такие дела.

tsya
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.