Как переключить команду нажатием клавиши в Arch Linux с помощью i3
Я нахожу коврик для мыши на своем ноутбуке раздражающим, потому что я часто чищу его рукой, когда я печатаю, поэтому я решил сделать переключатель, чтобы выключить его и снова включить, когда я хочу использовать мышь. По какой-то причине синаптики не поднимают мой коврик для мыши, поэтому я прибегаю к использованию xinput disable 11
11 - это идентификатор моего коврика для мыши. Я пытаюсь использовать bindsym в конфигурации i3, чтобы "m" переключал коврик для мыши. Я сделал скрипт sh для отключения коврика для мыши, но он не включается при повторном нажатии "m". Я решил сделать системную переменную, чтобы определить, включен ли коврик для мыши или нет, но сценарий sh, похоже, не видит его должным образом. На данный момент это мой скрипт под названием "trackpad" в / bin:
#!/bin/bash
if [[ $1 -eq 1 ]]
then
xinput enable 11 && export TRACKPAD=0
else
xinput disable 11 && export TRACKPAD=1
fi
Тогда в моем файле конфигурации i3 у меня есть:
bindsym $mod+m exec trackpad $TRACKPAD
Я не уверен, что это даже лучший способ сделать это, поэтому любые альтернативные предложения будут хороши. Иначе как я могу это исправить? Я довольно новичок в Linux.
1 ответ
xinput
предлагает аргумент list-props
для перечисления всех свойств устройства. По крайней мере, с моей тачпадом, выполняя xinput enable
а также xinput disable
переключает собственность Device Enabled
(0/1). Отслеживание состояния этого свойства позволяет проверить, включено ли устройство в данный момент.
Быстрый и грязный подход к использованию этого для вашей проблемы может быть следующим фрагментом:
#!/bin/bash
if xinput list-props 11 | grep -qE "Device Enabled.*1$"
then
xinput disable 11
else
xinput enable 11
fi
или как простой однострочник:
#!/bin/bash
xinput list-props 11 | grep -qE "Device Enabled.*1$" && xinput disable 11 || xinput enable 11
Как видите, эти сценарии не нуждаются в аргументе для передачи. Простое выполнение переключает состояние устройства.