В общем у меня сломалась кнопка мыши и запилил такую поделку: https://github.com/pawnhearts/angelspie
Типа devilspie, только на питоне. Позволяет управлять окнами по заданным условиям, создавать глобальные горячие клавиши, горячие главиши только для определенных окон(рабочих столов и т.п.), эмулировать нажания кнопок мыши и клавиатуры(нужен python-xlib), выполнять код на питоне, шелл скрипты и т.п.
Конфиг в yaml. Пример:
- if:
name:
icontains: chromium
key: F1
then:
click: 3
- if:
event: active-workspace-changed
desktop: 2
sh: pgrep firefox
then:
sh: killall firefox
- if:
class_group: firefox
then:
move: 0 0
resize: 500 1000
Ну и т.п.
Нужен pygobject, libwnck3, libkeybinder3, python-xlib(не обязательно)
P.S. в этом примере кнопка F1 будет перехватываться только у chromium. после переключения окна все биндинги обновляются.