feat: drop ethui and maestro

Both pinned their own nixpkgs, so removing them takes two extra nixpkgs
trees and a Rust toolchain out of the closure.

The konishi hyprland window rules for `ethui-dev.*` stay: they match a
locally built dev binary, not the packaged build.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Miguel Palhas
2026-10-03 10:03:28 +01:00
co-authored by Claude
parent 5cd2001858
commit 44e58a1df8
9 changed files with 35 additions and 269 deletions
Generated
+25 -231
View File
@@ -124,42 +124,6 @@
"type": "github"
}
},
"crane_2": {
"locked": {
"lastModified": 1787326676,
"narHash": "sha256-lWhBbBvC05/xwivKBBiM2YNizpmgqCgyOIzomvRuwxs=",
"owner": "ipetkov",
"repo": "crane",
"rev": "692f7e9ef2ece8125b466f66f2af532b3edaed0d",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"ethui": {
"inputs": {
"nixpkgs": "nixpkgs_3",
"rust": "rust",
"utils": "utils"
},
"locked": {
"lastModified": 1782568637,
"narHash": "sha256-IeegzgsunnrAQbNvdZKccstoKaTyUOj/oLyFY5pOJRA=",
"owner": "ethui",
"repo": "ethui",
"rev": "16a2c401793464ee5dc013e01564039904280e88",
"type": "github"
},
"original": {
"owner": "ethui",
"ref": "nix",
"repo": "ethui",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
@@ -198,24 +162,6 @@
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1785627969,
"narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_3"
},
"locked": {
"lastModified": 1775087534,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
@@ -265,7 +211,7 @@
},
"flake-utils_3": {
"inputs": {
"systems": "systems_7"
"systems": "systems_6"
},
"locked": {
"lastModified": 1731533236,
@@ -433,9 +379,9 @@
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_3",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_4",
"systems": "systems_3",
"xdph": "xdph"
},
"locked": {
@@ -560,7 +506,7 @@
"rose-pine-hyprcursor",
"nixpkgs"
],
"systems": "systems_5"
"systems": "systems_4"
},
"locked": {
"lastModified": 1709914708,
@@ -728,27 +674,6 @@
"type": "github"
}
},
"maestro": {
"inputs": {
"crane": "crane_2",
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_6",
"process-compose-flake": "process-compose-flake"
},
"locked": {
"lastModified": 1789640329,
"narHash": "sha256-tkynYAtF4xuviEh6RccNusPHJDOreOjJ+ubrjTh8vGY=",
"ref": "refs/heads/main",
"rev": "b27dda6c6b4f72eb295bee9a7667070edfbfd91d",
"revCount": 949,
"type": "git",
"url": "https://git.naps.pt/naps62/maestro.git"
},
"original": {
"type": "git",
"url": "https://git.naps.pt/naps62/maestro.git"
}
},
"nix-flatpak": {
"locked": {
"lastModified": 1767983141,
@@ -839,21 +764,6 @@
}
},
"nixpkgs-lib_2": {
"locked": {
"lastModified": 1785031560,
"narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-lib_3": {
"locked": {
"lastModified": 1774748309,
"narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=",
@@ -885,38 +795,6 @@
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1764517877,
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1744536153,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1786247143,
"narHash": "sha256-8S3Kcxs7D4UtxJxSJZz0m14CGhuW0MxfrIwJxeGWGnQ=",
@@ -932,23 +810,7 @@
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1787135253,
"narHash": "sha256-RD2kNWCG+Bjo6h+JVjWVNntZs2GtRoeY2xHjts/FNkA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ffb3c9b700e759be2ef13237c9d8f953b32a1e46",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": {
"nixpkgs_4": {
"locked": {
"lastModified": 1790822859,
"narHash": "sha256-69xHQhAeMAD2wDXO7T2pcOZIF9Sga2W+JkmY2a11Ops=",
@@ -964,7 +826,7 @@
"type": "github"
}
},
"nixpkgs_8": {
"nixpkgs_5": {
"locked": {
"lastModified": 1775036866,
"narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
@@ -980,7 +842,7 @@
"type": "github"
}
},
"nixpkgs_9": {
"nixpkgs_6": {
"locked": {
"lastModified": 1744536153,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
@@ -1057,21 +919,6 @@
"type": "github"
}
},
"process-compose-flake": {
"locked": {
"lastModified": 1782060835,
"narHash": "sha256-Q8HH2t1l3MITtWCWY4ytcH5F/Q7aAHo3Iq/QTMAKTe0=",
"owner": "Platonic-Systems",
"repo": "process-compose-flake",
"rev": "464ff6880737f063c3f0d3d2c7781fda9190868f",
"type": "github"
},
"original": {
"owner": "Platonic-Systems",
"repo": "process-compose-flake",
"type": "github"
}
},
"rev": {
"inputs": {
"nixpkgs": [
@@ -1098,23 +945,21 @@
"agent-skills": "agent-skills",
"claude-code": "claude-code",
"codex-cli": "codex-cli",
"ethui": "ethui",
"foundry": "foundry",
"hardware": "hardware",
"home-manager": "home-manager",
"hyprland": "hyprland",
"jovian": "jovian",
"maestro": "maestro",
"nix-flatpak": "nix-flatpak",
"nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs_7",
"nixpkgs": "nixpkgs_4",
"nvchad-starter": "nvchad-starter",
"nvchad4nix": "nvchad4nix",
"rev": "rev",
"rose-pine-hyprcursor": "rose-pine-hyprcursor",
"sem": "sem",
"spicetify-nix": "spicetify-nix",
"systems": "systems_9",
"systems": "systems_8",
"zen-browser": "zen-browser"
}
},
@@ -1124,7 +969,7 @@
"nixpkgs": [
"nixpkgs"
],
"utils": "utils_2"
"utils": "utils"
},
"locked": {
"lastModified": 1748096947,
@@ -1140,27 +985,9 @@
"type": "github"
}
},
"rust": {
"inputs": {
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1764729618,
"narHash": "sha256-z4RA80HCWv2los1KD346c+PwNPzMl79qgl7bCVgz8X0=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "52764074a85145d5001bf0aa30cb71936e9ad5b8",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": "nixpkgs_9"
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1775445266,
@@ -1178,9 +1005,9 @@
},
"sem": {
"inputs": {
"flake-parts": "flake-parts_3",
"flake-parts": "flake-parts_2",
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_8",
"nixpkgs": "nixpkgs_5",
"rust-overlay": "rust-overlay"
},
"locked": {
@@ -1202,7 +1029,7 @@
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_8"
"systems": "systems_7"
},
"locked": {
"lastModified": 1786855359,
@@ -1250,16 +1077,16 @@
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"repo": "default-linux",
"type": "github"
}
},
@@ -1280,16 +1107,16 @@
},
"systems_5": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"repo": "default",
"type": "github"
}
},
@@ -1324,21 +1151,6 @@
}
},
"systems_8": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_9": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -1355,25 +1167,7 @@
},
"utils": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"utils_2": {
"inputs": {
"systems": "systems_6"
"systems": "systems_5"
},
"locked": {
"lastModified": 1710146030,
+2 -7
View File
@@ -40,8 +40,6 @@
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
# ethui pins its own nixpkgs (verified rust/tauri build) — do not follow.
ethui.url = "github:ethui/ethui/nix";
# hyprland pins its own nixpkgs to match its cachix cache — do not follow,
# or it compiles from source.
hyprland = {
@@ -58,17 +56,14 @@
url = "github:sadjow/codex-cli-nix/main";
inputs.nixpkgs.follows = "nixpkgs";
};
# Pinned to the tag, and pins its own nixpkgs for the same reason ethui does
# — it is a verified Rust build. Bump deliberately, not via `flake update`.
# Pinned to the tag, and pins its own nixpkgs — it is a verified Rust build.
# Bump deliberately, not via `flake update`.
agent-of-empires.url = "git+https://git.naps.pt/yolo/agent-of-empires.git";
# Semantic-diff tool rev calls via REV_SEM_BIN. NOT nixpkgs' `sem`, which is
# the unrelated Semaphore CI cli.
sem.url = "github:Ataraxy-Labs/sem";
# Claude Code + Codex skills, commands, hooks and CLAUDE.md fragments.
agent-skills.url = "git+https://git.naps.pt/yolo/agent-skills.git";
# Terminal-session orchestrator. Pins its own nixpkgs for the same reason
# ethui and agent-of-empires do — it is a verified Rust build.
maestro.url = "git+https://git.naps.pt/naps62/maestro.git";
# Always-on local code review server. Follows nixpkgs, unlike the Rust
# inputs above: it is a plain node bundle, and a second nixpkgs would put a
# second node 26 in the closure for nothing.
-1
View File
@@ -12,7 +12,6 @@
../common/programs/zen-browser.nix
../common/programs/hyprland
../common/programs/kitty
../common/programs/ethui.nix
../common/programs/gpg.nix
../common/features/xdg.nix
../common/features/downloads-cleanup.nix
-4
View File
@@ -1,4 +0,0 @@
{ inputs, pkgs, ... }:
{
home.packages = [ inputs.ethui.packages.${pkgs.stdenv.hostPlatform.system}.default ];
}
-7
View File
@@ -1,7 +0,0 @@
{ inputs, ... }:
# Maestro: the terminal-session orchestrator. Module only — no `enable` here,
# because the daemon owns every interactive shell on the host it runs on, and
# only one box should be doing that. Hosts opt in from their own services.nix.
{
imports = [ inputs.maestro.homeManagerModules.default ];
}
-1
View File
@@ -13,7 +13,6 @@
../common/programs/hyprland
../common/programs/kitty
../common/programs/gpg.nix
../common/programs/ethui.nix
../common/programs/3d.nix
../common/programs/godot.nix
../common/programs/gaming
-1
View File
@@ -22,7 +22,6 @@ in
../common/programs/kitty
../common/programs/gpg.nix
../common/programs/aoe
../common/programs/maestro
../common/programs/rev
../common/programs/nix-autodeploy
../common/features/xdg.nix
+5 -14
View File
@@ -5,9 +5,9 @@
}:
# The user services this box exists to run.
#
# maestro and rev come from their own flakes, so nix owns the build as well as
# the unit. aoe-web is still the odd one out: its unit is defined here and the
# binary comes from the flake input.
# rev comes from its own flake, so nix owns the build as well as the unit.
# aoe-web is still the odd one out: its unit is defined here and the binary
# comes from the flake input.
let
# A user unit gets almost no PATH by default; these are the profile dirs the
# original units got for free from the system PATH on Ubuntu.
@@ -51,14 +51,8 @@ in
pkgs.claude-agent-acp
];
# maestro's and rev's units come from their flake modules, not from the
# hand-written set below.
# rev's unit comes from its flake module, not from the hand-written set below.
#
# settings stays empty on purpose: ~/.config/maestro/config.toml is a
# hand-edited plain file, not nix-generated (module skips it iff `{}`).
# There is no `web.enable`: the daemon serves the UI on `daemon.bind_addr`.
services.maestro.enable = true;
# Everything under ~, three levels deep — the worktrees live at
# ~/<area>/<repo>/worktrees/<name>. sem gives entity-level diffs; without it
# rev falls back to line diffs.
@@ -69,9 +63,7 @@ in
semBin = "${sem}/bin/sem";
};
# One endpoint for every repo this config pins. All three apply straight
# away: a maestro restart drops the daemon but not the sessions it manages,
# so the interactive shells on this box survive it.
# One endpoint for every repo this config pins.
services.nixAutodeploy = {
enable = true;
flake = "/home/naps62/tea/nixos-config";
@@ -79,7 +71,6 @@ in
repos = {
"yolo/rev".input = "rev";
"yolo/agent-skills".input = "agent-skills";
"naps62/maestro".input = "maestro";
};
};
+3 -3
View File
@@ -35,9 +35,9 @@
# When the host pages this VM's memory out, KVM's async page fault parks
# the faulting task in an uninterruptible wait instead of stalling the
# whole vCPU. If the "page ready" wakeup is ever dropped, that task is
# wedged forever and SIGKILL cannot touch it — it took out maestro-web,
# nix activation generators and a dozen agent sessions, a few per day,
# until a reboot. Disabling async PF makes host page-ins stall the vCPU
# wedged forever and SIGKILL cannot touch it — it took out nix activation
# generators and a dozen agent sessions, a few per day, until a reboot.
# Disabling async PF makes host page-ins stall the vCPU
# synchronously: slower under host memory pressure, but nothing hangs.
"no-kvmapf"