Скрипт для переключения трекпада ноутбука

Проблема была вне описания. Файл .spec содержит команду% defattr, для которой / opt / * установлено право доступа 644 (без выполнения).

2
15.07.2017, 02:08
2 ответа

Странно, что xinputне может сам фильтровать свой вывод. Но у нас есть grep!

xinput --list-props 12 | grep -q 'Device Enabled.*1$' && echo enabled || echo disabled

1
27.01.2020, 22:18

на переключить сенсорную панель, вы можете запустить perl one -лайнер из этого скрипта:

perl -e '$dev="SynPS/2 Synaptics TouchPad"; `xinput list-props $dev` =~ /^.*Device Enabled.+?(\d)$/m ;  $1 ? `xinput --disable $dev` : `xinput --enable $dev`;

короткое расширение:

  • обратные кавычки выполняют команду system/linux -
  • при сопоставлении со строкой, где указано «Устройство включено», регулярное выражение ищет последний числовой символ в этой строке (, который равен 0... для выключения или 1... для включения)
  • /m в регулярном выражении означает :использовать каждую строку из вывода команды как отдельный элемент (в противном случае ^ и $ в регулярном выражении означали бы начало/конец строки, а не строку
  • круглые скобки сохраняют совпадающее число в переменной $1
  • остальное - тернарная операция :"если верно" ? «сделать это» :«другое для этого», что означает, что если $1 равен 0 или 1 -> отключить или включить

(чтобы использовать это, например. Оконный менеджер "i3" :вы должны написать:

bindsym XF86TouchpadToggle exec --no-startup-id perl -e '{`xinput list-props 10` =~ /^.*Device Enabled.+?(\d)$/m and  {$1 ? `xinput --disable 10` : `xinput --enable 10`}} '
0
27.01.2020, 22:18

Теги

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