Skip to content

Feat/output identity selectors - #100

Open
rogervn wants to merge 2 commits into
noctalia-dev:mainfrom
rogervn:feat/output-identity-selectors
Open

Feat/output identity selectors#100
rogervn wants to merge 2 commits into
noctalia-dev:mainfrom
rogervn:feat/output-identity-selectors

Conversation

@rogervn

@rogervn rogervn commented Aug 23, 2026

Copy link
Copy Markdown

Summary

Today we can only pin the greeter config to a connector as name. This limits us on monitors we want to set independant of the connector we use. Based on noctalia-dev/noctalia#3754 for noctalia-shell where we added support to match by make, serial number and description using the zwlr_output_manager_v1 extension we do something similar here to be able to match by different names.

As in the first one, happy to take feedbacks here on how we can do it differently.

Motivation

We should be able to match by more than the connector as we can change the connector and set different monitors if we have multiple of the same name.

Type of Change

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

Related Issue

None

Testing

Ran locally the outputs command:

$ build/noctalia-greeter outputs
HDMI-A-2 - LG Electronics - LG TV SSCR2 - 0x01010101

Copied the greeter and compositor to a VM and ran it looking for the logs for pinned output:

$ sudo tail -F /tmp/noctalia-greeter-test/greeter.log 2> /dev/null| grep 'greeter pinned output'
[wlr] [../src/compositor/noctalia_compositor.c:1405] greeter pinned output: Virtual-1
[wlr] [../src/compositor/noctalia_compositor.c:1405] greeter pinned output: Virtual-1
[wlr] [../src/compositor/noctalia_compositor.c:1405] greeter pinned output: Virtual-1

Whilst checking for logs, changed the config to multiple values, including the VM outputs for make, model and connector. Only the exact matches returned the log.

Manual Coverage

  • Tested under greetd (real login flow)
  • Tested with just run / just run-local (dev compositor)
  • Tested with multiple monitors
  • Tested appearance sync from Noctalia Shell (Sync Now)
  • Tested on NixOS (programs.noctalia-greeter)
  • Tested with a pinned [output].name
  • Tested with custom [output].layout / [output].transforms

Screenshots / Videos

None

Checklist

  • This PR is ready for review, or it is marked as Draft.
  • I read and followed the relevant guidance in AGENTS.md and README.md.
  • I ran just format with clang-format v22+ installed, or this PR has no code changes.
  • I ran the relevant build or test commands, or explained why they were not run.
  • I self-reviewed the changes.
  • I checked for new warnings or errors.
  • I will update end-user documentation in noctalia-docs after merge, or this PR does not change user-facing configuration or behavior.
  • I used the existing canonical names for config keys, paths, and identifiers.

Additional Notes

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