diff --git a/.gitignore b/.gitignore
index e1f3e61..d90015c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,6 @@ devenv.local.yaml
# pre-commit
.pre-commit-config.yaml
+
+# ide
+.vscode/settings.json
diff --git a/configuration.nix b/configuration.nix
index 714be48..dab15d9 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -184,16 +184,13 @@
"pipewire"
];
packages = with pkgs; [
- # swaylock
swaybg
# swayimg
- swayidle
fuzzel
- xwayland-satellite
gamescope
telegram-desktop
ladybird
- krita
+ # krita # BOOST BROKE, FUCK
meld
pavucontrol
pwvucontrol
@@ -215,7 +212,6 @@
};
programs = {
- niri.enable = true;
gnome-terminal.enable = true;
thunar.enable = true; # TODO: replace
winbox = {
diff --git a/custom/hm/services/qdrant.nix b/custom/hm/services/qdrant.nix
index 49d57d9..a06ed93 100644
--- a/custom/hm/services/qdrant.nix
+++ b/custom/hm/services/qdrant.nix
@@ -1,10 +1,15 @@
-{ config, lib, pkgs, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
let
cfg = config.services.qdrant;
configRelPath = ".config/qdrant/config.yaml";
- configPath = "${config.home.homeDirectory}/${configRelPath}";
+ configPath = "${config.home.homeDirectory}/${configRelPath}";
defaultSettings = {
log_level = "INFO";
@@ -14,20 +19,19 @@ let
grpc_port = 6334;
};
storage = {
- storage_path = "${cfg.dataDir}/storage";
+ storage_path = "${cfg.dataDir}/storage";
snapshots_path = "${cfg.dataDir}/snapshots";
};
};
effectiveSettings = lib.recursiveUpdate defaultSettings cfg.settings;
- yaml = pkgs.formats.yaml {};
+ yaml = pkgs.formats.yaml { };
configFile = yaml.generate "qdrant-config.yaml" effectiveSettings;
envList = lib.mapAttrsToList (k: v: "${k}=${toString v}") cfg.environment;
- extraArgsStr =
- lib.concatStringsSep " " (map lib.escapeShellArg cfg.extraArgs);
+ extraArgsStr = lib.concatStringsSep " " (map lib.escapeShellArg cfg.extraArgs);
in
{
options.services.qdrant = {
@@ -46,30 +50,24 @@ in
# Мержится поверх defaultSettings
settings = lib.mkOption {
type = lib.types.attrs;
- default = {};
+ default = { };
};
# Если нужно прокинуть QDRANT__... переменные (они имеют максимальный приоритет)
environment = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
- default = {};
+ default = { };
};
extraArgs = lib.mkOption {
type = lib.types.listOf lib.types.str;
- default = [];
+ default = [ ];
};
};
config = lib.mkIf cfg.enable {
home.packages = [ cfg.package ];
-
- # symlink в ~/.config/qdrant/config.yaml -> nix store
home.file."${configRelPath}".source = configFile;
-
- # автоматический start/stop/restart при home-manager switch
- systemd.user.startServices = "sd-switch"; # default true, но фиксируем явно :contentReference[oaicite:1]{index=1}
-
systemd.user.services.qdrant = {
Unit = {
Description = "Qdrant (user)";
diff --git a/custom/override.nix b/custom/override.nix
index 5eb4543..49fbd95 100644
--- a/custom/override.nix
+++ b/custom/override.nix
@@ -11,6 +11,16 @@ final: prev: {
});
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(pyFinal: pyPrev: {
+ sseclient-py = pyPrev.sseclient-py.overridePythonAttrs (old: rec {
+ format = "pyproject";
+ nativeBuildInputs = (old.nativeBuildInputs or []) ++ (with pyPrev; [
+ hatchling
+ #pypaBuildHook
+ #pypaInstallHook
+ ]);
+ doCheck = false;
+ });
+
haystack-ai = pyPrev.haystack-ai.overridePythonAttrs (old: rec {
version = "2.24.1";
diff --git a/devenv.nix b/devenv.nix
index c6349b0..561165f 100644
--- a/devenv.nix
+++ b/devenv.nix
@@ -13,6 +13,9 @@
git submodule update --init --recursive
nix flake update
'';
+ check.exec = ''
+ nix flake check
+ '';
build.exec = ''
nixos-rebuild switch --sudo --flake '.#'
'';
diff --git a/flake.lock b/flake.lock
index 96e3548..686962d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -19,12 +19,12 @@
"agenix": {
"inputs": {
"darwin": "darwin",
- "home-manager": "home-manager_4",
+ "home-manager": "home-manager_3",
"nixpkgs": [
"ragenix",
"nixpkgs"
],
- "systems": "systems_6"
+ "systems": "systems_5"
},
"locked": {
"lastModified": 1736955230,
@@ -195,15 +195,15 @@
"flake-compat": {
"flake": false,
"locked": {
- "lastModified": 1761588595,
- "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
- "owner": "edolstra",
+ "lastModified": 1767039857,
+ "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
+ "owner": "NixOS",
"repo": "flake-compat",
- "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
+ "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
- "owner": "edolstra",
+ "owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
@@ -240,22 +240,6 @@
"type": "github"
}
},
- "flake-compat_4": {
- "flake": false,
- "locked": {
- "lastModified": 1767039857,
- "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
- "owner": "NixOS",
- "repo": "flake-compat",
- "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "repo": "flake-compat",
- "type": "github"
- }
- },
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@@ -297,7 +281,7 @@
},
"flake-utils": {
"inputs": {
- "systems": "systems"
+ "systems": "systems_6"
},
"locked": {
"lastModified": 1731533236,
@@ -313,51 +297,9 @@
"type": "github"
}
},
- "flake-utils_2": {
- "inputs": {
- "systems": "systems_7"
- },
- "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"
- }
- },
- "ghostty": {
- "inputs": {
- "flake-compat": "flake-compat",
- "flake-utils": "flake-utils",
- "home-manager": "home-manager",
- "nixpkgs": "nixpkgs_2",
- "zig": "zig",
- "zon2nix": "zon2nix"
- },
- "locked": {
- "lastModified": 1771930713,
- "narHash": "sha256-NPOmouXCaizb9Xv0l4xus8/MLOvs+7TktkaElr7Gqoo=",
- "owner": "ghostty-org",
- "repo": "ghostty",
- "rev": "d0e308f32b0024d2203232626e605b2fd4417d21",
- "type": "github"
- },
- "original": {
- "owner": "ghostty-org",
- "ref": "tip",
- "repo": "ghostty",
- "type": "github"
- }
- },
"git-hooks": {
"inputs": {
- "flake-compat": "flake-compat_2",
+ "flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"intel-hw",
@@ -449,16 +391,15 @@
"home-manager": {
"inputs": {
"nixpkgs": [
- "ghostty",
"nixpkgs"
]
},
"locked": {
- "lastModified": 1770586272,
- "narHash": "sha256-Ucci8mu8QfxwzyfER2DQDbvW9t1BnTUJhBmY7ybralo=",
+ "lastModified": 1772060133,
+ "narHash": "sha256-VuyRptb8v1lVGMlLp4/1vRX3Efwec0CN0S6mKmDPzLg=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "b1f916ba052341edc1f80d4b2399f1092a4873ca",
+ "rev": "ce9b6e52500a0ea0ec48f0bbf6d7a3e431d9dfa4",
"type": "github"
},
"original": {
@@ -468,26 +409,6 @@
}
},
"home-manager_2": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1771851181,
- "narHash": "sha256-gFgE6mGUftwseV3DUENMb0k0EiHd739lZexPo5O/sdQ=",
- "owner": "nix-community",
- "repo": "home-manager",
- "rev": "9a4b494b1aa1b93d8edf167f46dc8e0c0011280c",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "home-manager",
- "type": "github"
- }
- },
- "home-manager_3": {
"inputs": {
"nixpkgs": [
"intel-hw",
@@ -508,7 +429,7 @@
"type": "github"
}
},
- "home-manager_4": {
+ "home-manager_3": {
"inputs": {
"nixpkgs": [
"ragenix",
@@ -537,21 +458,21 @@
"fenix": "fenix",
"flake-parts": "flake-parts",
"git-hooks": "git-hooks",
- "home-manager": "home-manager_3",
+ "home-manager": "home-manager_2",
"lanzaboote": "lanzaboote",
- "nixpkgs": "nixpkgs_3",
+ "nixpkgs": "nixpkgs_2",
"nu-env": "nu-env",
- "systems": "systems_4",
+ "systems": "systems_3",
"templates": "templates",
"valhali": "valhali",
"vaultix": "vaultix"
},
"locked": {
- "lastModified": 1771802471,
- "narHash": "sha256-+4BK9fTD8fFarmwTTU78bGQwUbVZSmEM2yyZIzBeUvs=",
+ "lastModified": 1772058145,
+ "narHash": "sha256-23O8yplzS6R2g0ATiaj+PNxCZsYf+6UFMkm1f+U5TRs=",
"owner": "MordragT",
"repo": "nixos",
- "rev": "168b703308f0b14f6af300b60b0db50498235b54",
+ "rev": "b08bb8ba4cab2b7ccaff961f8f64d8134e62604d",
"type": "github"
},
"original": {
@@ -604,26 +525,84 @@
"url": "https://git.sys-con.ru/thek0tyara/nixpkgs-extension.git"
}
},
- "niri": {
+ "niri-flake": {
"inputs": {
- "nixpkgs": "nixpkgs_5",
- "rust-overlay": "rust-overlay_3"
+ "niri-stable": "niri-stable",
+ "niri-unstable": "niri-unstable",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "nixpkgs-stable": "nixpkgs-stable",
+ "xwayland-satellite-stable": "xwayland-satellite-stable",
+ "xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
- "lastModified": 1764399944,
- "narHash": "sha256-FC9eYtSmplgxllCX4/3hJq5J3sXWKLSc7at8ZUxycVw=",
+ "lastModified": 1771940378,
+ "narHash": "sha256-qe5t8E8uK5eSgPTxtfcde3VO8fnIr/Tu+hn72FDry/E=",
+ "owner": "sodiboo",
+ "repo": "niri-flake",
+ "rev": "f8899e60a1425d21a03a05ac2c069a85398039b5",
+ "type": "github"
+ },
+ "original": {
+ "owner": "sodiboo",
+ "repo": "niri-flake",
+ "type": "github"
+ }
+ },
+ "niri-stable": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1756556321,
+ "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
"owner": "YaLTeR",
"repo": "niri",
- "rev": "b35bcae35b3f9665043c335e55ed5828af77db85",
+ "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
"type": "github"
},
"original": {
"owner": "YaLTeR",
- "ref": "v25.11",
+ "ref": "v25.08",
"repo": "niri",
"type": "github"
}
},
+ "niri-unstable": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1771849386,
+ "narHash": "sha256-CFvjBjS2LxbBMR3Lu6wZhME6ck3CXyKUufRoJA5tlmw=",
+ "owner": "YaLTeR",
+ "repo": "niri",
+ "rev": "2dc6f4482c4eeed75ea8b133d89cad8658d38429",
+ "type": "github"
+ },
+ "original": {
+ "owner": "YaLTeR",
+ "repo": "niri",
+ "type": "github"
+ }
+ },
+ "nix-index-database": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1771734689,
+ "narHash": "sha256-/phvMgr1yutyAMjKnZlxkVplzxHiz60i4rc+gKzpwhg=",
+ "owner": "nix-community",
+ "repo": "nix-index-database",
+ "rev": "8f590b832326ab9699444f3a48240595954a4b10",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "nix-index-database",
+ "type": "github"
+ }
+ },
"nixpkgs": {
"locked": {
"lastModified": 1752687322,
@@ -655,20 +634,23 @@
"type": "github"
}
},
- "nixpkgs_2": {
+ "nixpkgs-stable": {
"locked": {
- "lastModified": 1770537093,
- "narHash": "sha256-XV30uo8tXuxdzuV8l3sojmlPRLd/8tpMsOp4lNzLGUo=",
- "rev": "fef9403a3e4d31b0a23f0bacebbec52c248fbb51",
- "type": "tarball",
- "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre942631.fef9403a3e4d/nixexprs.tar.xz"
+ "lastModified": 1771903837,
+ "narHash": "sha256-sdaqdnsQCv3iifzxwB22tUwN/fSHoN7j2myFW5EIkGk=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "e764fc9a405871f1f6ca3d1394fb422e0a0c3951",
+ "type": "github"
},
"original": {
- "type": "tarball",
- "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
+ "owner": "NixOS",
+ "ref": "nixos-25.11",
+ "repo": "nixpkgs",
+ "type": "github"
}
},
- "nixpkgs_3": {
+ "nixpkgs_2": {
"locked": {
"lastModified": 1771369470,
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
@@ -683,7 +665,7 @@
"type": "indirect"
}
},
- "nixpkgs_4": {
+ "nixpkgs_3": {
"locked": {
"lastModified": 1757584362,
"narHash": "sha256-XeTX/w16rUNUNBsfaOVCDoMMa7Xu7KvIMT7tn1zIEcg=",
@@ -697,23 +679,7 @@
"type": "indirect"
}
},
- "nixpkgs_5": {
- "locked": {
- "lastModified": 1757967192,
- "narHash": "sha256-/aA9A/OBmnuOMgwfzdsXRusqzUpd8rQnQY8jtrHK+To=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "0d7c15863b251a7a50265e57c1dca1a7add2e291",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixpkgs-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_6": {
+ "nixpkgs_4": {
"locked": {
"lastModified": 1771848320,
"narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=",
@@ -729,7 +695,7 @@
"type": "github"
}
},
- "nixpkgs_7": {
+ "nixpkgs_5": {
"locked": {
"lastModified": 1741379970,
"narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=",
@@ -769,7 +735,7 @@
},
"pre-commit": {
"inputs": {
- "flake-compat": "flake-compat_3",
+ "flake-compat": "flake-compat_2",
"gitignore": "gitignore_2",
"nixpkgs": [
"intel-hw",
@@ -793,7 +759,7 @@
},
"pre-commit-hooks": {
"inputs": {
- "flake-compat": "flake-compat_4",
+ "flake-compat": "flake-compat_3",
"gitignore": "gitignore_3",
"nixpkgs": [
"intel-hw",
@@ -819,9 +785,9 @@
"inputs": {
"agenix": "agenix",
"crane": "crane_3",
- "flake-utils": "flake-utils_2",
- "nixpkgs": "nixpkgs_7",
- "rust-overlay": "rust-overlay_4"
+ "flake-utils": "flake-utils",
+ "nixpkgs": "nixpkgs_5",
+ "rust-overlay": "rust-overlay_3"
},
"locked": {
"lastModified": 1741508717,
@@ -841,12 +807,12 @@
"root": {
"inputs": {
"dw-proton": "dw-proton",
- "ghostty": "ghostty",
- "home-manager": "home-manager_2",
+ "home-manager": "home-manager",
"intel-hw": "intel-hw",
"mypkgs": "mypkgs",
- "niri": "niri",
- "nixpkgs": "nixpkgs_6",
+ "niri-flake": "niri-flake",
+ "nix-index-database": "nix-index-database",
+ "nixpkgs": "nixpkgs_4",
"ragenix": "ragenix"
}
},
@@ -912,27 +878,6 @@
}
},
"rust-overlay_3": {
- "inputs": {
- "nixpkgs": [
- "niri",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1757989933,
- "narHash": "sha256-9cpKYWWPCFhgwQTww8S94rTXgg8Q8ydFv9fXM6I8xQM=",
- "owner": "oxalica",
- "repo": "rust-overlay",
- "rev": "8249aa3442fb9b45e615a35f39eca2fe5510d7c3",
- "type": "github"
- },
- "original": {
- "owner": "oxalica",
- "repo": "rust-overlay",
- "type": "github"
- }
- },
- "rust-overlay_4": {
"inputs": {
"nixpkgs": [
"ragenix",
@@ -1043,24 +988,9 @@
"type": "github"
}
},
- "systems_7": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- },
"templates": {
"inputs": {
- "nixpkgs": "nixpkgs_4"
+ "nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1757668691,
@@ -1078,7 +1008,7 @@
},
"utils": {
"inputs": {
- "systems": "systems_2"
+ "systems": "systems"
},
"locked": {
"lastModified": 1710146030,
@@ -1096,7 +1026,7 @@
},
"utils_2": {
"inputs": {
- "systems": "systems_3"
+ "systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
@@ -1114,7 +1044,7 @@
},
"utils_3": {
"inputs": {
- "systems": "systems_5"
+ "systems": "systems_4"
},
"locked": {
"lastModified": 1731533236,
@@ -1178,54 +1108,36 @@
"type": "github"
}
},
- "zig": {
- "inputs": {
- "flake-compat": [
- "ghostty",
- "flake-compat"
- ],
- "flake-utils": [
- "ghostty",
- "flake-utils"
- ],
- "nixpkgs": [
- "ghostty",
- "nixpkgs"
- ]
- },
+ "xwayland-satellite-stable": {
+ "flake": false,
"locked": {
- "lastModified": 1763295135,
- "narHash": "sha256-sGv/NHCmEnJivguGwB5w8LRmVqr1P72OjS+NzcJsssE=",
- "owner": "mitchellh",
- "repo": "zig-overlay",
- "rev": "64f8b42cfc615b2cf99144adf2b7728c7847c72a",
+ "lastModified": 1755491097,
+ "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
+ "owner": "Supreeeme",
+ "repo": "xwayland-satellite",
+ "rev": "388d291e82ffbc73be18169d39470f340707edaa",
"type": "github"
},
"original": {
- "owner": "mitchellh",
- "repo": "zig-overlay",
+ "owner": "Supreeeme",
+ "ref": "v0.7",
+ "repo": "xwayland-satellite",
"type": "github"
}
},
- "zon2nix": {
- "inputs": {
- "nixpkgs": [
- "ghostty",
- "nixpkgs"
- ]
- },
+ "xwayland-satellite-unstable": {
+ "flake": false,
"locked": {
- "lastModified": 1768231828,
- "narHash": "sha256-wL/8Iij4T2OLkhHcc4NieOjf7YeJffaUYbCiCqKv/+0=",
- "owner": "jcollie",
- "repo": "zon2nix",
- "rev": "c28e93f3ba133d4c1b1d65224e2eebede61fd071",
+ "lastModified": 1771787042,
+ "narHash": "sha256-7bM6Y4KldhKnfopSALF8XALxcX7ehkomXH9sPl4MXp0=",
+ "owner": "Supreeeme",
+ "repo": "xwayland-satellite",
+ "rev": "33c344fee50504089a447a8fef5878cf4f6215fc",
"type": "github"
},
"original": {
- "owner": "jcollie",
- "repo": "zon2nix",
- "rev": "c28e93f3ba133d4c1b1d65224e2eebede61fd071",
+ "owner": "Supreeeme",
+ "repo": "xwayland-satellite",
"type": "github"
}
}
diff --git a/flake.nix b/flake.nix
index 5658ad8..30309d9 100644
--- a/flake.nix
+++ b/flake.nix
@@ -6,47 +6,45 @@
inputs.nixpkgs.follows = "nixpkgs";
};
ragenix.url = "github:yaxitech/ragenix/2025.03.09";
- niri.url = "github:YaLTeR/niri/v25.11";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
- ghostty.url = "github:ghostty-org/ghostty/tip";
- # ghostty.url = [
- # "github:ghostty-org/ghostty/1.3.0"
- # "github:ghostty-org/ghostty/tip"
- # ];
+ nix-index-database = {
+ url = "github:nix-community/nix-index-database";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ niri-flake = {
+ url = "github:sodiboo/niri-flake";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
dw-proton.url = "github:imaviso/dwproton-flake";
intel-hw.url = "github:MordragT/nixos";
#
};
outputs =
inputs@{
- # self,
nixpkgs,
mypkgs,
ragenix,
home-manager,
- ghostty,
+ nix-index-database,
+ niri-flake,
intel-hw,
...
}:
let
system = "x86_64-linux";
- pkgs = nixpkgs.legacyPackages.${system};
+ # pkgs = nixpkgs.legacyPackages.${system};
in
{
- devShells.${system}.default = pkgs.mkShell {
- packages = [
- ragenix.packages.x86_64-linux.default
- ];
- };
nixosConfigurations.testenv = nixpkgs.lib.nixosSystem {
inherit system;
- #
specialArgs = { inherit inputs; };
modules = [
ragenix.nixosModules.default
+ niri-flake.nixosModules.niri
+ nix-index-database.nixosModules.default
(
{
pkgs,
@@ -59,9 +57,9 @@
};
nixpkgs.overlays = [
intel-hw.overlays.default
- # (import ./custom/overlays/default.nix)
mypkgs.overlays.default
(import ./custom/override.nix)
+ niri-flake.overlays.niri
];
# boot.kernelPatches = [
# {
@@ -161,6 +159,7 @@
polkit = {
enable = true;
};
+ rtkit.enable = true;
sudo = {
extraRules = [
{
@@ -175,13 +174,12 @@
];
};
};
- # virtualisation.qemu = {
- # options = [
- # ];
- # };
programs = {
- # amnezia-vpn.enable = true;
ccache.enable = true;
+ niri = {
+ enable = true;
+ package = pkgs.niri-stable;
+ };
nix-ld = {
enable = true;
libraries = with pkgs; [
@@ -251,8 +249,7 @@
useUserPackages = true;
extraSpecialArgs = {
- inherit system;
- inherit ghostty;
+ inherit inputs;
};
users.thek0tyara = ./home.nix;
diff --git a/hardware-configuration.nix b/hardware-configuration.nix
index 95f4d17..25fe3ea 100644
--- a/hardware-configuration.nix
+++ b/hardware-configuration.nix
@@ -13,15 +13,33 @@
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
+# fileSystems."/" =
+# { device = "/dev/disk/by-label/NVME_NIXOS";
+# fsType = "ext4";
+# };
+#
+# fileSystems."/boot" =
+# { device = "/dev/disk/by-label/NVME_ESP";
+# fsType = "vfat";
+# options = [ "fmask=0022" "dmask=0022" ];
+# };
+
fileSystems."/" =
- { device = "/dev/disk/by-label/NVME_NIXOS";
- fsType = "ext4";
+ { device = "/dev/disk/by-label/NVME_BTRFS";
+ fsType = "btrfs";
+ options = [ "subvol=root" "compress=zstd:1" "noatime" "discard=async" ];
};
- fileSystems."/boot" =
- { device = "/dev/disk/by-label/NVME_ESP";
- fsType = "vfat";
- options = [ "fmask=0022" "dmask=0022" ];
+ fileSystems."/home" =
+ { device = "/dev/disk/by-label/NVME_BTRFS";
+ fsType = "btrfs";
+ options = [ "subvol=home" "compress=zstd:1" "noatime" "discard=async" ];
+ };
+
+ fileSystems."/nix" =
+ { device = "/dev/disk/by-label/NVME_BTRFS";
+ fsType = "btrfs";
+ options = [ "subvol=nix" "compress=zstd:1" "noatime" "discard=async" ];
};
swapDevices =
diff --git a/home.nix b/home.nix
index 2820d6a..3b77d1f 100644
--- a/home.nix
+++ b/home.nix
@@ -1,20 +1,10 @@
{
+ inputs,
config,
pkgs,
- system,
- ghostty,
+ lib,
...
}:
-# let
-# vesktopNoFuses = pkgs.vesktop.overrideAttrs (old: {
-# nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.jq ];
-# postPatch = (old.postPatch or "") + ''
-# tmp="$(mktemp)"
-# jq 'del(.build.electronFuses)' package.json > "$tmp"
-# mv "$tmp" package.json
-# '';
-# });
-# in
{
imports = [
./custom/hm
@@ -56,9 +46,23 @@
enableFishIntegration = true;
};
packages = with pkgs; [
+ ### utility
+ dig
+ libnotify
+ arch-install-scripts
+ kdocker # tray the untrayable
+ xwayland-satellite
+ xdg-desktop-portal-gtk
+ xdg-desktop-portal-wlr
+ winboat
+ xfce4-taskmanager
+
+ ### development
+ # idea-community-bin
+
+ ###
vlc
jq
- xfce4-taskmanager
gparted
tor-browser
iperf
@@ -66,9 +70,9 @@
lmstudio
- dig
- libnotify
- arch-install-scripts
+
+ ### social
+ # fluffychat
### gaming
winetricks
@@ -77,14 +81,12 @@
vintagestory
prismlauncher
- winboat
-
# kdePackages.kdenlive
(python313.withPackages (
py: with py; [
huggingface-hub
- haystack-ai
- raganything
+ # haystack-ai
+ # raganything
]
))
]
@@ -97,10 +99,39 @@
DESKTOP = ":0";
OLLAMA_HOST = "10.20.0.201:11434";
};
+ file = {
+ ".config/waybar/power_menu.xml".text = ''
+
+
+
+
+ '';
+ };
};
xdg = {
configFile."xfce4/helpers.rc".text = ''
- TerminalEmulator=ghostty
+ TerminalEmulator=wezterm
'';
mimeApps = {
@@ -156,9 +187,9 @@
};
};
services = {
+ mako.enable = true;
ollama = {
# enable = true;
- # acceleration = vulkan;
package = pkgs.ollama-vulkan;
host = "10.20.0.201";
environmentVariables = {
@@ -179,8 +210,6 @@
dataDir = "/mnt/HDD_A_DATA/services/lib/qdrant";
settings = {
storage = {
- # storage_path = "/mnt/HDD_A_DATA/services/lib/qdrant/storage";
- # snapshots_path = "/mnt/HDD_A_DATA/services/lib/qdrant/snapshots";
hnsw_index = {
on_disk = true;
};
@@ -193,6 +222,23 @@
telemetry_disabled = true;
};
};
+ swayidle = {
+ enable = true;
+ timeouts = [
+ {
+ timeout = 601;
+ command = "${pkgs.niri}/bin/niri msg action power-off-monitors";
+ }
+ {
+ timeout = 600;
+ command = "${pkgs.swaylock}/bin/swaylock -f --color 030303";
+ }
+ ];
+ events = {
+ "before-sleep" = "${pkgs.swaylock}/bin/swaylock -fF --color 030303";
+ "lock" = "lock";
+ };
+ };
};
programs = {
### custom
@@ -351,14 +397,16 @@
### default
aria2.enable = true;
btop.enable = true;
- command-not-found.enable = true;
+ # command-not-found.enable = true;
direnv = {
enable = true;
nix-direnv.enable = true;
};
element-desktop = {
enable = true;
- # settings = {};
+ settings = {
+
+ };
};
eza = {
enable = true;
@@ -381,46 +429,6 @@
'';
};
};
- #
- ghostty = {
- # enable = true;
- # package = ghostty.packages.${system}.default;
- settings = {
- theme = "dark";
- term = "xterm-256color";
- scrollback-limit = 100000;
- # fullscreen = true;
- # title = ''"daft cunt can't set scrollback"'';
- };
- themes = {
- dark = {
- background = "171421";
- # cursor-color = "f5e0dc";
- foreground = "D0CFCC";
- palette = [
- "0=#171421"
- "1=#C01C28"
- "2=#26A269"
- "3=#A2734C"
- "4=#12488B"
- "5=#A347BA"
- "6=#2AA1B3"
- "7=#D0CFCC"
- "8=#5E5C64"
- "9=#F66151"
- "10=#33D17A"
- "11=#E9AD0C"
- "12=#2A7BDE"
- "13=#C061CB"
- "14=#33C7DE"
- "15=#FFFFFF"
- ];
- # selection-background = "171421";
- # selection-foreground = "D0CFCC";
- };
- };
- };
- #
lutris = {
# enable = true;
# defaultWinePackage = pkgs.wineWowPackages.full;
@@ -440,6 +448,202 @@
};
};
# nheko.enable = true;
+ niri = {
+ package = pkgs.niri;
+ settings = {
+ prefer-no-csd = true;
+ hotkey-overlay.skip-at-startup = true;
+ screenshot-path = "~/Pictures/Screenshots/%Y-%m-%d_%H-%M-%S.png";
+ input = {
+ keyboard = {
+ xkb = {
+ layout = "us,ru";
+ options = "grp:alt_shift_toggle";
+ };
+ numlock = true;
+ };
+ mod-key = "Super";
+ };
+ layout.default-column-width = { };
+
+ spawn-at-startup = [
+ {
+ sh = "systemctl --user restart xdg-desktop-portal xdg-desktop-portal-wlr xdg-desktop-portal-gtk";
+ }
+ ];
+
+ workspaces = {
+ "1-social" = {
+ name = "social";
+ };
+ "2-browsing" = {
+ name = "browsing";
+ };
+ "3-terminal" = {
+ name = "terminal";
+ };
+ "4-gaming" = {
+ name = "gaming";
+ };
+ };
+ window-rules = [
+ {
+ matches = [
+ { app-id = "org.telegram.desktop"; }
+ ];
+ default-column-width = {
+ fixed = 720;
+ };
+ open-on-workspace = "social";
+ # block-out-from = "screen-capture";
+ }
+ {
+ matches = [
+ { app-id = "discord"; }
+ { app-id = "vesktop"; }
+ ];
+ default-column-width = {
+ fixed = 1150;
+ };
+ open-on-workspace = "social";
+ }
+ {
+ matches = [
+ { app-id = "firefox"; }
+ ];
+ default-column-width = {
+ fixed = 1888;
+ };
+ # match is-floating = false;
+ # tiled-state = false;
+ # open-maximized-to-edges = true;
+ open-on-workspace = "browsing";
+ }
+ # "terminal".matches = {
+ # app-id = "Terminal|com.mitchellh.ghostty|opensnitch-ui";
+ # open-on-workspace = "terminal";
+ # }
+ {
+ matches = [
+ { app-id = "steam"; }
+ ];
+ # tiled-state = false;
+ open-on-workspace = "gaming";
+ }
+ {
+ matches = [
+ { title = "^Picture-in-Picture$"; }
+ { app-id = "xdg-desktop-portal-gtk"; }
+ ];
+ open-floating = true;
+ }
+ ];
+
+ binds = {
+ "Mod+T".action.spawn = [
+ # open terminal
+ "wezterm-gui"
+ "start"
+ "--always-new-process"
+ ];
+ "Mod+R".action.spawn = "fuzzel";
+ "Mod+Shift+L".action.spawn = "swaylock --color 030303";
+
+ "Scroll_Lock" = {
+ # toggle microphone
+ allow-when-locked = true;
+ action.spawn = [
+ "${pkgs.wireplumber}/bin/wpctl"
+ "set-mute"
+ "@DEFAULT_AUDIO_SOURCE@"
+ "toggle"
+ ];
+ };
+
+ "Print".action."screenshot" = { };
+ "Mod+Q".action."close-window" = { };
+ "Mod+V".action."toggle-window-floating" = { };
+ "Mod+F".action."fullscreen-window" = { };
+ "Mod+Shift+F".action."expand-column-to-available-width" = { };
+
+ "Mod+C".action.center-column = { };
+ "Mod+Ctrl+C".action.center-visible-columns = { };
+ "Mod+Minus".action = {
+ set-column-width = "-10%";
+ };
+ "Mod+Equal".action = {
+ set-column-width = "+10%";
+ };
+ "Mod+Shift+Minus".action = {
+ set-window-height = "-10%";
+ };
+ "Mod+Shift+Equal".action = {
+ set-window-height = "+10%";
+ };
+
+ "Mod+WheelScrollUp".action.focus-column-left = { };
+ "Mod+WheelScrollDown".action.focus-column-right = { };
+
+ "Mod+Left".action.focus-column-left = { };
+ "Mod+Right".action.focus-column-right = { };
+ "Mod+Up".action.focus-window-up = { };
+ "Mod+Down".action.focus-window-down = { };
+
+ "Mod+Shift+Up".action.move-window-up = { };
+ "Mod+Shift+Down".action.move-window-down = { };
+ "Mod+Shift+Left".action.move-column-left = { };
+ "Mod+Shift+Right".action.move-column-right = { };
+
+ "Mod+Home".action.focus-column-first = { };
+ "Mod+End".action.focus-column-last = { };
+ "Mod+Shift+Home".action.move-column-to-first = { };
+ "Mod+Shift+End".action.move-column-to-last = { };
+
+ "Mod+Shift+Page_Down".action.move-workspace-down = { };
+ "Mod+Shift+Page_Up".action.move-workspace-up = { };
+
+ "Mod+Shift+WheelScrollUp".action.focus-workspace-up = { };
+ "Mod+Shift+WheelScrollDown".action.focus-workspace-down = { };
+
+ "Mod+M".action.quit = { };
+
+ "Mod+Shift+P".action.power-off-monitors = { };
+ }
+ # (switch|move) to workspace by number
+ // (builtins.listToAttrs (
+ builtins.concatMap
+ (
+ i:
+ let
+ ws = if i == 0 then 10 else i;
+ in
+ [
+ {
+ name = "Mod+${toString i}";
+ value.action.focus-workspace = ws;
+ }
+ {
+ name = "Mod+Shift+${toString i}";
+ value.action.move-column-to-workspace = ws;
+ }
+ ]
+ )
+ [
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 0
+ ]
+ ));
+ };
+ };
+ nix-index.enable = true;
nix-your-shell.enable = true;
obs-studio = {
enable = true;
@@ -465,8 +669,111 @@
# package = vesktopNoFuses;
# settings = { TODO };
};
- vscode.enable = true;
- waybar.enable = true;
+ vscode = {
+ enable = true;
+ package = pkgs.vscode;
+ };
+ waybar = {
+ enable = true;
+ settings = {
+ mainBar = {
+ modules-left = [
+ "niri/workspaces"
+ ];
+ modules-center = [ "niri/window" ];
+ modules-right = [
+ "idle_inhibitor"
+ "pulseaudio"
+ "network"
+ "cpu"
+ "memory"
+ "temperature"
+ "niri/language"
+ "clock"
+ "tray"
+ "custom/power"
+ ];
+ "idle_inhibitor" = {
+ "format" = "{icon}";
+ "format-icons" = {
+ "activated" = "";
+ "deactivated" = "";
+ };
+ };
+ "pulseaudio" = {
+ # "scroll-step" = 1; # %, can be a float
+ "format" = "{volume}% {icon} {format_source}";
+ "format-bluetooth" = "{volume}% {icon} {format_source}";
+ "format-bluetooth-muted" = " {icon} {format_source}";
+ "format-muted" = " {format_source}";
+ "format-source" = "{volume}% ";
+ "format-source-muted" = "";
+ "format-icons" = {
+ "headphone" = "";
+ "hands-free" = "";
+ "headset" = "";
+ "phone" = "";
+ "portable" = "";
+ "car" = "";
+ "default" = [
+ ""
+ ""
+ ""
+ ];
+ };
+ "on-click" = "pavucontrol";
+ };
+ "network" = {
+ "format-wifi" = "{essid} ({signalStrength}%) ";
+ "format-ethernet" = "{ipaddr}/{cidr} ";
+ "tooltip-format" = "{ifname} via {gwaddr} ";
+ "format-linked" = "{ifname} (No IP) ";
+ "format-disconnected" = "Disconnected ⚠";
+ "format-alt" = "{ifname}: {ipaddr}/{cidr}";
+ };
+ "cpu" = {
+ "format" = "{usage}% ";
+ # "tooltip" = false;
+ };
+ "memory" = {
+ "format" = "{}% ";
+ };
+ "temperature" = {
+ # "thermal-zone" = 2;
+ # "hwmon-path" = "/sys/class/hwmon/hwmon2/temp1_input";
+ "critical-threshold" = 80;
+ # "format-critical" = "{temperatureC}°C {icon}";
+ "format" = "{temperatureC}°C {icon}";
+ "format-icons" = [
+ ""
+ ""
+ ""
+ ];
+ };
+ "clock" = {
+ # "timezone" = "America/New_York";
+ "tooltip-format" = "{:%Y %B}\n{calendar}";
+ "format-alt" = "{:%Y-%m-%d}";
+ };
+ "tray" = {
+ # "icon-size" = 21;
+ "spacing" = 10;
+ };
+ "custom/power" = {
+ "format" = "⏻ ";
+ "tooltip" = false;
+ "menu" = "on-click";
+ "menu-file" = "$HOME/.config/waybar/power_menu.xml"; # Menu file in resources folder
+ "menu-actions" = {
+ "shutdown" = "shutdown";
+ "reboot" = "reboot";
+ "suspend" = "systemctl suspend";
+ "hibernate" = "systemctl hibernate";
+ };
+ };
+ };
+ };
+ };
wezterm = {
enable = true;
extraConfig = ''