Как использовать libinput вместо xinput?

Вы путаете значения минут и часов в своих заданиях crontab. Из-за этой проблемы первые три задания могут не работать.

Например:

3 33 * * * = 3 минуты 33 часа -> Не работает!

5] 33 3 * * * = 33 минуты 3 часа -> Измените это так.

3
задан 18 February 2018 в 16:44

3 ответа

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

$ sudo evtest --grab /dev/input/event4 >/dev/null

Вы должны оставить эту программу все время.

Более трудным способом отключения устройства является добавление для него правила udev, которые устанавливают ID_INPUT в пустые, так что libinput будет игнорировать его. Я не пробовал следующее, поэтому используйте его как руководство для исследования, а не окончательное решение.

Сначала перечислите информацию udev для устройства событий, которое является клавиатурой, например:

[ f2]

Теперь вам нужно найти то, что однозначно идентифицирует ваше устройство. Обычно это идентификатор поставщика и идентификатор продукта (как в ID_SERIAL выше). Префикс E: означает, что эта переменная задана в среде udev, поэтому в правиле udev вы должны сказать, что хотите сопоставить ENV{ID_SERIAL}=="05f3_0007".

Однако для вашего ноутбука вам, вероятно, придется найти что-то еще, чтобы соответствовать. Вы можете искать выше дерево устройств, чтобы найти родителя с атрибутом, который легче сопоставить:

$ udevadm info -a /dev/input/event4
...
looking at parent device '/devices/pci0000:00/.../input/input4':
  KERNELS=="input4"
  SUBSYSTEMS=="input"
  ATTRS{name}=="HID 05f3:0007"
  ...

Итак, вместо правила udev, совпадающего с ID_SERIAL, вы можете сопоставлять ATTRS{name}=="HID 05f3:0007" вместо. В вашем случае я ожидал бы что-то вроде ATTRS{name}=="AT Translated Set 2 keyboard".

После того, как вы нашли подходящее совпадение, создайте свой собственный файл /etc/udev/rules.d/99-my.rules (начните с 99, чтобы сделать свое правило последним) с вашим правилом переопределения для сброса значение ID_INPUT должно быть пустым. Строго придерживайтесь формата этого файла. Обратите внимание, что все условия сравниваются с ==, кроме последнего, который является назначением с одним =.

ACTION=="add|change", ENV{ID_SERIAL}=="05f3_0007", ENV{ID_INPUT}=""

или, более вероятно, для вас:

ACTION=="add|change", ATTRS{name}=="AT Translated Set 2 keyboard", ENV{ID_INPUT}=""
[d11 ] Обычно изменение файла должно быть замечено автоматически udev, но если не делать sudo udevadm control --reload. Затем вы можете попытаться вызвать изменение устройства:

$ sudo udevadm trigger --action=change /dev/input/event4

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

Вы можете контролировать, что udev делает с udevadm monitor.

0
ответ дан 22 May 2018 в 13:02
  • 1
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 2
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 3
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 4
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 5
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 6
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 7
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 8
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 9
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 10
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 11
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 12
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 13
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 14
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 15
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 16
    Спасибо за ваш ответ, meuh. Я уже новичок в первом предложении, и он работает. Но я предпочел бы второй вариант, который кажется намного чище. К сожалению, это не сработало. Но у меня есть два вопроса: – user 25 February 2018 в 23:42
  • 17
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 18
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 19
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 20
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 21
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 22
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 23
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 24
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 25
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 26
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 27
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 28
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 29
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 30
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 31
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 32
    1.) Что вы имеете в виду «Строго придерживайтесь формата этого файла.»? – user 25 February 2018 в 23:47
  • 33
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 34
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 35
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 36
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 37
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 38
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 39
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 40
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 41
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 42
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 43
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 44
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 45
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 46
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 47
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 48
    2.) С помощью udevadm info -a больше нет ID_INPUT=1. Могу ли я установить SUBSYSTEMS=="input" пустым с SUBSYSTEMS=""? – user 25 February 2018 в 23:48
  • 49
    Под "строгим" Я имею в виду не использовать вкладки или разделять длинные строки, будьте осторожны, чтобы использовать правильные цитаты ascii и т. Д., Поскольку udev очень ограничивает то, что он считает правильным. Поскольку вы просто хотите, чтобы клавиатура игнорировалась, вы, вероятно, можете установить множество других значений в "", например. ID_INPUT_KEYBOARD и т. д. – meuh 26 February 2018 в 00:40
  • 50
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 51
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 52
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 53
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 54
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 55
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 56
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 57
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 58
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 59
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 60
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 61
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 62
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 63
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 64
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10
  • 65
    Извините за поздний ответ, но второй ответ сработал очень хорошо, попробовав несколько :-) (я на самом деле не помню точно, что я изменил ...) – user 28 April 2018 в 17:10

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

$ sudo evtest --grab /dev/input/event4 >/dev/null

Вы должны оставить эту программу все время.

Более трудным способом отключения устройства является добавление для него правила udev, которые устанавливают ID_INPUT в пустые, так что libinput будет игнорировать его. Я не пробовал следующее, поэтому используйте его как руководство для исследования, а не окончательное решение.

