{"adoption": {"forks": 67, "observed_at": "2026-08-28T04:03:31.955493+00:00", "stars": 1085}, "canonical_url": "https://ross.abutalabs.com/products/nwg-displays", "card": {"archived": false, "artifact_type": "application", "description": "Output management utility for sway, Hyprland and Niri", "domain": ["desktop-applications", "operating-systems", "developer-tools"], "enriched": true, "function": ["gui", "configuration-management", "developer-tools"], "health_score": 100, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["nwg-piotr/nwg-displays"], "name": "nwg-piotr/nwg-displays", "platform": ["python"], "pushed_at": "2026-08-24T19:52:27+00:00", "repo": "nwg-piotr/nwg-displays", "stars": 1085, "tags": ["wayland", "sway", "hyprland", "niri", "display-management", "gtk", "nwg-shell", "linux", "desktop"], "topics": ["sway", "swaywm", "display", "displays", "monitors", "hyprland"], "urls": [], "use_cases": ["configure multiple monitors on sway with a GUI", "arrange displays in Hyprland without editing config files", "save monitor layout to monitors.conf", "assign workspaces to specific outputs", "manage display settings on Niri", "handle output names that change on restart with generic names"], "what_it_is": "nwg-displays is a GTK-based GUI utility for managing display outputs on the sway, Hyprland, and Niri Wayland compositors. It lets users arrange monitors, apply settings, and persist output and workspace-to-output configuration to text files.", "when_to_avoid": ["you use a different Wayland compositor or X11", "you prefer editing compositor config files manually", "you need display management on a headless server"], "when_to_choose": ["you use sway, Hyprland, or Niri and want a graphical display configuration tool", "you frequently change monitor setups and want to save layouts", "you want workspace-to-output assignments generated automatically"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/nwg-displays", "repo": "nwg-piotr/nwg-displays", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:49:52.627954+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9349e95c9903794b497ee2842f569f13ef1b33bb641a1944b781cb3f0584f0eb", "fetched_at": "2026-08-28T04:03:31.955493+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nwg-piotr/nwg-displays"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:49:52.627954+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9349e95c9903794b497ee2842f569f13ef1b33bb641a1944b781cb3f0584f0eb", "fetched_at": "2026-08-28T04:03:31.955493+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nwg-piotr/nwg-displays"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:49:52.627954+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9349e95c9903794b497ee2842f569f13ef1b33bb641a1944b781cb3f0584f0eb", "fetched_at": "2026-08-28T04:03:31.955493+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nwg-piotr/nwg-displays"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:49:52.627954+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9349e95c9903794b497ee2842f569f13ef1b33bb641a1944b781cb3f0584f0eb", "fetched_at": "2026-08-28T04:03:31.955493+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nwg-piotr/nwg-displays"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:49:52.627954+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9349e95c9903794b497ee2842f569f13ef1b33bb641a1944b781cb3f0584f0eb", "fetched_at": "2026-08-28T04:03:31.955493+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nwg-piotr/nwg-displays"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:49:52.627954+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9349e95c9903794b497ee2842f569f13ef1b33bb641a1944b781cb3f0584f0eb", "fetched_at": "2026-08-28T04:03:31.955493+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nwg-piotr/nwg-displays"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:31.955493+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:49:52.627954+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9349e95c9903794b497ee2842f569f13ef1b33bb641a1944b781cb3f0584f0eb", "fetched_at": "2026-08-28T04:03:31.955493+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nwg-piotr/nwg-displays"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:49:52.627954+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9349e95c9903794b497ee2842f569f13ef1b33bb641a1944b781cb3f0584f0eb", "fetched_at": "2026-08-28T04:03:31.955493+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nwg-piotr/nwg-displays"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:49:52.627954+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9349e95c9903794b497ee2842f569f13ef1b33bb641a1944b781cb3f0584f0eb", "fetched_at": "2026-08-28T04:03:31.955493+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nwg-piotr/nwg-displays"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:49:52.627954+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9349e95c9903794b497ee2842f569f13ef1b33bb641a1944b781cb3f0584f0eb", "fetched_at": "2026-08-28T04:03:31.955493+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nwg-piotr/nwg-displays"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 99}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1654, "days_push": 9, "days_rel": 9, "gap_med": 15.5, "n_releases_24m": 13}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}