Это xte
команда, когда я выполняю его в терминале, инициировала режим Expo:
xte 'keydown Super_L' 'key S' 'keyup Super_L'
Однако, когда я поместил это в свой .xbindkeysrc файл:
"xte 'keydown Super_L' 'key S' 'keyup Super_L'"
b:11
Ничего не происходит, когда я нажимаю кнопку. Следующая привязка заставляет букву X появиться в моей консоли, когда я нажимаю кнопку 11:
"xte 'key X'"
b:11
Это - подробный вывод xbindkeys -n -v
при нажатии на кнопку 11:
Button press ! e.xbutton.button=11 e.xbutton.state=16 "xte 'keydown Super_L' 'key W' 'keyup Super_L'" m:0x0 + b:11 (mouse) got screen 0 for window 2bb Start program with fork+exec call Button release ! e.xbutton.button=11 e.xbutton.state=16
И ничего не происходит. Делает это имеет какое-либо отношение к пути xbindkeys
выполняет команду? (fork+exec вызов)
expo.sh:
#!/usr/bin/env bash
export DISPLAY=:0
xte 'keydown Super_L' 'key S' 'keyup Super_L'
Выполнение этого сценария из командной строки активирует Экспо. Привязка его в xbindkeys:
"sh ~/expo.sh"
b:11
Нажатие на кнопку мыши 11:
Button press ! e.xbutton.button=11 e.xbutton.state=16 "sh ~/expo.sh" m:0x0 + b:11 (mouse) got screen 0 for window 2bb Start program with fork+exec call
Ничего не происходит!
Это очень странно. Оказывается этим, если моя кнопка мыши все еще нажимается (еще не выпущенный) когда Super+W
нажатие клавиши моделируется, ничего не происходит. Я не знаю, кто обвинить в этом (возможно, Корица?). Я работал вокруг этого хотя путем добавления малой задержки к xte
команда:
xte 'usleep 100000' 'keydown Super_L' 'key S' 'keyup Super_L'
Это теперь ожидает за 0.1 секунды до моделирования Super+S
. Если я нажимаю и удерживаю кнопку мыши больше чем 0,1 секунды, ничего не происходит.
Это - ответ обходного решения. Я очень предпочел бы надлежащий ответ.
Другое простое решение: вместо того, чтобы использовать просто "b:11" в xbindkeys определении, используйте "b:11 + выпуск". Это будет ожидать, пока Вы не отпустите кнопку для увольнения команды.
Пример:
"sh ~/expo.sh"
b:11 + release
Я столкнулся с той же проблемой.
"xte 'key b'"
работал в консоли, но не в xbindkeys файле параметра. Я изменил b его кодом keysym, с помощью команды "xev" для получения его:
"xte 'key Ox62'"
Это работало на меня
Попробуйте +Release
"xte 'keydown Super_L' 'key S' 'keyup Super_L'"
b:11 + Release
Это может помочь.
Имейте подобную проблему при использовании sxhkcd keymapper. Оказывается, что Ваши фактические сочетания клавиш обнаруживаются как то, чтобы все еще быть нажатым.
Существуют некоторые полуобходные решения:
sleep 0.2
перед Вашей командой Однако Вы наклоняетесь, получают действия в реальном времени с этим =)