Отключите мышь (не сенсорная панель!) в Xorg, в то время как неактивный

Я не уверен, как можно сделать set распечатайте только переменные. Однако путем рассмотрения вывода set, Я смог придумать следующий, который, кажется, захватывает просто переменные:

$ set | grep "^\([[:alnum:]]\|[[:punct:]]\)\+=" 

В основном я ищу строки, которые запускаются с букв, чисел или пунктуации, сопровождаемой "=". От вывода, который я видел, это захватывает все переменные; однако, я сомневаюсь, что это очень портативно.

Если, как Ваш заголовок предполагает, Вы хотите вычесть из этого списка переменные, которые экспортируются и таким образом получают список неэкспортируемых переменных, то Вы могли сделать что-то вроде этого

$ set | grep "^\([[:alnum:]]\|[[:punct:]]\)\+=" | sort > ./setvars && env | sort | comm -23 ./setvars - 

Для разрушения этого немного вот то, что это делает:

  1. set | grep "^\([[:alnum:]]\|[[:punct:]]\)\+=" | sort > ./setvars : Это, надо надеяться, получает все переменные (как обсуждено прежде), сортирует их и засовывает результат в файл.
  2. && env | sort: После того, как предыдущая команда завершена, мы собираемся звонить env и вид его вывод.
  3. | comm -23 ./setvars -: Наконец, мы передаем отсортированный вывод по каналу env в comm и используйте -23 опция распечатать строки, которые уникальны для первого аргумента, в этом случае строки, уникальные для нашего вывода от набора.

Когда Вы сделаны, Вы могли бы хотеть к очистке временный файл, который она создала с командой rm ./setvars

17
13.04.2011, 22:10
2 ответа

Первая вещь, которую мы должны выполнить, выключает мышь, но только в X. Для этого мы могли использовать xinput.

Мы должны обнаружить устройства ввода данных, которые подключены к компьютеру (к X-серверу):

pbm@tauri ~ $ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ A4Tech USB Mouse                          id=10   [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
     [...]

Устройство, которое мы должны использовать, A4Tech USB Mouse с id=10. Затем мы должны проверить свойства того устройства:

pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
       Device Enabled (121):   1
       [....]

Для выключения устройства, мы должны изменить свойство Device Enabled:

xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

Включать его:

xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1

Следующая вещь состоит в том, чтобы сделать это автоматически... ;) В этом примере мы будем отключать мышь сочетанием клавиш и включать его путем нажатия оставленный + правая кнопка мыши.

Для этого мы могли использовать actkbd - клавиатура (но не только) демон ярлыка, который работает за пределами X-сервера.

Сначала мы должны создать пустой конфигурационный файл для actkbd: touch /etc/actkbd.conf. Следующая вещь состоит в том, чтобы обнаружить устройства, подключенные к компьютеру:

pbm@tauri ~ $ cat /proc/bus/input/devices 
I: Bus=0003 Vendor=046d Product=c312 Version=0110
N: Name="BTC USB Multimedia Keyboard"
P: Phys=usb-0000:00:1d.0-1.6/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/input/input6
U: Uniq=
H: Handlers=kbd event3 
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=09da Product=000a Version=0110
N: Name="A4Tech USB Mouse"
P: Phys=usb-0000:00:1d.0-1.5/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/input/input8
U: Uniq=
H: Handlers=mouse1 event5 
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=343
B: MSC=10

[...]

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

Сначала мы обрабатываем выключение мыши сочетанием клавиш, таким образом, мы должны обнаружить ключевые идентификаторы:

pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event3
Keys: 29+41+42 //we need to press keys that will turn off mouse, 29+41+42 is Ctrl + Shift + `

Когда мы знаем то, что является идентификаторами ключей, мы должны поместить их в файл конфигурации (/etc/actkbd.conf):

29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

Для проверения его, мы должны работать actkbd в режиме демона:

pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D

Таким же образом мы должны обработать, "включают" событие:

  1. Проверьте обработчики устройства мыши
  2. Коды ключа от английского замка left+right использования кнопки мыши actkbd
  3. Поместите его в actkbd.conf
  4. Выполненный actkbd демон для контроля устройства ввода данных мыши

Рабочие демоны могли быть поняты как init сценарий или автоматически выполненный сценарий в среде.

К автоматическому выключению мыши мы могли контролировать устройство ввода данных (cat /dev/input/event5) и выключите его, когда не будет никакого входа...

Я надеюсь, что мое короткое введение поможет Вам... ;)

16
27.01.2020, 19:47
  • 1
    Спасибо за подсказку с actkbd! После регистрации моего вопроса, я уже выяснил для использования xinput, но я не узнал, как я повторно включу мышь путем нажатия кнопок мыши. –  igor 06.12.2010, 12:12
  • 2
    Это - очень хорошо записанный ответ. –  pjc50 15.02.2011, 15:15
  • 3
    Спасибо за ту информацию специально для подсказки с atkkbd –   13.04.2011, 16:29
  • 4
    Вместо того, чтобы использовать - опция опоры набора наряду со свойством “Device Enabled/Disabled”, можно также использовать - включают, и - отключают опции также, например, xinput - включают [устройство], и xinput - отключают [устройство]. –  thebodzio 07.02.2013, 05:38

Вы попробовали "апплет панели Gnome" Получения Указателя?

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

Апплет панели Pointer Capture создает такую область на панели, в которую пользователь может заблокировать указатель, пока не выпущено решительным способом.

Апплет панели Pointer Capture может быть установлен путем щелчка правой кнопкой по строке меню GNOME Desktop / системная панель, выбор Добавляет к Панели, выбор Pointer Capture и нажимая кнопку Add

В случае, если описание из gnome.org не является четким, это создаст область в панели, где, когда мышь входит (или Вы clic), курсор исчезнет и не вновь появится, пока определенное действие не происходит, например, второй щелчок. Походит точно, в чем Вы нуждаетесь?

1
27.01.2020, 19:47
  • 1
    я использовал это, но создал некоторые проблемы. Я не смог использовать Alt + F1 открываться меню приложений. Я не знаю то, что вызвало это. Я - пользователь человечности. –  balki 04.08.2011, 20:17

Теги

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