Skip to content

command : new configuration syntax and more flexible command execution command conditions - #3112

Draft
AKArien wants to merge 5 commits into
WayfireWM:masterfrom
AKArien:revamp_always_bindings
Draft

command : new configuration syntax and more flexible command execution command conditions#3112
AKArien wants to merge 5 commits into
WayfireWM:masterfrom
AKArien:revamp_always_bindings

Conversation

@AKArien

@AKArien AKArien commented Aug 18, 2026

Copy link
Copy Markdown

Remove the always_bindings category. Instead, make all other types of bindings configurable as always.

I don’t quite expect it to be merged as is, as it breaks configuration and might not be the cleanest/best way to do this, but i am looking for feedback/someone to have a better way of handling things.

@soreau

soreau commented Aug 18, 2026

Copy link
Copy Markdown
Member

It is not clear what problem this might solve. Can you elaborate?

@AKArien

AKArien commented Aug 18, 2026

Copy link
Copy Markdown
Author

It is not clear what problem this might solve. Can you elaborate?

Currently, you can only have a binding take place always (when another plugin is running, and when the screen is locked) that behaves like a regular binding. This allows having this « always » behaviour for repeatable and release bindings.

@ammen99

ammen99 commented Aug 21, 2026

Copy link
Copy Markdown
Member

Fwiw I think you could add a new category of bindings, which can have repeatable, always and release as boolean options instead of being separate lists. Then we say everything in the old options is deprecated and remove it after 1-2 releases.

@ammen99

ammen99 commented Aug 21, 2026

Copy link
Copy Markdown
Member

Also fwiw the ini syntax is ugly (not your fault, just how it is), if you have any better ideas of how to encode the information, that would be great. Maybe a command prefix of always$, repeat$, for ex. command = always$terminator. I don't think this is necessarily better, simply saying that I'm open for other suggestions too.

@AKArien

AKArien commented Aug 31, 2026

Copy link
Copy Markdown
Author

@ammen99 atfer some thinking, i have a one-line declaration syntax that is :selector1,selector2…:<command> = <activator>, where selectors are any of normal/repeat/release/always.

This would make a binding work for any of these modes, so for example, to take back the example of press-to-speak in the wiki, you’d have one toggle binding for both normal and release, and it would of course allow getting an always and repeat for anything.

Am i correct in my understanding that it’s fine to drop the « name » (so, terminal in binding_terminal = <super> KEY_ENTER, command_terminal = alacritty) of the command, and that it’s not used for anything in the ipc or otherwise ?

And does this config syntax sound good to you ?

@AKArien
AKArien force-pushed the revamp_always_bindings branch from 22902d8 to bb4c6b5 Compare August 31, 2026 17:49
@AKArien
AKArien marked this pull request as draft August 31, 2026 17:50
@AKArien
AKArien force-pushed the revamp_always_bindings branch 2 times, most recently from 11e8806 to 7e9abf1 Compare August 31, 2026 17:52
@AKArien AKArien changed the title command : make always bindings a choice per binding command : new configuration syntax and more flexible command execution command conditions Aug 31, 2026
@AKArien
AKArien force-pushed the revamp_always_bindings branch from 7e9abf1 to 23e5696 Compare August 31, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants