Skip to content

feat(rules): add at_startup matcher - #111

Merged
ItsLemmy merged 3 commits into
noctalia-dev:mainfrom
iynaix:at-startup
Sep 4, 2026
Merged

feat(rules): add at_startup matcher#111
ItsLemmy merged 3 commits into
noctalia-dev:mainfrom
iynaix:at-startup

Conversation

@iynaix

@iynaix iynaix commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Add a match.at_startup that only applies during the first 60s after starting umbriel.

Motivation

The primary motivation is for opening applications on certain tags on boot. While this can be done by using window rules, the rules are permanent and apply to all future instances of an application as well; e.g. all future browser windows are also stuck on workspace 1.

Well behaving applications can work around this by specifying a custom app_id or title, but many applications do not support this, e.g. chrome does not set an app_id for incognito windows, nemo does not support specifying either an app_id or title.

Type of Change

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

Related Issue

Testing

I've added a unittest for a rule that is applied after 60s.

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

This is pretty much a direct port of the same functionality in niri: https://niri-wm.github.io/niri/Configuration%3A-Window-Rules.html#at-startup.

@ItsLemmy
ItsLemmy merged commit 436978f into noctalia-dev:main Sep 4, 2026
@ItsLemmy

ItsLemmy commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Thank you

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.

2 participants