Программа для включения и выключения сенсорной панели

У меня есть ThinkPad Edge E520 и я использую Ubuntu 14.04 LTS.

Я хотел бы иметь исполняемый файл на своем рабочем столе, который может легко включать или выключать мою сенсорную панель и TrackPoint:

xinput list
...
⎜   ↳ TPPS/2 IBM TrackPoint                     id=15   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=13   [slave  pointer  (2)]

В результате собственных исследований я создал два файла, один для его включения. и один, чтобы выключить его. Однако я не могу понять, как объединить эти две программы в одну программу, чтобы отключить эти входные данные, если они включены, и наоборот. Я играл с , если , но могу заставить программу всегда включать входы или всегда их выключать.

Вот моя программа для включения входов:

xinput set-prop 15 "Device Enabled" 1
xinput set-prop 13 "Device Enabled" 1

и другая для их отключения:

xinput set-prop 15 "Device Enabled" 0
xinput set-prop 13 "Device Enabled" 0  

Может ли кто-нибудь помочь мне объединить их в одну программу?

Заранее спасибо :)

2
задан 17 April 2015 в 03:26

4 ответа

Я использую другой подход для переключения состояния сенсорной панели: synclient. Вы могли также использовать свои команды xinput вместо этого, но я предпочитаю synclient.

я использую следующий сценарий, присвоенный горячей клавише, для переключения моей сенсорной панели вкл\выкл:

#!/bin/bash
if [ -z "$(synclient | grep TouchpadOff | grep 1)" ]; then
    synclient TouchpadOff=1
else
    synclient TouchpadOff=0
fi

, Как это работает?

При выполнении synclient без любых аргументов, это возвращает список всех настроек и их текущего состояния. Из этого списка сценарий захватывает опцию "TouchpadOff", которая является - кто предположил бы это - 1, если сенсорная панель выключена и 0 elsewise.

Для проверки этого я использовал тест -z переключатель (после пустой строки), объединенный с другим grep, который оценивает к true, если сенсорная панель выключена. В этом случае это снова звонит synclient с аргументом, говоря этому установить опцию на "1", таким образом, отключая сенсорную панель.

Elsewise, сценарий делает противоположное и повторно включает сенсорную панель.

<час>

Примечание, что synclient не хранит настройки постоянно, поэтому если Вы не делаете ничего больше, Ваш toucpad будет всегда включаться на начальной загрузке.

3
ответ дан 17 April 2015 в 13:26

Я сделал немного сценария, который можно попробовать. Выполните его дважды от Терминала, чтобы видеть, может ли это запретить и повторно включить устройство 15. Если это будет работать, то я отредактирую в 13. Тест

0
ответ дан 17 April 2015 в 13:26

Я использую этот сценарий для переключения состояния сенсорной панели.

#!/bin/bash
id=$(xinput | grep -i "TouchPad" | cut -f 2 | cut -d= -f 2)
status=$(xinput --list-props $id | grep "Device Enabled" | cut -f 3)
if [ $status -eq 1 ]; then
    xinput --disable $id
else
    xinput --enable $id
fi
1
ответ дан 17 April 2015 в 13:26

Спасибо Seppi!

Ваш сценарий работал отлично. Я добавил в одной из моих исходных строк, чтобы также позволить/запретить TrackPoint также.

if [ -z "$(synclient | grep TouchpadOff | grep 1)" ]; then
    synclient TouchpadOff=1
    xinput set-prop 15 "Device Enabled" 0
else
    synclient TouchpadOff=0
    xinput set-prop 15 "Device Enabled" 1
fi
0
ответ дан 2 December 2019 в 02:22

Другие вопросы по тегам:

Похожие вопросы: