Skip to content

feat: add match.is_alone window rule - #187

Merged
ItsLemmy merged 10 commits into
noctalia-dev:mainfrom
Yocraft-2000:feat/alone-window-rule
Sep 8, 2026
Merged

feat: add match.is_alone window rule#187
ItsLemmy merged 10 commits into
noctalia-dev:mainfrom
Yocraft-2000:feat/alone-window-rule

Conversation

@Yocraft-2000

@Yocraft-2000 Yocraft-2000 commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Added is_alone window rule match.
Floating windows are ignored, the rule only match tiled windows.
Revert only if toggle by the rule, a window opened fullscreen will not unfullscreen when opening another one.
Re-evaluated whenever the tiled windows change (open, close, move, float toggle, etc) and on config reload.

Motivation

Objective is to find an optimal solution to #93, #177 and also the already added expand_single_column.
One window rule that can do all of that is better than a lot of random options.

This one resolve #93 :

[[window_rule]]
match.is_alone = true
default_maximize_to_edges = true

This one resolve #177 :

[[window_rule]]
match.is_alone = true
default_width = 0.75

this one replace expand_single_column :

[[window_rule]]
match.is_alone = true
default_maximize = true

It can also extend to a lot of other use cases.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Refactoring
  • Build / packaging
  • Documentation

Related Issue

Closes #93 and #177.
Related to the already merged #48.

Testing

just format
just test
just lint

Manual Coverage

  • Tested in a nested Umbriel session
  • Tested in a native Umbriel session
  • Tested with multiple monitors
  • Tested with a scaled output
  • Tested with native Wayland applications
  • Tested with X11 applications through xwayland-satellite
  • Tested with the scrolling layout
  • Tested with the dwindle layout

Screenshots / Videos

Checklist

  • This PR is ready for review, or it is marked as Draft.
  • This change fits SCOPE.md, or its scope was agreed in an issue or on Discord first.
  • I read and followed the relevant guidance in CONTRIBUTING.md.
  • I ran just format, or this PR has no C++ changes.
  • I ran the relevant build, test, lint, or verification commands, or explained why they were not run.
  • I functionally verified compositor behavior where automated checks are insufficient.
  • I self-reviewed the changes.
  • I checked for new warnings or errors.
  • I updated docs/ and examples/config.toml, or this PR does not change user-facing configuration or behavior.
  • I used canonical names for config keys, IPC actions, paths, and identifiers.

Additional Notes

@Yocraft-2000
Yocraft-2000 force-pushed the feat/alone-window-rule branch from 6fb91e0 to f44a4fa Compare September 8, 2026 09:55
@Yocraft-2000
Yocraft-2000 marked this pull request as draft September 8, 2026 10:02
@Yocraft-2000
Yocraft-2000 marked this pull request as ready for review September 8, 2026 12:44
@Yocraft-2000 Yocraft-2000 changed the title feat: add is_alone window rule feat: add match.is_alone window rule Sep 8, 2026
# Conflicts:
#	docs/user/window-rules.md
#	examples/config.toml
#	src/config/resolve.cpp
#	src/config/resolve.h
#	src/view/view.cpp
#	src/view/view.h
#	tests/unit/config_resolve.cpp
@ItsLemmy
ItsLemmy merged commit fb25080 into noctalia-dev:main Sep 8, 2026
@ItsLemmy

ItsLemmy commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants