Я пытаюсь эмулировать left-mouse-down, когда клавиша Home снижается и left-mouse-up, когда клавиша Home отпускается.
Причиной позади этого являются кнопки моей сенсорной панели, ужасны, и мне нравится использовать точку дорожки (красный сосок) с нажатием левой кнопки мышки для выделения (копия) текст. Вместо того, чтобы использовать кнопку сенсорной панели я хочу использовать 'Домашний' ключ. Я могу эмулировать часть мыши вниз, но я не знаю, как выпустить щелчок, когда 'Домашняя' клавиша отпускается.
Вот то, для чего я имею так. сначала я использую xbindkeys инструмент. Я добавил эту запись в .xbindkeysrc:
"~/bin/mouse-click"
m:0x0 + c:110
щелчок мышью является этим сценарием удара:
#!/bin/bash
xdotool mousedown 1
Проблемой является щелчок, никогда не выпускается так, я должен найти способ обнаружить выпуск 'Дома'. Вот сценарий, который я пытаюсь записать. Комментарии описывают то, что я пытаюсь сделать:
#!/bin/bash
# not sure how to do that:
exit if Home key is in a pressed state (to avoid more mousedown actions)
xdotool mousedown 1
# not sure how to do that: (if Home key is released, release the mouse click)
while xinput query-state <device name> | grep -Flq 'key[9]=up'
xdotool mouseup 1
Таким образом, Это - то, что я пытаюсь выяснить:
Если существует лучший подход для достижения этого, я хотел бы услышать о них.Спасибо!
Править: решением является одна строка: xmodmap-e "код клавиши 115 = Pointer_Button2"
таким образом, теперь моя клавиша Home делает щелчок левой кнопкой, и ведите себя так же, как если бы я поразил щелчок мышью, и я могу удержать ключ в нажатом состоянии, и это выделяется (копируют) как ожидалось.
Я также отобразил свою клавишу End, чтобы быть щелчком средней кнопкой, таким образом, я могу использовать его для вставки: xmodmap-e "код клавиши 110 = Pointer_Button1"
Решение
xmodmap -e "keycode 115 = Pointer_Button2"
Теперь, моя клавиша Home делает щелчок левой кнопкой и ведет себя так же, как если бы я поразил щелчок мышью, и я могу удержать ключ в нажатом состоянии, и это выделяется (копирует) как ожидалось.
я также отобразил свою клавишу End, чтобы быть щелчком средней кнопкой, таким образом, я могу использовать его для вставки:
xmodmap -e "keycode 110 = Pointer_Button1"
Примечание, что необходимо иметь "mousekeys" (эмуляция мыши с помощью цифровой клавиатуры) включило для этого для работы. "mousekeys" может быть переключен путем нажатия Сдвига + NumLock или установлен явно путем выполнения:
dconf write /org/gnome/desktop/a11y/keyboard/mousekeys-enable true
dconf write /org/gnome/desktop/a11y/keyboard/mousekeys-enable false
Большинство рабочих столов имеет некоторые настройки доступности, которые будут управлять мышью с клавиатурой, уже встроенной, как XFCE имеет их в, он - Все Настройки-> Доступность-> Мышь-> Эмуляция Мыши, которая использует цифровую клавиатуру клавиатуры, таким образом, 5 ключей делают точно, что Вы пытаетесь сделать.
, Если я вспоминаю, у гнома, корицы и помощника есть подобные функции под чем-то как "Доступность" или вспомогательная технология, и т.д. Или устанавливаемая программа/пакет как mousetweaks ("улучшения доступности мыши для рабочего стола GNOME") или keynav (но я не мог заставить его работать над xfce).
Или, если Ваша сенсорная панель все еще работает хорошо (просто не кнопки) Вы могли бы просто сделать касание для одиночного нажатия, касание & тогда держите для щелчка & перетащите, двойное касание = двойной щелчок... и если они не работают должна быть строка или два в терминале, который должен добраться, те для работы (не помните их бесцеремонно теперь). Я не хотел бы писать свой собственный сценарий, когда существует несколько других опций, которые должны работать