From d6338592593dfad1a0116af0fa9daaf4b82ec5e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Wed, 18 Mar 2026 16:42:49 +0300 Subject: [PATCH 1/4] flake: update inputs --- flake.lock | 56 +++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/flake.lock b/flake.lock index bff2d14..bc5a405 100644 --- a/flake.lock +++ b/flake.lock @@ -202,11 +202,11 @@ ] }, "locked": { - "lastModified": 1773691925, - "narHash": "sha256-OtmQRjxDoOFdgueSmmM/zEH5PDJomIs9Yiawg+HavwA=", + "lastModified": 1773796797, + "narHash": "sha256-/wlvKw9ztX3ePhwHiKEa9e3hQl85QehHtqXFa1mDOpE=", "owner": "AvengeMedia", "repo": "dms-plugin-registry", - "rev": "16c303569c666f56b3c3dbefd627c9c1575cd717", + "rev": "dcb3908dac1abde08ed2ff3fafd88a700d4b46fd", "type": "github" }, "original": { @@ -448,11 +448,11 @@ ] }, "locked": { - "lastModified": 1773716904, - "narHash": "sha256-vK2REv0ikXVpVEfHnThxtheIqxLvCxNsXjeUrc2+OM4=", + "lastModified": 1773832159, + "narHash": "sha256-3/NopFIsqGECDQ/qN0yyOspqqhPRiYlIdgBtt3rPS9w=", "owner": "numtide", "repo": "llm-agents.nix", - "rev": "23bbd3aaad676a600fcef546e9345e37212c1ab3", + "rev": "adb2db566d35cded281fea2c0583b6f5b8efa557", "type": "github" }, "original": { @@ -468,11 +468,11 @@ ] }, "locked": { - "lastModified": 1773731422, - "narHash": "sha256-+VZuQRP9fuv6rMym2DIKHL9fax79Tb4PRczvlu5Bk6o=", + "lastModified": 1773774022, + "narHash": "sha256-s+EMBn+DlJmMH+ZUp+MrqnAaIomR9q+1xAyHMVF5HGE=", "owner": "natsukium", "repo": "mcp-servers-nix", - "rev": "759e7b2e9c9d9ee5ff242de9cf75c5000de63a26", + "rev": "411638cb2dae8e93415806340f3e7432ee09b8fd", "type": "github" }, "original": { @@ -537,11 +537,11 @@ ] }, "locked": { - "lastModified": 1773725889, - "narHash": "sha256-htkVJrtaWJS7wQSXg8d26RR6jF3Iab2bYTNfvTgv05Q=", + "lastModified": 1773809319, + "narHash": "sha256-ZuMZEuxqWneGaK+HAXz50JyCmtFo0neo6mp6F2NWj24=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "9987baf8f935a1b3b2aa89a44c13b3239ecc640e", + "rev": "c4ee62058cd37d7b842c3b081917f792efee9082", "type": "github" }, "original": { @@ -640,11 +640,11 @@ ] }, "locked": { - "lastModified": 1773715019, - "narHash": "sha256-bJ2f57E9rEMdNc6hFIVvtWFF/WpIRCGJvT7HTnls/rg=", + "lastModified": 1773801820, + "narHash": "sha256-l4pB6hCC5K0ygw63q9T8uRiETCGlR14DL3nIwR16WvQ=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "25efde53dc1b554e912bda2be1dc2508850dbe68", + "rev": "741d7a97cedfe976743166c44f4b58f3ec1df72d", "type": "github" }, "original": { @@ -689,11 +689,11 @@ ] }, "locked": { - "lastModified": 1773707837, - "narHash": "sha256-TFK0EXOTihtOiqdipVuUWnA3O+2XALosoFGXgMmnRM0=", + "lastModified": 1773794880, + "narHash": "sha256-Ta6qtvm9JFGvJBQMCi/MtWsC7JT0fgUFQxgFg0hqQoo=", "owner": "kaylorben", "repo": "nixcord", - "rev": "a917a4b7ddd13539ecc0a4b5094f015ba7b192dc", + "rev": "6a503af15e1cb2b0b2e4acdc7c7e8f25ab6251a2", "type": "github" }, "original": { @@ -762,11 +762,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1773646010, - "narHash": "sha256-VZOCgpW2WxpWrw4ZNwgA+9MZ/QNTYM2iNTiBMxaTX00=", - "rev": "5b2c2d84341b2afb5647081c1386a80d7a8d8605", + "lastModified": 1773734432, + "narHash": "sha256-RUGFJsZyqsAuWCL9eESO8PCv4qiBx6/h+GDyHbFAmLs=", + "rev": "cda48547b432e8d3b18b4180ba07473762ec8558", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre963917.5b2c2d84341b/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre964459.cda48547b432/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -783,11 +783,11 @@ ] }, "locked": { - "lastModified": 1773743416, - "narHash": "sha256-ww6I5SwvTkfe6RGH0OkgoLb6X8Ukq+UvaU8oQ+IABYE=", + "lastModified": 1773831707, + "narHash": "sha256-By+BDtmJTKpvZYEQndmIdvDvpk2fjW1/eG5cj8bT0J4=", "owner": "nix-community", "repo": "NUR", - "rev": "267099e6e701e9fbd40501394b62180df7adceb6", + "rev": "afc57b7040ac8dde32ce922c8da264809f55fb43", "type": "github" }, "original": { @@ -957,11 +957,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1771788390, - "narHash": "sha256-RzBpBwn93GWxLjacTte+ngwwg0L/BVOg4G/sSIeK3Rw=", + "lastModified": 1773790548, + "narHash": "sha256-6lI+ZM1yWL4cNRT39s8AUC+kwq237PZCrWc1ubLOwqc=", "owner": "nix-community", "repo": "stylix", - "rev": "ebb238f14d6f930068be4718472da3105fd5d3bf", + "rev": "e8ffdddd42062ebc90178db9d013aa38c20b7b2f", "type": "github" }, "original": { From a121a9fcdec3d7bc7957a13e96870475d7a22971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Wed, 18 Mar 2026 23:45:04 +0300 Subject: [PATCH 2/4] hm.codex: update effort settings --- AGENTS.md | 50 ++++++++++++++++----------------- nix/inputs.nix | 6 ++-- nix/users/ilkecan/llm/codex.nix | 4 +-- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index e189c98..d580751 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -66,9 +66,9 @@ nix flake check # Check for evaluation errors There are three nixpkgs inputs with distinct purposes: -- **`nixpkgs`** (stable, `nixos-25.11`) — base system. Patched in-place (overwrites itself in `inputs`) with **module-level** changes only (no package rebuilds). -- **`nixpkgs-unstable`** — always the original unpatched unstable channel. Exposed as `pkgs.unstable` overlay for select tools that need newer versions. -- **`nixpkgs-patched`** — patched version of `nixpkgs-unstable`, stored as a separate input. Used for **package-level** changes to contain cascade rebuilds: patching a package in `nixpkgs-unstable` directly could trigger rebuilds for all dependents; isolating it in a named input limits the blast radius to what explicitly uses `pkgs.patched`. +- **`nixpkgs`** (stable, `nixos-25.11`) - base system. Patched in-place (overwrites itself in `inputs`) with **module-level** changes only (no package rebuilds). +- **`nixpkgs-unstable`** - always the original unpatched unstable channel. Exposed as `pkgs.unstable` overlay for select tools that need newer versions. +- **`nixpkgs-patched`** - patched version of `nixpkgs-unstable`, stored as a separate input. Used for **package-level** changes to contain cascade rebuilds: patching a package in `nixpkgs-unstable` directly could trigger rebuilds for all dependents; isolating it in a named input limits the blast radius to what explicitly uses `pkgs.patched`. ### Input Patching @@ -78,18 +78,18 @@ Transitive flake inputs are rewritten selectively using `flake.lock` node names. Important invariants when editing `nix/inputs.nix`: -- **Top-level canonical nodes** — if a dependency is shared in multiple places, it should have a canonical representative at the top level and all repeats should follow that node. -- **`self` is special-cased** — the recursive rewrite applies to external inputs, but `self` itself is not rebuilt through that recursion. Only `self.inputs` is updated with the rewritten/exported input set to avoid recursive self-reimport. +- **Top-level canonical nodes** - if a dependency is shared in multiple places, it should have a canonical representative at the top level and all repeats should follow that node. +- **`self` is special-cased** - the recursive rewrite applies to external inputs, but `self` itself is not rebuilt through that recursion. Only `self.inputs` is updated with the rewritten/exported input set to avoid recursive self-reimport. ### Custom pkgs Overlays `nix/packages/default.nix` instantiates nixpkgs with several overlays, making these package sets available everywhere: -- `pkgs.unstable` — nixos-unstable packages -- `pkgs.patched` — nixpkgs-unstable with package-level patches applied -- `pkgs.nur` — NUR packages -- `pkgs.notashelf` — packages from the flint flake -- `pkgs.llm-agents.*` — LLM agent tools +- `pkgs.unstable` - nixos-unstable packages +- `pkgs.patched` - nixpkgs-unstable with package-level patches applied +- `pkgs.nur` - NUR packages +- `pkgs.notashelf` - packages from the flint flake +- `pkgs.llm-agents.*` - LLM agent tools ### lib.my.importTree @@ -105,26 +105,26 @@ Managed with `sops-nix`. Encrypted secrets live in `secrets/`. ### Key Inputs -- **nvf** — Neovim configuration framework (used for all neovim config under `nix/users/ilkecan/text-editors/neovim/`) -- **stylix** — System-wide theming -- **niri-flake** — Niri Wayland compositor -- **disko** — Declarative disk partitioning -- **impermanence** — Ephemeral root filesystem support -- **sops-nix** — Secrets management (encrypted secrets in `secrets/`) -- **dms** — DankMaterialShell, a desktop shell for Wayland compositors, built with Quickshell -- **betterfox-nix** — Firefox user.js optimization -- **git-hooks-nix** — Pre-commit hooks framework (comrak, deadnix, flake-checker, flint, gitleaks, nil, nixf-diagnose, nixfmt, ripsecrets) -- **nixos-cli** — NixOS CLI tool -- **mcp-servers-nix** — MCP server configuration for Home Manager -- **optnix** — Nix option analysis tool +- **nvf** - Neovim configuration framework (used for all neovim config under `nix/users/ilkecan/text-editors/neovim/`) +- **stylix** - System-wide theming +- **niri-flake** - Niri Wayland compositor +- **disko** - Declarative disk partitioning +- **impermanence** - Ephemeral root filesystem support +- **sops-nix** - Secrets management (encrypted secrets in `secrets/`) +- **dms** - DankMaterialShell, a desktop shell for Wayland compositors, built with Quickshell +- **betterfox-nix** - Firefox user.js optimization +- **git-hooks-nix** - Pre-commit hooks framework (comrak, deadnix, flake-checker, flint, gitleaks, nil, nixf-diagnose, nixfmt, ripsecrets) +- **nixos-cli** - NixOS CLI tool +- **mcp-servers-nix** - MCP server configuration for Home Manager +- **optnix** - Nix option analysis tool ### Flake Module Outputs Modules under `nix/modules/` are exposed as flake outputs via `nix/flake/modules.nix`: -- `flakeModules` — from `nix/modules/flake/` -- `homeModules` — from `nix/modules/home-manager/` -- `nixosModules` — from `nix/modules/nixos/` +- `flakeModules` - from `nix/modules/flake/` +- `homeModules` - from `nix/modules/home-manager/` +- `nixosModules` - from `nix/modules/nixos/` The `cachix-push` flake module (in `nix/modules/flake/`) provides a `flake.cachix.push` option and generates a `perSystem.apps.cachix-push` app for pushing packages to Cachix caches. diff --git a/nix/inputs.nix b/nix/inputs.nix index 30416a8..9a3b058 100644 --- a/nix/inputs.nix +++ b/nix/inputs.nix @@ -107,7 +107,7 @@ let # Resolve a lock node reference to its canonical node name. # String refs are already node names; array refs are follow-paths from root - # (e.g. ["nixpkgs"] resolves root→nixpkgs, ["bar","foo"] resolves root→bar→foo). + # (e.g. ["nixpkgs"] resolves root -> nixpkgs, ["bar","foo"] resolves root -> bar -> foo). resolveNodeName = inputSpec: if isString inputSpec then @@ -127,7 +127,7 @@ let topLevelNodeNames = mapAttrs (name: _: resolveTopLevelNodeName name) inputs'; # Shadowed inputs are those whose name also appears in inputs'. Additive - # patches (e.g. nixpkgs-patched) are excluded — they add a name not present + # patches (e.g. nixpkgs-patched) are excluded - they add a name not present # in inputs', so they have no corresponding lock node to mark dirty. shadowedInputNames = attrNames (intersectAttrs inputs' patchedInputs); shadowedNodeNames = map resolveTopLevelNodeName shadowedInputNames; @@ -171,7 +171,7 @@ let ) ) inputs'; - # Maps each top-level input's lock node name → its canonical resolved version. + # Maps each top-level input's lock node name -> its canonical resolved version. # Transitive followers share the same lock node name, so they get the same thunk. nodeNameMapping = mapAttrs' ( name: _: nameValuePair topLevelNodeNames.${name} resolvedTopLevel.${name} diff --git a/nix/users/ilkecan/llm/codex.nix b/nix/users/ilkecan/llm/codex.nix index afd1340..952166c 100644 --- a/nix/users/ilkecan/llm/codex.nix +++ b/nix/users/ilkecan/llm/codex.nix @@ -27,8 +27,8 @@ in # enableMcpIntegration = true; # disable until lazy loading is implemented https://github.com/openai/codex/issues/9266 settings = { model = "gpt-5.4"; - model_reasoning_effort = "medium"; - plan_mode_reasoning_effort = "high"; + model_reasoning_effort = "high"; + plan_mode_reasoning_effort = "xhigh"; personality = "pragmatic"; features = { From ec6cc2d61579f3cfb559d1bf79a69170c48e8e47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Wed, 18 Mar 2026 23:52:42 +0300 Subject: [PATCH 3/4] dms.plugins: add `screen-recorder` --- .../dank-material-shell/plugins/screen-recorder.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 nix/users/ilkecan/wayland/dank-material-shell/plugins/screen-recorder.nix diff --git a/nix/users/ilkecan/wayland/dank-material-shell/plugins/screen-recorder.nix b/nix/users/ilkecan/wayland/dank-material-shell/plugins/screen-recorder.nix new file mode 100644 index 0000000..c2cf5ad --- /dev/null +++ b/nix/users/ilkecan/wayland/dank-material-shell/plugins/screen-recorder.nix @@ -0,0 +1,11 @@ +{ + ... +}: + +{ + programs.dank-material-shell.plugins.screenRecorder = { + enable = true; + settings = { + }; + }; +} From eb15c7c5fd26fdc7c4872f001206f0a41c6d4af6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Thu, 19 Mar 2026 18:31:42 +0300 Subject: [PATCH 4/4] packages.patched.nix-fast-build: update --- nix/packages/patched/nix-fast-build.nix | 31 +++++++++++++------------ 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/nix/packages/patched/nix-fast-build.nix b/nix/packages/patched/nix-fast-build.nix index cec5e35..d8f68df 100644 --- a/nix/packages/patched/nix-fast-build.nix +++ b/nix/packages/patched/nix-fast-build.nix @@ -3,18 +3,19 @@ nix-fast-build, }: -nix-fast-build.overrideAttrs (prev: { - version = "${prev.version}-unstable-2026-03-11"; - src = prev.src.override { - tag = null; - rev = "f5ca03a4387aecd739d60c77ae26e567481c3013"; - hash = "sha256-mInYAyDT49w0ux7Jgg4Ny3igyEKlRvqzG2KAG9YVmsg="; - }; - patches = (prev.patches or [ ]) ++ [ - (fetchpatch2 { - name = "support-impure-derivations.patch"; - url = "https://github.com/Mic92/nix-fast-build/pull/301.diff?full_index=1"; - hash = "sha256-xVN5nOUIDTrCJ6jBeKp/MiYkHULYvj0xgBFqiQ34f+U="; - }) - ]; -}) +nix-fast-build.overrideAttrs ( + _final: prev: { + version = "1.4.0-unstable-2026-03-19"; + src = prev.src.override { + tag = "1.4.0"; + hash = "sha256-sH/KWX8NO8iurnnkI7w8eWMkbnRBbvEIK9IW4LnR0qQ="; + }; + patches = (prev.patches or [ ]) ++ [ + (fetchpatch2 { + name = "guard-against-empty-outputs.patch"; + url = "https://github.com/Mic92/nix-fast-build/pull/309.diff?full_index=1"; + hash = "sha256-e+2AowxVyx2FbGxgZRND0PsR5gdLGXSAVTN9Ur0Ew4Y="; + }) + ]; + } +)