Как использовать X таким образом, чтобы определенный вход изменял выход другого входа?

Как использовать X таким образом, чтобы определенный вход изменял выход другого входа?

Например, я хочу нажать и удерживать кнопку мыши 4, а затем нажать кнопку мыши 5 и передать другой ввод [например, нажатие клавиши на клавиатуре или какой-либо другой кнопки мыши] в программу.

Цель состоит в том, что если у меня есть мышь с N клавишами, это позволит мне эмулировать 2*(N-1) вводов с моей мыши, что позволит мне играть в видеоигры, используя только мышь, для чего обычно требуются мышь и клавиатура или мышь с большим количеством кнопок, чем у меня.

Я использую cinnamon desktop на Linux. И я ожидаю, что способ сделать это будет в том, чтобы mouse4 запустил какую-то программу, которая меняет привязки клавиш. Если невозможно заставить программу выполняться при отпускании кнопки, я не против нажать mouse4 второй раз, чтобы переключиться обратно на раскладку по умолчанию. Я обнаружил, что это возможно на клавиатурездесь, но я не могу найти никакой информации о том, как это сделать с помощью мыши.

Прямой ответ был бы замечательным, но любые подсказки, которые могли бы указать мне правильное направление, будут высоко оценены.

Связанный контент