Сначала перечислите информацию udev для устройства событий, которое является клавиатурой, например:

$ udevadm info /dev/input/event4 ... E: ID_INPUT=1 E: ID_INPUT_KEY=1 E: ID_INPUT_KEYBOARD=1 E: ID_SERIAL=05f3_0007

Теперь вам нужно найти то, что однозначно идентифицирует ваше устройство. Обычно это идентификатор поставщика и идентификатор продукта (как в ID_SERIAL выше). Префикс E: означает, что эта переменная задана в среде udev, поэтому в правиле udev вы должны сказать, что хотите сопоставить ENV{ID_SERIAL}=="05f3_0007".

Однако для вашего ноутбука вам, вероятно, придется найти что-то еще, чтобы соответствовать. Вы можете искать выше дерево устройств, чтобы найти родителя с атрибутом, который легче сопоставить:

$ udevadm info -a /dev/input/event4 ... looking at parent device '/devices/pci0000:00/.../input/input4': KERNELS=="input4" SUBSYSTEMS=="input" ATTRS{name}=="HID 05f3:0007" ...

Итак, вместо правила udev, совпадающего с ID_SERIAL, вы можете сопоставлять ATTRS{name}=="HID 05f3:0007" вместо. В вашем случае я ожидал бы что-то вроде ATTRS{name}=="AT Translated Set 2 keyboard".

После того, как вы нашли подходящее совпадение, создайте свой собственный файл /etc/udev/rules.d/99-my.rules (начните с 99, чтобы сделать свое правило последним) с вашим правилом переопределения для сброса значение ID_INPUT должно быть пустым. Строго придерживайтесь формата этого файла. Обратите внимание, что все условия сравниваются с ==, кроме последнего, который является назначением с одним =.

ACTION=="add|change", ENV{ID_SERIAL}=="05f3_0007", ENV{ID_INPUT}=""

или, более вероятно, для вас:

ACTION=="add|change", ATTRS{name}=="AT Translated Set 2 keyboard", ENV{ID_INPUT}=""

Обычно изменение файла должно быть замечено автоматически udev, но если не делать sudo udevadm control --reload. Затем вы можете попытаться вызвать изменение устройства:

$ sudo udevadm trigger --action=change /dev/input/event4

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

Вы можете контролировать, что udev делает с udevadm monitor.

0
ответ дан 17 July 2018 в 20:34

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

$ sudo evtest --grab /dev/input/event4 >/dev/null

Вы должны оставить эту программу все время.

Более трудным способом отключения устройства является добавление для него правила udev, которые устанавливают ID_INPUT в пустые, так что libinput будет игнорировать его. Я не пробовал следующее, поэтому используйте его как руководство для исследования, а не окончательное решение.

Сначала перечислите информацию udev для устройства событий, которое является клавиатурой, например:

$ udevadm info /dev/input/event4 ... E: ID_INPUT=1 E: ID_INPUT_KEY=1 E: ID_INPUT_KEYBOARD=1 E: ID_SERIAL=05f3_0007

Теперь вам нужно найти то, что однозначно идентифицирует ваше устройство. Обычно это идентификатор поставщика и идентификатор продукта (как в ID_SERIAL выше). Префикс E: означает, что эта переменная задана в среде udev, поэтому в правиле udev вы должны сказать, что хотите сопоставить ENV{ID_SERIAL}=="05f3_0007".

Однако для вашего ноутбука вам, вероятно, придется найти что-то еще, чтобы соответствовать. Вы можете искать выше дерево устройств, чтобы найти родителя с атрибутом, который легче сопоставить:

$ udevadm info -a /dev/input/event4 ... looking at parent device '/devices/pci0000:00/.../input/input4': KERNELS=="input4" SUBSYSTEMS=="input" ATTRS{name}=="HID 05f3:0007" ...

Итак, вместо правила udev, совпадающего с ID_SERIAL, вы можете сопоставлять ATTRS{name}=="HID 05f3:0007" вместо. В вашем случае я ожидал бы что-то вроде ATTRS{name}=="AT Translated Set 2 keyboard".

После того, как вы нашли подходящее совпадение, создайте свой собственный файл /etc/udev/rules.d/99-my.rules (начните с 99, чтобы сделать свое правило последним) с вашим правилом переопределения для сброса значение ID_INPUT должно быть пустым. Строго придерживайтесь формата этого файла. Обратите внимание, что все условия сравниваются с ==, кроме последнего, который является назначением с одним =.

ACTION=="add|change", ENV{ID_SERIAL}=="05f3_0007", ENV{ID_INPUT}=""

или, более вероятно, для вас:

ACTION=="add|change", ATTRS{name}=="AT Translated Set 2 keyboard", ENV{ID_INPUT}=""

Обычно изменение файла должно быть замечено автоматически udev, но если не делать sudo udevadm control --reload. Затем вы можете попытаться вызвать изменение устройства:

$ sudo udevadm trigger --action=change /dev/input/event4

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

Вы можете контролировать, что udev делает с udevadm monitor.

0
ответ дан 23 July 2018 в 21:12

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

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