Резюме вопроса: я хочу, чтобы одна из моих кнопок мыши была зарегистрирована как левая кнопка Windows Super_L на X11.
В моем оконном менеджере я могу перемещать окна, удерживая "левую кнопку Windows" (Left Super) и перетаскивая окно левой кнопкой мыши. Я хочу сделать это без прикосновения к клавиатуре, поэтому я хочу сопоставить левую супер-клавишу с кнопкой мыши 11, чтобы я мог удерживать кнопку мыши 11 и нажимать + перетаскивать окна.
Наиболее очевидным решением является использование xbindkeys и xte следующим образом (.xbindkeysrc
):
"xte 'keydown Super_L'"
b:11
"xte 'keyup Super_L'"
b:11 + release
Это работает так:
- Когда я нажимаю кнопку мыши 11, Super_L также нажимается вниз
- Когда я отпускаю кнопку мыши 11, Super_L также освобождается
Но есть проблема: я не могу перемещать окна, используя Super_L + Mouse1, если я также удерживаю другую кнопку мыши, например, кнопку мыши 11. Используя приведенное выше решение, кнопка 11 мыши все еще регистрируется как нажатая и отпущенная, и поэтому ни одна из операций диспетчера окон не работает.
Я пробовал это использовать Cinnamon и Awesome WM, и абсолютно ни одна из комбинаций клавиатуры Super_L не работает, пока нажата кнопка мыши 10 или 11.
Неподходящий хак
В настоящее время я работаю над этой проблемой, заставляя щелчок мыши 11 удерживать кнопку Super_L в течение определенного времени. Таким образом, я могу нажать кнопку мыши, а затем перетаскивать вещи вокруг на короткое время:
"xte 'keydown Super_L' 'usleep 250000' 'keyup Super_L'"
b:11
Еще одна попытка
Как предположил тотти, я попробовал эту конфигурацию xbindkeys
:
"xte 'mouseup 10' 'keydown Super_L'"
b:10
"xte 'keyup Super_L'"
b:10 + Release
Не работает Кажется, что клавиша Super_L удерживается нажатой, потому что как только я отпускаю кнопку 10, она остается нажатой навсегда (пока я снова не нажму клавишу Super_L на клавиатуре), но кнопка мыши все еще регистрируется, потому что я не могу нажмите и перетащите окна. Я не думаю, что смогу сделать это с помощью xbindkeys
и xte
.