использование xinput для получения состояния устройства

У меня есть простой скрипт, чтобы повернуть мою клавиатуру с помощью xinput. Как я могу получить текущее состояние устройства (включено или отключено), чтобы при запуске скрипта мне не нужно было указывать вкл. / Выкл., Он просто меняет состояние?

(предупреждение – это может выключить клавиатуру, осторожно обращаться с ней)

#!/bin/bash case "$1" in on) export DISPLAY=:0 xinput set-prop 14 "Device Enabled" 1 killall -q onboard ;; off) onboard &> /dev/null 2>&1 export DISPLAY=:0 xinput set-prop 14 "Device Enabled" 0 ;; esac 

теперь я запускаю: ./my_keyboard on если клавиатура выключена. Я хотел бы просто запустить ./my_keyboard и изменить его состояние. В документах xinput ничего не происходит (состояние запроса не имеет свойства).

2 Solutions collect form web for “использование xinput для получения состояния устройства”

Чтобы прямо ответить на ваш вопрос: вы можете проанализировать вывод этой команды, чтобы получить состояние устройства:

 xinput list-props $DEVICE_NAME_OR_ID 

Я думаю, что идентификатор устройства может отличаться, поэтому я рекомендую использовать его. Я не уверен в этом.

Я написал небольшой скрипт для переключения моей сенсорной панели:

 #!/bin/bash DEVICE='SynPS/2 Synaptics TouchPad' enabled=$(xinput list-props "$DEVICE" | awk '/^\tDevice Enabled \([0-9]+\):\t[01]/ {print $NF}') case $enabled in 0) xinput enable "$DEVICE" echo "$DEVICE enabled" ;; 1) xinput disable "$DEVICE" echo "$DEVICE disabled" ;; *) echo xinput list --name-only ;; esac 

Ниже приведена функция переключения «USB-клавиатуры»,

 function toggle-keyboard() { DEVICE="USB keyboard" DEVID=`xinput list | grep -i $DEVICE | head -1 | cut -f2 | grep -oE '[[:digit:]]+'` STATE=`xinput list-props $DEVID | grep "Device Enabled" | cut -d$'\t' -f3 | tr -d '\n'` [ $STATE -eq 1 ] && STATE=0 || STATE=1 xinput set-prop $DEVID "Device Enabled" $STATE [ $# -gt 1 ] && $(echo Changing \"$DEVICE\"State to $STATE) }; declare -fx toggle-keyboard 

Использование: кнопочная клавиатура

  • Как я могу найти и редактировать входные классы, о которых сообщает «xinput list --long»,
  • xinput - Ctrl + <Left> неправильно, если сопоставление истории-поиска-назад
  • одновременно управлять несколькими окнами
  • xinput не распознает свойства на Fedora 25
  • Установите отображение кнопок тачпада с помощью файлов xorg
  • Скрыть отдельный указательный указатель (из-за мерцания) в KDE в настройке двойного указателя с сенсорным экраном
  • Калибровка сенсорного экрана для приложений SDL?
  • Предотвращение событий с несколькими щелчками мыши
  • Изменение поведения ключей-модификаторов по всей системе
  • Как изменить ускорение мыши в X на постоянной основе?
  • Выделяются ли какие-либо события при обнаружении близости стилуса?
  • Linux и Unix - лучшая ОС в мире.