Skip to content

fix: compositor theming and keybindings not applied at runtime#147

Open
BluePhi09 wants to merge 2 commits intoAxenide:mainfrom
BluePhi09:fix/compositor-theming-and-keybindings
Open

fix: compositor theming and keybindings not applied at runtime#147
BluePhi09 wants to merge 2 commits intoAxenide:mainfrom
BluePhi09:fix/compositor-theming-and-keybindings

Conversation

@BluePhi09
Copy link
Copy Markdown

@BluePhi09 BluePhi09 commented Apr 7, 2026

What broke

Two regressions were introduced that caused window theming and keybindings to stop working entirely.


shell.qmlCompositorKeybinds was dropped from instantiation

CompositorKeybinds is not a singleton, so it must be explicitly instantiated in shell.qml. The block was accidentally removed during the merge:

CompositorKeybinds {
    id: compositorKeybinds
}

Without it, axctl config keybinds-batch was never called and no keybindings were ever registered.


CompositorConfig.qml — wrong axctl command used

applyCompositorConfigInternal() builds a semicolon-separated keyword string (e.g. keyword general:border_size 2 ; keyword decoration:rounding 8 ; ...) and needs to send it to axctl.

The merge replaced:

compositorProcess.command = [axctl, config, raw-batch, batchCommand];
compositorProcess.running = true;

with a call to CompositorTomlWriter.refresh(), which only writes the TOML file but never applies the changes to the live compositor.

axctl config raw-batch is the correct command for keyword strings — axctl config apply expects a JSON payload and rejects them with:

Error: invalid json payload: invalid character 'k' looking for beginning of value

Changes

File Change
shell.qml Re-add CompositorKeybinds instantiation
modules/services/CompositorConfig.qml Restore axctl config raw-batch for the keyword batch command

BluePhi09 and others added 2 commits April 7, 2026 16:06
- CompositorKeybinds was removed from shell.qml in the merge, leaving it
  never instantiated — keybindings were never applied
- CompositorConfig.applyCompositorConfigInternal() was calling
  CompositorTomlWriter.refresh() instead of executing the built
  batchCommand; updated to use the new axctl config apply command
  (matching GameModeService pattern, replacing the old raw-batch)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
axctl config apply expects a JSON payload, not keyword strings.
The correct command for semicolon-separated keyword commands is raw-batch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@BluePhi09 BluePhi09 force-pushed the fix/compositor-theming-and-keybindings branch from e242751 to 0963756 Compare April 7, 2026 14:06
@BluePhi09 BluePhi09 changed the title fix: restore compositor theming and keybindings broken by merge fix: compositor theming and keybindings not applied at runtime Apr 7, 2026
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.

1 participant