Вопрос или проблема
По причинам, связанным со здоровьем, я сопоставил кнопки мыши с клавишами на клавиатуре. Это помогает мне, но я решил использовать привязки через xdotool в настройках KDE Custom shortcuts. С помощью, например, xdotool click 1
можно имитировать простые щелчки мыши, но я также хотел бы перемещать окно, когда кнопка мыши постоянно нажата. В Windows это было возможно с помощью AutoHotKey. Есть ли возможность настроить это в Linux? Я использую Kubuntu 20.04 и KDE 5.
Я не пробовал, но кажется, что клавиатурные сокращения для вызова xdotool mousedown 1
и xdotool mouseup 1
могут быть настроены для предоставления большего контроля над кнопкой мыши, чем просто щелчок. При таком расположении клавиша mousedown будет нажата, чтобы удерживать кнопку мыши нажатой, после чего могут осуществляться движения мыши по мере необходимости. После этого будет нажата клавиша mouseup, чтобы отпустить кнопку мыши.
Ответ или решение
Комбинация клавиатурных и мышиных операций для пользователей Linux может представлять определенные трудности, особенно если привычки сформировались в среде Windows с AutoHotKey. Однако, благодаря мощи инструментов, таких как xdotool
, возможно почти полностью воспроизвести подобную функциональность в KDE на Kubuntu 20.04.
Теория
Проблема заключается в том, что стандартными средствами невозможно обеспечить функционал удержания кнопки мыши (mouse hold) и последующего перетаскивания окна в Linux так, как это можно сделать с помощью AutoHotKey в Windows. При помощи xdotool
можно эмулировать нажатие на кнопку мыши (например, xdotool click 1
для левой кнопки), но для упрощения задач нужно дополнительно предусмотреть возможность длительного удержания кнопки, что позволит выполнять операции перетаскивания окна или выделения текста.
В Linux, особенно в среде KDE, xdotool
предоставляет интерфейсы для управления событиями нажатия и отпускания кнопок мыши (например, mousedown
и mouseup
). Тем не менее, чтобы симулировать дробленое нажатие мыши через клавиатуру, вам потребуется связать определенные события клавиатуры с этими командами.
Пример
Ваша цель заключается в том, чтобы настроить систему так, чтобы нажав определенные клавиши на клавиатуре, вы могли бы зафиксировать нажатие кнопки мыши, а отпускание клавиши прекратило холд. Это возможно реализовать следующим образом:
-
Конфигурация KDE Custom Shortcuts:
- Перейдите в Настройки системы -> Клавиатурные сокращения -> Настройка пользовательских сочетаний клавиш.
- Здесь можно создать новые группы для настроек, например, "Мышь". Внутри этой группы создайте два новых действия: "Mouse Down" и "Mouse Up".
-
Создание события Mouse Down:
- Добавьте новое глобальное сочетание клавиш.
- В качестве триггера установите любую непринимаемую клавишу, которую хотите использовать, например,
F5
. - Как команду действия укажите:
xdotool mousedown 1
.
-
Создание события Mouse Up:
- Добавьте другое глобальное сочетание клавиш.
- Установите ту же клавишу, которую использовали для "Mouse Down", например,
F5
. Однако, убедитесь, что события "Нажатие" и "Отжатие" клавиши выполняются раздельно. - Для команды действия укажите:
xdotool mouseup 1
.
Применение
После настройки вышеописанных сокращений вы сможете использовать выбранные клавиши для управления кнопками мыши. Например, нажатие и удержание F5
будет эквивалентно длительному нажатию левой кнопки мыши, что позволит перетаскивать объекты или выделять текст, а отпускание F5
— завершит эту операцию.
Эти настройки особенно полезны в случаях, когда требуется альтернатива стандартному способу взаимодействия с мышью из-за, скажем, медицинских противопоказаний или для повышения эффективной работы в комфортных условиях. Это еще раз подчеркивает гибкость Linux-систем: с помощью правильной настройки и инструментов пользователей могут адаптировать свои рабочие станции в соответствии с их уникальными нуждами.
Дополнительно можно рассмотреть интеграцию скриптов на языке Bash с другими инструментами, такими как xbindkeys
, для создания более сложных сценариев, например, изменения скорости движения указателя мыши при удерживании определенных клавиш, либо автоматического старта этих изменений при запуске системы через .xinitrc файл.
Завершение
Переход с решения Windows, как AutoHotKey, на решения Linux, требует некоторого изучения новых инструментов и подходов. Однако, результатом станет не только улучшение комфорта работы, но и расширение ваших технических знаний и возможностей системы, что, в свою очередь, позволит вам гибко решать другие возникающие задачи и улучшать свою производительность без привлечения стороннего ПО.