4 Commits
Author SHA1 Message Date
m3ta-chiron 7adfc8d808 chore: updates 2026-08-02 14:07:24 +02:00
m3ta-chiron 858ed2000e fix: LLM-Agents overlay 2026-08-02 09:45:21 +02:00
m3ta-chiron ef421306dd chore: flake update 2026-08-01 11:06:19 +02:00
m3ta-chiron 58fecf72df feat: migrate host Hyprland overrides to Lua 2026-08-01 10:53:09 +02:00
4 changed files with 241 additions and 92 deletions
Generated
+38 -38
View File
@@ -154,16 +154,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1774505501, "lastModified": 1785348116,
"narHash": "sha256-7UiRrDptj7yuEFwToOfdunUMz/i3jRLR7CmMoYQjq6k=", "narHash": "sha256-AVycTcomtfvQJ/AHvMg5xu7lVoOzDXxjN+pV7mqUIQ4=",
"owner": "basecamp", "owner": "basecamp",
"repo": "basecamp-cli", "repo": "basecamp-cli",
"rev": "f087e6ef84002503d0dbc75ea1c8c928a8928d9e", "rev": "e1059fb123a03295ce6176272e4bbaf43d7971c6",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "basecamp", "owner": "basecamp",
"ref": "v0.7.2", "ref": "v0.8.0-rc.1",
"repo": "basecamp-cli", "repo": "basecamp-cli",
"type": "github" "type": "github"
} }
@@ -176,16 +176,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1774505501, "lastModified": 1785348116,
"narHash": "sha256-7UiRrDptj7yuEFwToOfdunUMz/i3jRLR7CmMoYQjq6k=", "narHash": "sha256-AVycTcomtfvQJ/AHvMg5xu7lVoOzDXxjN+pV7mqUIQ4=",
"owner": "basecamp", "owner": "basecamp",
"repo": "basecamp-cli", "repo": "basecamp-cli",
"rev": "f087e6ef84002503d0dbc75ea1c8c928a8928d9e", "rev": "e1059fb123a03295ce6176272e4bbaf43d7971c6",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "basecamp", "owner": "basecamp",
"ref": "v0.7.2", "ref": "v0.8.0-rc.1",
"repo": "basecamp-cli", "repo": "basecamp-cli",
"type": "github" "type": "github"
} }
@@ -534,11 +534,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1785306346, "lastModified": 1785531816,
"narHash": "sha256-DScBkW0fOgpGPK2trNoX3ryLTlaC14+gglFo/BhGJ4g=", "narHash": "sha256-vkMnV0JIyw+g/NmcfoajlGaAO+9a0ezia+FZohQJrik=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e705714e918c3b11affcdd15db2cbe3a070420a0", "rev": "bf9ce9fec78f95f374e8dd3b503863a3ec128ebe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -621,11 +621,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1785380302, "lastModified": 1785566656,
"narHash": "sha256-U7x7jYEBE3kFpmZI3CGP7fLC/uz/KxS3uTtg36AoEok=", "narHash": "sha256-mwIyMLuxUzYDYLk09QL0uKtkNvjQJ0LKOWErMeqNSz4=",
"owner": "numtide", "owner": "numtide",
"repo": "llm-agents.nix", "repo": "llm-agents.nix",
"rev": "e23b9c324dd5a79189d97e5603067517ac629c0d", "rev": "e222bd1e402f711646012624665af754d00bfa62",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -651,11 +651,11 @@
"nur": "nur" "nur": "nur"
}, },
"locked": { "locked": {
"lastModified": 1785414133, "lastModified": 1785670861,
"narHash": "sha256-dsHTEE3un56y9i9hXD54pZ5e8qzAUmySbXYQOj8VSQg=", "narHash": "sha256-YqqpjjW0zcI/cqtmTM18q8Xi5y/g060ApVLLNw0RXg4=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "4dec87ebc786b387c930c64115bd3790d46545d1", "rev": "516f9d74e0be79dfa5fc29c98f2d1e5b04fdf4eb",
"revCount": 101, "revCount": 104,
"type": "git", "type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/m3ta-home" "url": "ssh://gitea@code.m3ta.dev/m3tam3re/m3ta-home"
}, },
@@ -677,11 +677,11 @@
"openspec": "openspec" "openspec": "openspec"
}, },
"locked": { "locked": {
"lastModified": 1785395945, "lastModified": 1785670526,
"narHash": "sha256-/J1bkZi7tb+DxUN3G9bJBCxaJpG4373L+AjxF8SoX9M=", "narHash": "sha256-tC1CW+Kxh9ZZxJC0y472i0KoieMqNwNi+AiCmS4n7To=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "e3ebb76b1c26ecc3311d65b25fa38d70313b6804", "rev": "69fce234a8607cd3e71233831564b8ceeba70626",
"revCount": 371, "revCount": 374,
"type": "git", "type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs" "url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs"
}, },
@@ -700,11 +700,11 @@
"openspec": "openspec_2" "openspec": "openspec_2"
}, },
"locked": { "locked": {
"lastModified": 1785397255, "lastModified": 1785670526,
"narHash": "sha256-eKgjP0pRJbdGLzGhP7QCdcugUr4/0WGhxKwieJNNodk=", "narHash": "sha256-tC1CW+Kxh9ZZxJC0y472i0KoieMqNwNi+AiCmS4n7To=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "1cbde05767dacdbb5e2c07a4b45fa72f8d9307ed", "rev": "69fce234a8607cd3e71233831564b8ceeba70626",
"revCount": 372, "revCount": 374,
"type": "git", "type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs" "url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs"
}, },
@@ -865,11 +865,11 @@
}, },
"nixpkgs-master_3": { "nixpkgs-master_3": {
"locked": { "locked": {
"lastModified": 1785392119, "lastModified": 1785574108,
"narHash": "sha256-ZsCNayQNeYU9Ej3+5eWEQPVPuO/tqzhJZplhFvUqqG8=", "narHash": "sha256-42rCJTtjakPutQcyJ8ru33XiWOY5lwoGAYb/eGlo1ug=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "38225e394d6332f77ba809996c81f5e31d59ee24", "rev": "c5d13b19fd9ad379d7adec5820903448e4ea9443",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -913,11 +913,11 @@
}, },
"nixpkgs_11": { "nixpkgs_11": {
"locked": { "locked": {
"lastModified": 1785301185, "lastModified": 1785483748,
"narHash": "sha256-eoS3KQTO0aPWXZvIaRbRAzSSHW3l5wdMFXtT1ISfoKA=", "narHash": "sha256-M4HXpLsR7iFTNQfD/q+zK8/QeRYztYVDVIdIgCVGGZ0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9bc02893134c733dd85de46ee4fb2fac696b5529", "rev": "59ea0b1c043c463e39fcb3cfb9a5c8bcf0777c72",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -961,11 +961,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1785301185, "lastModified": 1785452004,
"narHash": "sha256-eoS3KQTO0aPWXZvIaRbRAzSSHW3l5wdMFXtT1ISfoKA=", "narHash": "sha256-k94ksv7XmaLeK5sE1ST/TTdu2aDEO9sfbcgEaNJPTXA=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9bc02893134c733dd85de46ee4fb2fac696b5529", "rev": "a5e9f2fd9ef6011c6886d6935f3ef678c81385fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1141,11 +1141,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1785391787, "lastModified": 1785574468,
"narHash": "sha256-h+eDCc7/ipd399jvupDPSFBIl7958CJ5n9XfvpW41IE=", "narHash": "sha256-vCcf9ERdAwolKzV77eTc/FoClawvNElD3u25I7YErT8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "baf5d9e909898e47688c43cec760b8dbcc9f1fa5", "rev": "cd37a144ec121ea1f68bb4291944cc9fa9ec08d1",
"type": "github" "type": "github"
}, },
"original": { "original": {
+92 -20
View File
@@ -7,7 +7,20 @@
lib, lib,
... ...
}: }:
with lib; { with lib; let
lua = lib.generators.mkLuaInline;
startupCommand = command: {
_args = [
"hyprland.start"
(lua ''
function()
hl.exec_cmd(${builtins.toJSON command})
end
'')
];
};
in {
config = mkMerge [ config = mkMerge [
# ── XDG / MIME defaults ── # ── XDG / MIME defaults ──
{ {
@@ -41,28 +54,87 @@ with lib; {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
settings = { settings = {
exec-once = ["tuxedo-backlight"]; on = [
(startupCommand "tuxedo-backlight")
];
monitor = [ monitor = [
"eDP-1,preferred,0x0,1.25" {
"HDMI-A-1,1920x1080@120,2560x0,1" output = "eDP-1";
mode = "preferred";
position = "0x0";
scale = 1.25;
}
{
output = "HDMI-A-1";
mode = "1920x1080@120";
position = "2560x0";
scale = 1;
}
]; ];
workspace = [ workspace_rule = [
"1, monitor:eDP-1, default:true" {
"2, monitor:eDP-1" workspace = "1";
"3, monitor:eDP-1" monitor = "eDP-1";
"4, monitor:HDMI-A-1" default = true;
"5, monitor:HDMI-A-1,border:false,rounding:false" }
"6, monitor:HDMI-A-1" {
workspace = "2";
monitor = "eDP-1";
}
{
workspace = "3";
monitor = "eDP-1";
}
{
workspace = "4";
monitor = "HDMI-A-1";
}
{
workspace = "5";
monitor = "HDMI-A-1";
no_border = true;
no_rounding = true;
}
{
workspace = "6";
monitor = "HDMI-A-1";
}
]; ];
windowrule = [ window_rule = [
"match:class dev.zed.Zed, workspace 1" {
"match:class Msty, workspace 1" match.class = "dev.zed.Zed";
"match:class ^(com.obsproject.Studio)$, workspace 2" workspace = "1";
"match:class ^(brave-browser)$, workspace 4, opacity 1.0" }
"match:class ^(vivaldi-stable)$, workspace 4, opacity 1.0" {
"match:class ^steam_app_\\d+$, fullscreen on" match.class = "Msty";
"match:class ^steam_app_\\d+$, workspace 5" workspace = "1";
"match:class ^steam_app_\\d+$, idle_inhibit focus" }
{
match.class = "^(com.obsproject.Studio)$";
workspace = "2";
}
{
match.class = "^(brave-browser)$";
workspace = "4";
opacity = "1.0";
}
{
match.class = "^(vivaldi-stable)$";
workspace = "4";
opacity = "1.0";
}
{
match.class = "^steam_app_\\d+$";
fullscreen = true;
}
{
match.class = "^steam_app_\\d+$";
workspace = "5";
}
{
match.class = "^steam_app_\\d+$";
idle_inhibit = "focus";
}
]; ];
}; };
}; };
+86 -30
View File
@@ -7,7 +7,14 @@
lib, lib,
... ...
}: }:
with lib; { with lib; let
mkEnvVar = name: value: {
_args = [
name
value
];
};
in {
imports = [ imports = [
]; ];
@@ -47,40 +54,89 @@ with lib; {
enable = true; enable = true;
settings = { settings = {
monitor = [ monitor = [
"DP-1,2560x1440@144,0x0,1" {
"DP-2,2560x1440@144,2560x0,1" output = "DP-1";
mode = "2560x1440@144";
position = "0x0";
scale = 1;
}
{
output = "DP-2";
mode = "2560x1440@144";
position = "2560x0";
scale = 1;
}
]; ];
workspace = [ workspace_rule = [
"1, monitor:DP-1, default:true" {
"2, monitor:DP-1" workspace = "1";
"3, monitor:DP-1" monitor = "DP-1";
"4, monitor:DP-2" default = true;
"5, monitor:DP-2" }
"6, monitor:DP-2" {
"7, monitor:DP-2" workspace = "2";
monitor = "DP-1";
}
{
workspace = "3";
monitor = "DP-1";
}
{
workspace = "4";
monitor = "DP-2";
}
{
workspace = "5";
monitor = "DP-2";
}
{
workspace = "6";
monitor = "DP-2";
}
{
workspace = "7";
monitor = "DP-2";
}
]; ];
# m3ta-home sets QT_QPA_PLATFORMTHEME=gtk3 globally for Hyprland. # m3ta-home sets QT_QPA_PLATFORMTHEME to gtk3 globally for Hyprland.
# ksnip crashes with duplicate GDK type registration under that Qt GTK # ksnip crashes with duplicate GDK type registration under that Qt GTK
# platform theme, so use qtct for Qt apps on this host instead. # platform theme, so use qtct for Qt apps on this host instead.
env = mkForce [ "env" = mkForce [
"XCURSOR_SIZE,32" (mkEnvVar "XCURSOR_SIZE" "32")
"HYPRCURSOR_THEME,Bibata-Modern-Ice" (mkEnvVar "HYPRCURSOR_THEME" "Bibata-Modern-Ice")
"WLR_NO_HARDWARE_CURSORS,1" (mkEnvVar "WLR_NO_HARDWARE_CURSORS" "1")
"XDG_CURRENT_DESKTOP,Hyprland" (mkEnvVar "XDG_CURRENT_DESKTOP" "Hyprland")
"XDG_SESSION_TYPE,wayland" (mkEnvVar "XDG_SESSION_TYPE" "wayland")
"XDG_SESSION_DESKTOP,Hyprland" (mkEnvVar "XDG_SESSION_DESKTOP" "Hyprland")
"XKB_DEFAULT_LAYOUT,de" (mkEnvVar "XKB_DEFAULT_LAYOUT" "de")
"NIXOS_OZONE_WL,1" (mkEnvVar "NIXOS_OZONE_WL" "1")
"QT_QPA_PLATFORM,wayland;xcb" (mkEnvVar "QT_QPA_PLATFORM" "wayland;xcb")
"QT_QPA_PLATFORMTHEME,qt5ct" (mkEnvVar "QT_QPA_PLATFORMTHEME" "qt5ct")
"QT_QPA_PLATFORMTHEME_QT6,qt6ct" (mkEnvVar "QT_QPA_PLATFORMTHEME_QT6" "qt6ct")
]; ];
windowrule = [ window_rule = [
"match:class dev.zed.Zed, workspace 1" {
"match:class ^(com.obsproject.Studio)$, workspace 2" match.class = "dev.zed.Zed";
"match:class ^(brave-browser)$, workspace 4, opacity 1.0" workspace = "1";
"match:class ^(vivaldi-stable)$, workspace 4, opacity 1.0" }
"match:class ^steam_app_\\d+$, idle_inhibit focus" {
match.class = "^(com.obsproject.Studio)$";
workspace = "2";
}
{
match.class = "^(brave-browser)$";
workspace = "4";
opacity = "1.0";
}
{
match.class = "^(vivaldi-stable)$";
workspace = "4";
opacity = "1.0";
}
{
match.class = "^steam_app_\\d+$";
idle_inhibit = "focus";
}
]; ];
}; };
}; };
+25 -4
View File
@@ -7,7 +7,7 @@
# This one contains whatever you want to overlay # This one contains whatever you want to overlay
# You can change versions, add patches, set compilation flags, anything really. # You can change versions, add patches, set compilation flags, anything really.
# https://nixos.wiki/wiki/Overlays # https://nixos.wiki/wiki/Overlays
modifications = final: prev: { modifications = _final: _prev: {
# n8n = import ./mods/n8n.nix {inherit prev;}; # n8n = import ./mods/n8n.nix {inherit prev;};
# brave = prev.brave.override { # brave = prev.brave.override {
@@ -64,15 +64,36 @@
# recursion that occurs when accessing final/prev.system while the fixed-point # recursion that occurs when accessing final/prev.system while the fixed-point
# is still being computed. Exposed via outputs.lib, not outputs.overlays. # is still being computed. Exposed via outputs.lib, not outputs.overlays.
# #
# Filters out the 16 internal helpers (marked `passthru.hideFromDocs = true` # Use llm-agents' shared-nixpkgs overlay so packages with optional GPU support
# (notably qmd) are built against this system's pkgs/config. Using the flake's
# pre-built `packages.${system}` set pins them to llm-agents' own nixpkgs,
# where allowUnfree is false; qmd.override { cudaSupport = true; } then fails
# on CUDA EULA packages during the m3-ares NVIDIA specialisation build.
#
# Keep the exposed top-level package names aligned with llm-agents' filtered
# flake packages, but take the package values from the shared package set.
# Filters out internal helpers (marked `passthru.hideFromDocs = true`
# upstream) that would otherwise clobber nixpkgs attributes. Most critically # upstream) that would otherwise clobber nixpkgs attributes. Most critically
# this excludes `buildNpmPackage` — llm-agents' buildNpmPackage is a guarded # this excludes `buildNpmPackage` — llm-agents' buildNpmPackage is a guarded
# re-export whose `__functor`/`override` interaction with makeOverridable # re-export whose `__functor`/`override` interaction with makeOverridable
# breaks any package (e.g. nixpkgs' webcord) that calls # breaks any package (e.g. nixpkgs' webcord) that calls
# `buildNpmPackage.override { nodejs = ...; }`. See numtide/llm-agents.nix # `buildNpmPackage.override { nodejs = ...; }`. See numtide/llm-agents.nix
# commit 40490259 and the wrapper at packages/buildNpmPackage/package.nix. # commit 40490259 and the wrapper at packages/buildNpmPackage/package.nix.
mkLlmAgentsOverlay = system: _final: _prev: mkLlmAgentsOverlay = system: final: prev: let
builtins.removeAttrs (inputs.llm-agents.packages.${system} or {}) [ sharedPackages = (inputs.llm-agents.overlays.shared-nixpkgs final prev).llm-agents or {};
exposedPackageNames =
builtins.filter
(name: inputs.nixpkgs.lib.hasAttrByPath [name] sharedPackages)
(builtins.attrNames (inputs.llm-agents.packages.${system} or {}));
exposedPackages =
builtins.listToAttrs
(map (name: {
inherit name;
value = sharedPackages.${name};
})
exposedPackageNames);
in
builtins.removeAttrs exposedPackages [
# Internal helpers from packages/* marked hideFromDocs upstream: # Internal helpers from packages/* marked hideFromDocs upstream:
"antigravity" "antigravity"
"auto-claude" "auto-claude"