- should work both GUI and commandline
- plugins for each WM (using FmModule)
    * key is WM ID
    - func(conf) [re]load config
    - func(conf) save config
    - func(conf,mask) get desc/keys for global binding(s)
    - func(conf,action,data) set keys for a global binding
    - func(conf) get list of possible global actions
    - func(conf,mask) get exec/[desk]/key for app binding(s)
    - func(conf,name,data) set exec/desc/key for an app binding
- if change exec then remove old and add new
- commandline is like
    lxkeys global desktop2 <-- show bound key(s) for action desktop2
    lxkeys app <-- show all keys bound to applications
    lxkeys app xfrun4 Alt+F2,Win+Return "Execute a command" <-- bind a key
    lxkeys show Win+Space <-- show which action/application is bound to the key
- commandline action syntax:
    action1[:attr1=val1:attr2=val2][&action2]
- commandline exec syntax:
    exec line[&startupnotify=yes[:attr1=val1]][&action=val]
- do special window parameters as well???
