Intereting Posts
получить бесперебойную работу системы на батарее? Объединить содержимое двух разделов в один особый раздел Ограничение пользователя SSH / SCP / SFTP в каталоге Когда и почему вы запускаете /etc/init/failsafe.conf на сервере Ubuntu 12.04? Является ли 32bit еще предпочтительнее 64 бит? Прокси-сервер кэширования IMAP для совместного доступа один IP несколько гостей тот же порт 22 При использовании zsh вызывает расширение истории Разрешение NFS отклонено RuntimeError: вам нужно установить gevent для использования этого рабочего Можно ли предотвратить создание файлов, являющихся общедоступными для чтения? xautolock / ssh-add не может взаимодействовать с ssh-agent при запуске из .xsessionrc Команда для извлечения списка символов в заданном классе символов в текущей локали Последующие вызовы wpa_supplicant fail – не могут подключаться к Wi-Fi Можно ли найти, у какого vim / tmux открыт мой файл?

использование 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 ничего не происходит (состояние запроса не имеет свойства).

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

 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 

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