Replaces Niri’s Nix-based config with KDL files and per-host hardware KDL, removes niri-flake, adds a polkit agent, bumps pins, tweaks XDG defaults, and updates the Mesa regression workaround.
Niri:
Replace Nix-based config (settings.nix, keybindings.nix, etc.) with KDL files: home/linux/gui/niri/conf/{config.kdl,keybindings.kdl,spawn-at-startup.kdl,windowrules.kdl}.
Symlink KDL configs via xdg.configFile; add per-host niri-hardware.kdl and link in each host’s home.nix.
Add systemd user service niri-flake-polkit (polkit-kde-agent-1); keep xwayland-satellite in home.packages.
Remove niri flake input/modules and related imports from outputs; enable programs.niri directly.
Hosts:
Add hosts/12kingdoms-shoukei/niri-hardware.kdl and hosts/idols-ai/niri-hardware.kdl; remove inlined Niri settings from host home.nix files.
Apple Silicon: update Mesa regression workaround to assert mesa 25.3.1.
XDG/Desktop:
modules/nixos/desktop/xdg.nix: expose lib, enable xdg.{autostart,menus,mime,icons} by default; keep portal config.
Deps/Pins:
Bump home-manager, nixpkgs{,-master,-unstable}; adjust nixpkgs-stable mapping; remove niri-related and xwayland-satellite extra inputs from flake.lock.
Misc:
flake.nix: remove niri input; minor input list cleanups.
Written by Cursor Bugbot for commit f3e0f2cd88. This will update automatically on new commits. Configure here.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/ryan4yin/nix-config/pull/237
**Author:** [@ryan4yin](https://github.com/ryan4yin)
**Created:** 12/19/2025
**Status:** ✅ Merged
**Merged:** 12/19/2025
**Merged by:** [@ryan4yin](https://github.com/ryan4yin)
**Base:** `main` ← **Head:** `update-niri`
---
### 📝 Commits (1)
- [`f3e0f2c`](https://github.com/ryan4yin/nix-config/commit/f3e0f2cd88519758d59abc6cd3feede2219e9213) refactor: update niri, write config in kdl, remove niri-flake
### 📊 Changes
**19 files changed** (+722 additions, -916 deletions)
<details>
<summary>View changed files</summary>
📝 `flake.lock` (+11 -133)
📝 `flake.nix` (+0 -2)
➕ `home/linux/gui/niri/conf/config.kdl` (+232 -0)
➕ `home/linux/gui/niri/conf/keybindings.kdl` (+239 -0)
➕ `home/linux/gui/niri/conf/spawn-at-startup.kdl` (+26 -0)
➕ `home/linux/gui/niri/conf/windowrules.kdl` (+103 -0)
📝 `home/linux/gui/niri/default.nix` (+29 -27)
➖ `home/linux/gui/niri/keybindings.nix` (+0 -214)
➖ `home/linux/gui/niri/settings.nix` (+0 -276)
➖ `home/linux/gui/niri/spawn-at-startup.nix` (+0 -28)
➖ `home/linux/gui/niri/windowrules.nix` (+0 -122)
📝 `hosts/12kingdoms-shoukei/apple-silicon.nix` (+2 -2)
📝 `hosts/12kingdoms-shoukei/home.nix` (+4 -41)
➕ `hosts/12kingdoms-shoukei/niri-hardware.kdl` (+15 -0)
📝 `hosts/idols-ai/home.nix` (+6 -68)
➕ `hosts/idols-ai/niri-hardware.kdl` (+47 -0)
📝 `modules/nixos/desktop/xdg.nix` (+8 -1)
📝 `outputs/aarch64-linux/src/12kingdoms-shoukei.nix` (+0 -1)
📝 `outputs/x86_64-linux/src/idols-ai.nix` (+0 -1)
</details>
### 📄 Description
<!-- CURSOR_SUMMARY -->
> [!NOTE]
> Replaces Niri’s Nix-based config with KDL files and per-host hardware KDL, removes niri-flake, adds a polkit agent, bumps pins, tweaks XDG defaults, and updates the Mesa regression workaround.
>
> - **Niri**:
> - Replace Nix-based config (`settings.nix`, `keybindings.nix`, etc.) with KDL files: `home/linux/gui/niri/conf/{config.kdl,keybindings.kdl,spawn-at-startup.kdl,windowrules.kdl}`.
> - Symlink KDL configs via `xdg.configFile`; add per-host `niri-hardware.kdl` and link in each host’s `home.nix`.
> - Add `systemd` user service `niri-flake-polkit` (polkit-kde-agent-1); keep `xwayland-satellite` in `home.packages`.
> - Remove `niri` flake input/modules and related imports from outputs; enable `programs.niri` directly.
> - **Hosts**:
> - Add `hosts/12kingdoms-shoukei/niri-hardware.kdl` and `hosts/idols-ai/niri-hardware.kdl`; remove inlined Niri settings from host `home.nix` files.
> - Apple Silicon: update Mesa regression workaround to assert `mesa 25.3.1`.
> - **XDG/Desktop**:
> - `modules/nixos/desktop/xdg.nix`: expose `lib`, enable `xdg.{autostart,menus,mime,icons}` by default; keep portal config.
> - **Deps/Pins**:
> - Bump `home-manager`, `nixpkgs{,-master,-unstable}`; adjust `nixpkgs-stable` mapping; remove niri-related and xwayland-satellite extra inputs from `flake.lock`.
> - **Misc**:
> - `flake.nix`: remove `niri` input; minor input list cleanups.
>
> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit f3e0f2cd88519758d59abc6cd3feede2219e9213. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/ryan4yin/nix-config/pull/237
Author: @ryan4yin
Created: 12/19/2025
Status: ✅ Merged
Merged: 12/19/2025
Merged by: @ryan4yin
Base:
main← Head:update-niri📝 Commits (1)
f3e0f2crefactor: update niri, write config in kdl, remove niri-flake📊 Changes
19 files changed (+722 additions, -916 deletions)
View changed files
📝
flake.lock(+11 -133)📝
flake.nix(+0 -2)➕
home/linux/gui/niri/conf/config.kdl(+232 -0)➕
home/linux/gui/niri/conf/keybindings.kdl(+239 -0)➕
home/linux/gui/niri/conf/spawn-at-startup.kdl(+26 -0)➕
home/linux/gui/niri/conf/windowrules.kdl(+103 -0)📝
home/linux/gui/niri/default.nix(+29 -27)➖
home/linux/gui/niri/keybindings.nix(+0 -214)➖
home/linux/gui/niri/settings.nix(+0 -276)➖
home/linux/gui/niri/spawn-at-startup.nix(+0 -28)➖
home/linux/gui/niri/windowrules.nix(+0 -122)📝
hosts/12kingdoms-shoukei/apple-silicon.nix(+2 -2)📝
hosts/12kingdoms-shoukei/home.nix(+4 -41)➕
hosts/12kingdoms-shoukei/niri-hardware.kdl(+15 -0)📝
hosts/idols-ai/home.nix(+6 -68)➕
hosts/idols-ai/niri-hardware.kdl(+47 -0)📝
modules/nixos/desktop/xdg.nix(+8 -1)📝
outputs/aarch64-linux/src/12kingdoms-shoukei.nix(+0 -1)📝
outputs/x86_64-linux/src/idols-ai.nix(+0 -1)📄 Description
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.