From 2d2e9d38d837eaad81339d29677ce489d9e61609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Sat, 21 Mar 2026 15:10:16 +0300 Subject: [PATCH 1/8] modules/fake/cachix-push: use `pathInStore` type ... instead of `package`. --- nix/modules/flake/cachix-push.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/modules/flake/cachix-push.nix b/nix/modules/flake/cachix-push.nix index 8870504..7a88acb 100644 --- a/nix/modules/flake/cachix-push.nix +++ b/nix/modules/flake/cachix-push.nix @@ -26,7 +26,7 @@ in options = { flake.cachix = { push = mkOption { - type = types.attrsOf (types.listOf types.package); + type = with types; attrsOf (listOf pathInStore); default = { }; description = "Attrset mapping Cachix cache names to lists of derivations to push."; }; From c95f3a559668feb8115e9c98cf31d4daf45ff321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Sat, 21 Mar 2026 15:11:34 +0300 Subject: [PATCH 2/8] flake/cachix: add `apps.ci` to the paths to cache --- nix/flake/cachix.nix | 3 +++ nix/hosts/mephistopheles/sops.nix | 2 +- .../internet/web/browsers/firefox/profiles/ilkecan/search.nix | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/nix/flake/cachix.nix b/nix/flake/cachix.nix index f23e0f1..3cd8d45 100644 --- a/nix/flake/cachix.nix +++ b/nix/flake/cachix.nix @@ -1,4 +1,5 @@ { + config, inputs, lib, ... @@ -9,6 +10,7 @@ let attrValues concatLists filter + mapAttrsToList ; inherit (lib.my) @@ -20,6 +22,7 @@ in push = { ilkecan = concatLists [ (filter isPatchedInput (attrValues inputs)) + (mapAttrsToList (_: v: v.apps.ci.program) config.allSystems) ]; }; }; diff --git a/nix/hosts/mephistopheles/sops.nix b/nix/hosts/mephistopheles/sops.nix index 6476e29..15409d2 100644 --- a/nix/hosts/mephistopheles/sops.nix +++ b/nix/hosts/mephistopheles/sops.nix @@ -31,7 +31,7 @@ in templates = { nix-access-tokens = { content = '' - access-tokens = ${concatStringsSep " " (mapAttrsToList (k: v: "${k}=${v}") nixAccessTokens)} + access-tokens = ${concatStringsSep " " (mapAttrsToList (n: v: "${n}=${v}") nixAccessTokens)} ''; group = config.users.groups.wheel.name; mode = "0440"; diff --git a/nix/users/ilkecan/internet/web/browsers/firefox/profiles/ilkecan/search.nix b/nix/users/ilkecan/internet/web/browsers/firefox/profiles/ilkecan/search.nix index de8de0b..96c2a9a 100644 --- a/nix/users/ilkecan/internet/web/browsers/firefox/profiles/ilkecan/search.nix +++ b/nix/users/ilkecan/internet/web/browsers/firefox/profiles/ilkecan/search.nix @@ -157,7 +157,7 @@ in q = "{searchTerms}"; udm = "14"; # https://udm14.org/ }; - query = concatStringsSep "&" (mapAttrsToList (k: v: "${k}=${v}") queryParams); + query = concatStringsSep "&" (mapAttrsToList (n: v: "${n}=${v}") queryParams); in [ { template = "https://www.google.com/search?${query}"; } ]; iconMapObj."32" = "https://www.google.com/favicon.ico"; From b7aa850003e515100e57c21557bb80636eebd2f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Sat, 21 Mar 2026 15:20:57 +0300 Subject: [PATCH 3/8] flake: update inputs --- flake.lock | 38 +++++++++---------- flake.nix | 2 +- .../wayland/dank-material-shell/default.nix | 4 -- 3 files changed, 20 insertions(+), 24 deletions(-) diff --git a/flake.lock b/flake.lock index e6e8ab7..a2ccbc5 100644 --- a/flake.lock +++ b/flake.lock @@ -181,16 +181,16 @@ "quickshell": "quickshell" }, "locked": { - "lastModified": 1771984142, - "narHash": "sha256-5T139SdJNObUXrZ5afKUL+e6U8wqRsSX+yzcGKqFAkc=", + "lastModified": 1774051185, + "narHash": "sha256-rfWvWbPVrpujmBp/q9My/70fWgRLaELdrnZB3CZKlWg=", "owner": "AvengeMedia", "repo": "DankMaterialShell", - "rev": "3f24cf37cafefd27240c70c55b82d250bc28d26f", + "rev": "1f64bb80311e0169e75a6a507fc07d909117c90c", "type": "github" }, "original": { "owner": "AvengeMedia", - "ref": "v1.4.3", + "ref": "v1.4.4", "repo": "DankMaterialShell", "type": "github" } @@ -202,11 +202,11 @@ ] }, "locked": { - "lastModified": 1773969361, - "narHash": "sha256-SrcN2XRc+u/YGVS/C5UqLTIgBcFtXbFqWuAhq2VnryM=", + "lastModified": 1774055499, + "narHash": "sha256-8Br5CVZQH0ZYf+yT1cmhqWN/qDzW9MxbMJRoUtZZMyY=", "owner": "AvengeMedia", "repo": "dms-plugin-registry", - "rev": "72d0c4135b5a73d5452d1508360e0498bebccdda", + "rev": "3aad8d18fad8688ecb85074f8d276c80b9ee6a17", "type": "github" }, "original": { @@ -448,11 +448,11 @@ ] }, "locked": { - "lastModified": 1773979202, - "narHash": "sha256-cFe/HoD9XFkCQALm+y1kTOBvKGQA8p0YsBxLpWCsZAw=", + "lastModified": 1774063450, + "narHash": "sha256-p1Y2iUsWyLKk1z35OdAGcEpmbpRTG3AgjdyAVh5kmc8=", "owner": "numtide", "repo": "llm-agents.nix", - "rev": "124f2bbdf02a73235a74bc353fc9c706a3b0e015", + "rev": "71c3b957aeb56aea79fd9a964e3f0bff2b794251", "type": "github" }, "original": { @@ -640,11 +640,11 @@ ] }, "locked": { - "lastModified": 1773974133, - "narHash": "sha256-YNmOHKQM4pHAw0Kjn+0cCoV06VkUjG7JCWqjO8OA+lc=", + "lastModified": 1774013813, + "narHash": "sha256-gaKNu+dW6lA4LU8PM4pNqmaqoY8hIggM7ticP6VjVFk=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "2776c24f60b202f872703f820d322f1cd0747b4f", + "rev": "342bd5c65526d57b7bed200c8219d1a48414c806", "type": "github" }, "original": { @@ -689,11 +689,11 @@ ] }, "locked": { - "lastModified": 1773994878, - "narHash": "sha256-vA7ZUmJ2CvW0utYZaJoAPrUbK4JzykBXu1lcBNc67AQ=", + "lastModified": 1774085563, + "narHash": "sha256-u12oksXYS8YNphdTsCTgCQcKuVNvCX/CKVjg7ki74YA=", "owner": "kaylorben", "repo": "nixcord", - "rev": "148c632f3ba29e32695225631a1e7d255136f749", + "rev": "5bc81fedc7df61c80f5480610ff7e35192d8e1d4", "type": "github" }, "original": { @@ -783,11 +783,11 @@ ] }, "locked": { - "lastModified": 1774007207, - "narHash": "sha256-zbNHZpVMc6tkNhb6WPkoyz7d5K6n1EKATEwd9YTqo0o=", + "lastModified": 1774086764, + "narHash": "sha256-RC5/86A51KqVPMUTK9DtVy6DkCk538yyk+erJwIkoSs=", "owner": "nix-community", "repo": "NUR", - "rev": "2c357bd5d64ffcd4a33b4ff83b0ecf86f7ee871c", + "rev": "4874dec9b7f1e7c17293593917d499a411706a12", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index b281328..2b13f95 100644 --- a/flake.nix +++ b/flake.nix @@ -50,7 +50,7 @@ }; }; dms = { - url = "github:AvengeMedia/DankMaterialShell/v1.4.3"; + url = "github:AvengeMedia/DankMaterialShell/v1.4.4"; inputs.nixpkgs.follows = "nixpkgs"; }; dms-plugin-registry = { diff --git a/nix/users/ilkecan/wayland/dank-material-shell/default.nix b/nix/users/ilkecan/wayland/dank-material-shell/default.nix index e7a7ff5..e5e5f2e 100644 --- a/nix/users/ilkecan/wayland/dank-material-shell/default.nix +++ b/nix/users/ilkecan/wayland/dank-material-shell/default.nix @@ -1,5 +1,4 @@ { - inputs', lib, options, pkgs, @@ -22,9 +21,6 @@ in programs.dank-material-shell = { enable = true; - package = inputs'.dms.packages.dms-shell.overrideAttrs { - vendorHash = "sha256-cVUJXgzYMRSM0od1xzDVkMTdxHu3OIQX2bQ8AJbGQ1Q="; - }; dgop.package = pkgs.unstable.dgop; From d3774af3efcbd312da70c036571e2af148994221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Sat, 21 Mar 2026 15:43:38 +0300 Subject: [PATCH 4/8] ilkecan/niri/autostart: add `nautilus $HOME` --- nix/users/ilkecan/wayland/niri/autostart.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nix/users/ilkecan/wayland/niri/autostart.nix b/nix/users/ilkecan/wayland/niri/autostart.nix index f6c8793..5af13c7 100644 --- a/nix/users/ilkecan/wayland/niri/autostart.nix +++ b/nix/users/ilkecan/wayland/niri/autostart.nix @@ -41,6 +41,12 @@ in } { argv = [ "firefox" ]; } { argv = [ "io.gitlab.news_flash.NewsFlash" ]; } + { + argv = [ + "nautilus" + homeDirectory + ]; + } { argv = [ "solaar" From 69d543d8155a1debb8d7390dd5d60a8cc0b884e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Sat, 21 Mar 2026 15:45:45 +0300 Subject: [PATCH 5/8] ilkecan/niri/window-rules: move `nixpkgs-review` ... to `nixpkgs` workspace. --- nix/users/ilkecan/wayland/niri/autostart.nix | 2 +- nix/users/ilkecan/wayland/niri/window-rules.nix | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/nix/users/ilkecan/wayland/niri/autostart.nix b/nix/users/ilkecan/wayland/niri/autostart.nix index 5af13c7..ee3382f 100644 --- a/nix/users/ilkecan/wayland/niri/autostart.nix +++ b/nix/users/ilkecan/wayland/niri/autostart.nix @@ -34,7 +34,7 @@ in argv = [ "alacritty" "--class" - "alacritty-review" + "alacritty-nixpkgs-review" "--working-directory" "${githubDir}/NixOS/nixpkgs/review" ]; diff --git a/nix/users/ilkecan/wayland/niri/window-rules.nix b/nix/users/ilkecan/wayland/niri/window-rules.nix index af64dbd..b521d55 100644 --- a/nix/users/ilkecan/wayland/niri/window-rules.nix +++ b/nix/users/ilkecan/wayland/niri/window-rules.nix @@ -16,9 +16,9 @@ open-on-workspace = "nixpkgs"; } { - matches = [ { app-id = "^alacritty-review$"; } ]; + matches = [ { app-id = "^alacritty-nixpkgs-review$"; } ]; open-maximized = true; - open-on-workspace = "review"; + open-on-workspace = "nixpkgs"; } { matches = [ { app-id = "^chromium-browser$"; } ]; From afd4c643d7b4106dab8d9a832b36254740aef68f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Sat, 21 Mar 2026 15:47:52 +0300 Subject: [PATCH 6/8] ilkecan/niri/workspaces/dp-3: move `nixpkgs` to `6` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... and add `α` & `β` for projects. --- nix/users/ilkecan/wayland/niri/workspaces/dp-3.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nix/users/ilkecan/wayland/niri/workspaces/dp-3.nix b/nix/users/ilkecan/wayland/niri/workspaces/dp-3.nix index b9f994a..0497e8c 100644 --- a/nix/users/ilkecan/wayland/niri/workspaces/dp-3.nix +++ b/nix/users/ilkecan/wayland/niri/workspaces/dp-3.nix @@ -2,9 +2,10 @@ output = "DP-3"; workspaces = [ "config" - "nixpkgs" - "review" + "α" + "β" "browser" "files" + "nixpkgs" ]; } From 2b5ac4c440038589c69d8380a9fdbd15e7031b51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Sat, 21 Mar 2026 19:02:39 +0300 Subject: [PATCH 7/8] ilkecan/zellij: add `rust` layout --- .../ilkecan/utilities/zellij/layouts.nix | 23 ++++ .../ilkecan/utilities/zellij/layouts/code.nix | 118 +++++++++--------- .../utilities/zellij/layouts/default.nix | 13 -- .../ilkecan/utilities/zellij/layouts/rust.nix | 99 +++++++++++++++ 4 files changed, 180 insertions(+), 73 deletions(-) create mode 100644 nix/users/ilkecan/utilities/zellij/layouts.nix delete mode 100644 nix/users/ilkecan/utilities/zellij/layouts/default.nix create mode 100644 nix/users/ilkecan/utilities/zellij/layouts/rust.nix diff --git a/nix/users/ilkecan/utilities/zellij/layouts.nix b/nix/users/ilkecan/utilities/zellij/layouts.nix new file mode 100644 index 0000000..2b3af6e --- /dev/null +++ b/nix/users/ilkecan/utilities/zellij/layouts.nix @@ -0,0 +1,23 @@ +{ + config, + lib, + ... +}: + +let + inherit (lib) + removeSuffix + ; + + inherit (lib.my) + importTree + ; +in +{ + programs.zellij.layouts = importTree { + root = ./layouts; + depth = 1; + importFn = x: import x { inherit config; }; + normalizeNameFn = removeSuffix ".nix"; + }; +} diff --git a/nix/users/ilkecan/utilities/zellij/layouts/code.nix b/nix/users/ilkecan/utilities/zellij/layouts/code.nix index d34c7a3..dbbbf4f 100644 --- a/nix/users/ilkecan/utilities/zellij/layouts/code.nix +++ b/nix/users/ilkecan/utilities/zellij/layouts/code.nix @@ -4,67 +4,65 @@ }: { - programs.zellij.layouts.code = { - layout._children = [ - { - tab = { - _props = { - name = "Neovim"; - focus = true; - hide_floating_panes = true; - }; - _children = [ - { pane._props.command = "nvim"; } - { - floating_panes.pane._props = { - command = "codex"; - x = "10%"; - y = "10%"; - width = "80%"; - height = "80%"; - }; - } - { - pane = { - _props = { - size = 1; - borderless = true; - }; - plugin._props.location = "zellij:compact-bar"; - }; - } - ]; + layout._children = [ + { + tab = { + _props = { + name = "Neovim"; + focus = true; + hide_floating_panes = true; }; - } - { - tab = { - _props = { - name = "terminal"; - hide_floating_panes = true; - }; - _children = [ - { pane._props.command = config.home.defaultShell.meta.mainProgram; } - { - floating_panes.pane._props = { - command = "zsh"; - x = "10%"; - y = "10%"; - width = "80%"; - height = "80%"; + _children = [ + { pane._props.command = "nvim"; } + { + floating_panes.pane._props = { + command = "codex"; + x = "10%"; + y = "10%"; + width = "80%"; + height = "80%"; + }; + } + { + pane = { + _props = { + size = 1; + borderless = true; }; - } - { - pane = { - _props = { - size = 1; - borderless = true; - }; - plugin._props.location = "zellij:compact-bar"; - }; - } - ]; + plugin._props.location = "zellij:compact-bar"; + }; + } + ]; + }; + } + { + tab = { + _props = { + name = "terminal"; + hide_floating_panes = true; }; - } - ]; - }; + _children = [ + { pane._props.command = config.home.defaultShell.meta.mainProgram; } + { + floating_panes.pane._props = { + command = "zsh"; + x = "10%"; + y = "10%"; + width = "80%"; + height = "80%"; + }; + } + { + pane = { + _props = { + size = 1; + borderless = true; + }; + plugin._props.location = "zellij:compact-bar"; + }; + } + ]; + }; + } + ]; } diff --git a/nix/users/ilkecan/utilities/zellij/layouts/default.nix b/nix/users/ilkecan/utilities/zellij/layouts/default.nix deleted file mode 100644 index 05058df..0000000 --- a/nix/users/ilkecan/utilities/zellij/layouts/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - lib, - ... -}: - -let - inherit (lib.my) - collectImports - ; -in -{ - imports = collectImports ./.; -} diff --git a/nix/users/ilkecan/utilities/zellij/layouts/rust.nix b/nix/users/ilkecan/utilities/zellij/layouts/rust.nix new file mode 100644 index 0000000..330d09c --- /dev/null +++ b/nix/users/ilkecan/utilities/zellij/layouts/rust.nix @@ -0,0 +1,99 @@ +{ + config, + ... +}: + +{ + layout._children = [ + { + tab = { + _props = { + name = "Neovim"; + focus = true; + hide_floating_panes = true; + }; + _children = [ + { pane._props.command = "nvim"; } + { + floating_panes.pane._props = { + command = "codex"; + x = "10%"; + y = "10%"; + width = "80%"; + height = "80%"; + }; + } + { + pane = { + _props = { + size = 1; + borderless = true; + }; + plugin._props.location = "zellij:compact-bar"; + }; + } + ]; + }; + } + { + tab = { + _props = { + name = "terminal"; + hide_floating_panes = true; + }; + _children = [ + { + pane = { + _props.split_direction = "vertical"; + _children = [ + { pane._props.command = config.home.defaultShell.meta.mainProgram; } + { + pane = { + _props.split_direction = "horizontal"; + _children = [ + { + cargo.args = [ + "clippy" + "--all-targets" + "--" + "--deny" + "warnings" + ]; + } + { cargo.args = [ "test" ]; } + ]; + }; + } + ]; + }; + } + { + floating_panes.pane._props = { + command = "zsh"; + x = "10%"; + y = "10%"; + width = "80%"; + height = "80%"; + }; + } + { + pane = { + _props = { + size = 1; + borderless = true; + }; + plugin._props.location = "zellij:compact-bar"; + }; + } + ]; + }; + } + { + pane_template = { + _props.name = "cargo"; + command = "cargo"; + start_suspended = true; + }; + } + ]; +} From 18662c0cd7c4e764dd23c055f1d2c72fe232adce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Sun, 22 Mar 2026 01:56:30 +0300 Subject: [PATCH 8/8] mephi: enable `programs.ydotool` --- nix/hosts/mephistopheles/input.nix | 10 +++++++++- nix/users/ilkecan/command-line/default.nix | 1 - 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/nix/hosts/mephistopheles/input.nix b/nix/hosts/mephistopheles/input.nix index 292b914..8051d20 100644 --- a/nix/hosts/mephistopheles/input.nix +++ b/nix/hosts/mephistopheles/input.nix @@ -1,10 +1,15 @@ { + config, pkgs, userConfig, ... }: { + programs = { + ydotool.enable = true; # https://github.com/ReimuNotMoe/ydotool + }; + services = { libinput = { enable = true; @@ -20,5 +25,8 @@ }; }; - users.groups.input.members = [ userConfig.home.username ]; + users.groups = { + ${config.programs.ydotool.group}.members = [ userConfig.home.username ]; + input.members = [ userConfig.home.username ]; + }; } diff --git a/nix/users/ilkecan/command-line/default.nix b/nix/users/ilkecan/command-line/default.nix index 8beea61..b657a38 100644 --- a/nix/users/ilkecan/command-line/default.nix +++ b/nix/users/ilkecan/command-line/default.nix @@ -26,7 +26,6 @@ in lz4 page watchexec - ydotool ]; };