7 Commits

24 changed files with 351 additions and 264 deletions

98
flake.lock generated
View File

@@ -8,11 +8,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1754433428, "lastModified": 1760836749,
"narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=", "narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d", "rev": "2f0f812f69f3eb4140157fe15e12739adf82e32a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -153,11 +153,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1760395520, "lastModified": 1760747305,
"narHash": "sha256-4hVEyj3H4i0kwtO8dDIKee1WoZ0iMZxr3ageSdJ6Cck=", "narHash": "sha256-SsuuyaFp4TbJ+ofti9EXot9gIOk4vZqccat/zERVQN4=",
"owner": "chaotic-cx", "owner": "chaotic-cx",
"repo": "nyx", "repo": "nyx",
"rev": "c438d72cee048fe6203df15c81a230efb16fa409", "rev": "9838e14b30857ac0a50dbe98a5ba2233d6ccb2de",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -212,11 +212,11 @@
"rust-analyzer-src": "rust-analyzer-src" "rust-analyzer-src": "rust-analyzer-src"
}, },
"locked": { "locked": {
"lastModified": 1760424233, "lastModified": 1760856120,
"narHash": "sha256-8jLfVik1ccwmacVW5BlprmsuK534rT5HjdPhkSaew44=", "narHash": "sha256-yH1K/WDJpwIIw7e3wKdRgwHAZ38LXgcGE2Ecvk3I6GU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "fenix", "repo": "fenix",
"rev": "48a763cdc0b2d07199a021de99c2ca50af76e49f", "rev": "b435bfccee71c6591dbce2fcfabe3e17e98c09fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -332,11 +332,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1759362264, "lastModified": 1760813311,
"narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=", "narHash": "sha256-lbHQ7FXGzt6/IygWvJ1lCq+Txcut3xYYd6VIpF1ojkg=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "758cf7296bee11f1706a574c77d072b8a7baa881", "rev": "4e627ac2e1b8f1de7f5090064242de9a259dbbc8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -491,11 +491,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760392170, "lastModified": 1760663237,
"narHash": "sha256-WftxJgr2MeDDFK47fQKywzC72L2jRc/PWcyGdjaDzkw=", "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "46d55f0aeb1d567a78223e69729734f3dca25a85", "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -590,11 +590,11 @@
"rust-overlay": "rust-overlay_2" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1760446779, "lastModified": 1760832569,
"narHash": "sha256-UzJHuqTgfwtnh34zbGq6NUe5i8wv3wg6B9njykBAddc=", "narHash": "sha256-wg925OdUZdhjJub5XfpBTWQ3EOJYH7JnaBWHfh849J4=",
"owner": "helix-editor", "owner": "helix-editor",
"repo": "helix", "repo": "helix",
"rev": "6e07bcc04dd5a0bb5ae04677823a5b3821f622c5", "rev": "97aee4950fd9a08a78415cd8992354ae5cf3aaf0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -610,11 +610,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760462439, "lastModified": 1760887455,
"narHash": "sha256-bks3rTsKGlqehk4l7rViIg2lBnUsY6we22O+ecRZB/c=", "narHash": "sha256-/xU8iYZjolWbMUNBQF6af5zgGs73Qw21WMgz1tLs3Yw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "990e5ce6791ff1f497a61280a82eb66e3789e0e9", "rev": "aeabc1ac63e6ebb8ba4714c4abdfe0556f2de765",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -652,11 +652,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760312644, "lastModified": 1760662441,
"narHash": "sha256-U9SkK45314urw9P7MmjhEgiQwwD/BTj+T3HTuz1JU1Q=", "narHash": "sha256-mlDqR1Ntgs9uYYEAUR1IhamKBO0lxoNS4zGLzEZaY0A=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e121f3773fa596ecaba5b22e518936a632d72a90", "rev": "722792af097dff5790f1a66d271a47759f477755",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -803,11 +803,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1760466709, "lastModified": 1760874867,
"narHash": "sha256-m5Bd3RadgnA1HEdisWnZI4sGVvj6Mh3WERmFgZqyF+s=", "narHash": "sha256-w2JettCPyqWKMYoJRCTc5/nsSvGrSV9jG4kbn8Q0pZk=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland", "repo": "hyprland",
"rev": "f324a3a564b40f4f62eb137808ca38bf6aee1b27", "rev": "59ff7b2f891d06f4097128faf7027a3863542167",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1191,11 +1191,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760266702, "lastModified": 1760534924,
"narHash": "sha256-TP19RpzIyo1JeYAhKii13seYwmhkv7IOD+dCnQOrcgQ=", "narHash": "sha256-OIOCC86DxTxp1VG7xAiM+YABtVqp6vTkYIoAiGQMqso=",
"owner": "Jovian-Experiments", "owner": "Jovian-Experiments",
"repo": "Jovian-NixOS", "repo": "Jovian-NixOS",
"rev": "3d7e970d4cac5d3ee3fe7cafa17cc9868fa21fed", "rev": "100b4e000032b865563a9754e5bca189bc544764",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1278,11 +1278,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760406533, "lastModified": 1760839259,
"narHash": "sha256-ViYpiGv0w+TXpBCFXPXWlEP3dVNHeGgvpsKDbQMY6UE=", "narHash": "sha256-9KYm1Oh3jB2Xf0LiFxIBFgOuqRN4FNW4PKfrxXDV418=",
"owner": "fufexan", "owner": "fufexan",
"repo": "nix-gaming", "repo": "nix-gaming",
"rev": "f8f51dd445f7b0dbb3429a3e31994bb0f2908010", "rev": "6aa0613ecf363840e011006b05aefa094b78b053",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1363,11 +1363,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1760284886, "lastModified": 1760703608,
"narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", "narHash": "sha256-MMIIShabm9KnYTmm0WbJ2h+jxI86gfE7NcByVOaBNNU=",
"owner": "NixOS", "owner": "PedroHLC",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43", "rev": "95d8e5f411dc2fcc7f73a72766aaabfab1a1c456",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1443,11 +1443,11 @@
}, },
"nixpkgs_8": { "nixpkgs_8": {
"locked": { "locked": {
"lastModified": 1760284886, "lastModified": 1760524057,
"narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", "narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43", "rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1626,11 +1626,11 @@
"rust-analyzer-src": { "rust-analyzer-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1760260966, "lastModified": 1760714286,
"narHash": "sha256-pOVvZz/aa+laeaUKyE6PtBevdo4rywMwjhWdSZE/O1c=", "narHash": "sha256-WOt9KquZ1BXjMcVyHpMeliqNRL6BfRvBHFGfRDriDx4=",
"owner": "rust-lang", "owner": "rust-lang",
"repo": "rust-analyzer", "repo": "rust-analyzer",
"rev": "c5181dbbe33af6f21b9d83e02fdb6fda298a3b65", "rev": "1e20331e42449dfc0b44bce84147a06772d045d7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1648,11 +1648,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760236527, "lastModified": 1760668505,
"narHash": "sha256-h9+WEQtUIZaZMvA1pnbZbMM+5X39OFnW92Q8hNoToD0=", "narHash": "sha256-Ed0cGwPZtLRiSvMx4KgPx8bhLYzn5jiJ7s5o5vj4oG0=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "a38dd7f462825c75ce8567816ae38c2e7d826bfa", "rev": "18234d2c11b10eaec9ccc3a1089a5ea872ec8858",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1815,11 +1815,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760120816, "lastModified": 1760889407,
"narHash": "sha256-gq9rdocpmRZCwLS5vsHozwB6b5nrOBDNc2kkEaTXHfg=", "narHash": "sha256-ppIp04fmz+BaTpJs1nIOmPADg02asfQFrFbhb3SmxsE=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "761ae7aff00907b607125b2f57338b74177697ed", "rev": "3f258dead9fed51f53862366d3a6bc1b622ee7cb",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -3,7 +3,7 @@
boot = { boot = {
kernel = { kernel = {
variant = "latest"; variant = "latest";
hardware = [ "amd" ]; hardware = ["amd"];
}; };
loader = { loader = {
default = { default = {
@@ -20,7 +20,7 @@
}; };
graphics = { graphics = {
enable = true; enable = true;
vendors = [ "amd" ]; vendors = ["amd"];
}; };
logitech = { logitech = {
enable = false; enable = false;
@@ -73,8 +73,8 @@
enable = false; enable = false;
}; };
hyprland = { hyprland = {
enable = false; enable = true;
withUWSM = false; withUWSM = true;
}; };
inkscape = { inkscape = {
enable = false; enable = false;
@@ -86,7 +86,7 @@
enable = true; enable = true;
}; };
niri = { niri = {
enable = true; enable = false;
}; };
pkgs = { pkgs = {
enable = true; enable = true;

View File

@@ -10,7 +10,7 @@
name = "DP-3"; name = "DP-3";
width = 2560; width = 2560;
height = 1440; height = 1440;
refreshRate = 240; refreshRate = "240";
position = "0x0"; position = "0x0";
transform = 0; transform = 0;
bitDepth = 10; bitDepth = 10;
@@ -20,7 +20,7 @@
name = "HDMI-A-1"; name = "HDMI-A-1";
width = 1920; width = 1920;
height = 1080; height = 1080;
refreshRate = 60; refreshRate = "60";
position = "2560x0"; position = "2560x0";
# transform = 3; # transform = 3;
workspace = "5"; workspace = "5";
@@ -29,7 +29,7 @@
name = "eDP-1"; name = "eDP-1";
width = 1920; width = 1920;
height = 1200; height = 1200;
refreshRate = 60; refreshRate = "60";
workspace = "1"; workspace = "1";
} }
]; ];

View File

@@ -4,111 +4,116 @@
homeImports, homeImports,
self, self,
... ...
}: { }:
flake.nixosConfigurations = let {
# clib = import ../lib inputs.nixpkgs.lib; flake.nixosConfigurations =
userConfig = "${self}/home"; let
systemConfig = "${self}/system"; clib = import ../lib inputs.nixpkgs.lib;
hostConfig = "${self}/hosts"; userConfig = "${self}/home";
systemConfig = "${self}/system";
hostConfig = "${self}/hosts";
cnstConfig = "${self}/users/cnst"; cnstConfig = "${self}/users/cnst";
toothpickConfig = "${self}/users/toothpick"; toothpickConfig = "${self}/users/toothpick";
umodPath = "${self}/modules/home"; umodPath = "${self}/modules/home";
smodPath = "${self}/modules/system"; smodPath = "${self}/modules/system";
inherit (inputs.nixpkgs.lib) nixosSystem; inherit (inputs.nixpkgs.lib) nixosSystem;
inherit (self) outputs; inherit (self) outputs;
specialArgs = { specialArgs = {
inherit inherit
# clib inputs
inputs outputs
outputs self
self userConfig
userConfig systemConfig
systemConfig hostConfig
hostConfig cnstConfig
cnstConfig toothpickConfig
toothpickConfig umodPath
umodPath smodPath
smodPath ;
; };
specialArgsWithClib = specialArgs // {
inherit clib;
};
in
{
kima = nixosSystem {
specialArgs = specialArgsWithClib;
modules = [
./kima
"${self}/nix"
{
home-manager = {
users.cnst.imports = homeImports."cnst@kima";
extraSpecialArgs = specialArgsWithClib;
};
}
self.nixosModules.nixos
self.nixosModules.settings
inputs.chaotic.nixosModules.default
inputs.agenix.nixosModules.default
];
};
bunk = nixosSystem {
specialArgs = specialArgsWithClib;
modules = [
./bunk
"${self}/nix"
{
home-manager = {
users.cnst.imports = homeImports."cnst@bunk";
extraSpecialArgs = specialArgsWithClib;
};
}
self.nixosModules.nixos
self.nixosModules.settings
inputs.chaotic.nixosModules.default
inputs.agenix.nixosModules.default
];
};
sobotka = nixosSystem {
inherit specialArgs;
modules = [
./sobotka
"${self}/nix"
self.nixosModules.nixos
self.nixosModules.settings
self.nixosModules.server
inputs.agenix.nixosModules.default
inputs.authentik.nixosModules.default
];
};
ziggy = nixosSystem {
inherit specialArgs;
modules = [
./ziggy
"${self}/nix"
self.nixosModules.nixos
self.nixosModules.settings
self.nixosModules.server
inputs.agenix.nixosModules.default
];
};
toothpc = nixosSystem {
specialArgs = specialArgsWithClib;
modules = [
./toothpc
"${self}/nix"
{
home-manager = {
users.toothpick.imports = homeImports."toothpick@toothpc";
extraSpecialArgs = specialArgsWithClib;
};
}
self.nixosModules.nixos
self.nixosModules.settings
inputs.chaotic.nixosModules.default
inputs.agenix.nixosModules.default
];
};
}; };
in {
kima = nixosSystem {
inherit specialArgs;
modules = [
./kima
"${self}/nix"
{
home-manager = {
users.cnst.imports = homeImports."cnst@kima";
extraSpecialArgs = specialArgs;
};
}
self.nixosModules.nixos
self.nixosModules.settings
inputs.chaotic.nixosModules.default
inputs.agenix.nixosModules.default
];
};
bunk = nixosSystem {
inherit specialArgs;
modules = [
./bunk
"${self}/nix"
{
home-manager = {
users.cnst.imports = homeImports."cnst@bunk";
extraSpecialArgs = specialArgs;
};
}
self.nixosModules.nixos
self.nixosModules.settings
inputs.chaotic.nixosModules.default
inputs.agenix.nixosModules.default
];
};
sobotka = nixosSystem {
inherit specialArgs;
modules = [
./sobotka
"${self}/nix"
self.nixosModules.nixos
self.nixosModules.settings
self.nixosModules.server
inputs.agenix.nixosModules.default
inputs.authentik.nixosModules.default
];
};
ziggy = nixosSystem {
inherit specialArgs;
modules = [
./ziggy
"${self}/nix"
self.nixosModules.nixos
self.nixosModules.settings
self.nixosModules.server
inputs.agenix.nixosModules.default
];
};
toothpc = nixosSystem {
inherit specialArgs;
modules = [
./toothpc
"${self}/nix"
{
home-manager = {
users.toothpick.imports = homeImports."toothpick@toothpc";
extraSpecialArgs = specialArgs;
};
}
self.nixosModules.nixos
self.nixosModules.settings
inputs.chaotic.nixosModules.default
inputs.agenix.nixosModules.default
];
};
};
} }

View File

@@ -82,8 +82,8 @@
enable = false; enable = false;
}; };
hyprland = { hyprland = {
enable = false; enable = true;
withUWSM = false; withUWSM = true;
}; };
inkscape = { inkscape = {
enable = false; enable = false;
@@ -98,7 +98,7 @@
enable = true; enable = true;
}; };
niri = { niri = {
enable = true; enable = false;
}; };
pkgs = { pkgs = {
enable = true; enable = true;

View File

@@ -10,7 +10,7 @@
name = "DP-3"; name = "DP-3";
width = 2560; width = 2560;
height = 1440; height = 1440;
refreshRate = 240; refreshRate = "143.99";
position = "0x0"; position = "0x0";
transform = 0; transform = 0;
bitDepth = 10; bitDepth = 10;
@@ -20,7 +20,7 @@
name = "HDMI-A-1"; name = "HDMI-A-1";
width = 1920; width = 1920;
height = 1080; height = 1080;
refreshRate = 60; refreshRate = "60";
position = "2560x0"; position = "2560x0";
transform = 3; transform = 3;
workspace = "5"; workspace = "5";
@@ -29,7 +29,7 @@
name = "eDP-1"; name = "eDP-1";
width = 1920; width = 1920;
height = 1200; height = 1200;
refreshRate = 60; refreshRate = "60";
workspace = "1"; workspace = "1";
} }
]; ];

View File

@@ -73,6 +73,18 @@
category = "Services"; category = "Services";
}; };
}; };
ollama = {
enable = true;
subdomain = "ai";
exposure = "local";
port = 8001;
homepage = {
name = "ollama";
description = "AI platform";
icon = "ollama.svg";
category = "Services";
};
};
bazarr = { bazarr = {
enable = true; enable = true;
subdomain = "bazarr"; subdomain = "bazarr";
@@ -91,7 +103,7 @@
exposure = "local"; exposure = "local";
port = 9696; port = 9696;
homepage = { homepage = {
name = "prowlarr"; name = "Prowlarr";
description = "PVR indexer"; description = "PVR indexer";
icon = "prowlarr.svg"; icon = "prowlarr.svg";
category = "Arr"; category = "Arr";
@@ -153,7 +165,7 @@
homepage = { homepage = {
name = "Jellyseerr"; name = "Jellyseerr";
description = "Media request and discovery manager"; description = "Media request and discovery manager";
icon = "jellyserr.svg"; icon = "jellyseerr.svg";
category = "Arr"; category = "Arr";
}; };
}; };
@@ -209,7 +221,7 @@
homepage = { homepage = {
name = "Vaultwarden"; name = "Vaultwarden";
description = "Password manager"; description = "Password manager";
icon = "vaultwarden.svg"; icon = "vaultwarden-light.svg";
category = "Services"; category = "Services";
}; };
}; };

View File

@@ -10,7 +10,7 @@
name = "DVI-D-1"; name = "DVI-D-1";
width = 1920; width = 1920;
height = 1080; height = 1080;
refreshRate = 144; refreshRate = "144";
position = "0x0"; position = "0x0";
transform = 0; transform = 0;
workspace = "1"; workspace = "1";

View File

@@ -1,24 +1,18 @@
{ {
inputs,
pkgs,
lib, lib,
osConfig, osConfig,
clib, clib,
... ...
}: let }: let
inherit (lib) mkIf mkEnableOption; inherit (lib) mkIf;
cfg = osConfig.nixos.programs.hyprland; cfg = osConfig.nixos.programs.hyprland;
hyprlockFlake = inputs.hyprlock.packages.${pkgs.system}.hyprlock;
# hyprlockPkg = pkgs.hyprlock;
#
bg = osConfig.settings.theme.background; bg = osConfig.settings.theme.background;
inherit (clib.theme.bgs) resolve; inherit (clib.theme.bgs) resolve;
in { in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.hyprlock = { programs.hyprlock = {
enable = true; enable = true;
package = hyprlockFlake;
settings = { settings = {
general = { general = {
# disable_loading_bar = true; # disable_loading_bar = true;

View File

@@ -10,7 +10,7 @@
"group/system" "group/system"
], ],
"modules-center": [ "modules-center": [
"niri/workspaces" "hyprland/workspaces"
], ],
"modules-right": [ "modules-right": [
"custom/progress", "custom/progress",
@@ -126,9 +126,13 @@
"all-outputs": false, "all-outputs": false,
"format": "{icon}", "format": "{icon}",
"format-icons": { "format-icons": {
"urgent": "", "1": "1",
"visible": "", "2": "2",
"empty": "" "3": "3",
"4": "4",
"5": "5",
"active": "_",
"default": "_"
}, },
"on-click": "activate", "on-click": "activate",
"show-special": false, "show-special": false,

View File

@@ -28,8 +28,8 @@ tooltip label {
margin: 0 0px; margin: 0 0px;
background-color: transparent; background-color: transparent;
color: #fbf1c7; color: #fbf1c7;
border-top: 3px solid transparent; border-top: 2px solid transparent;
border-bottom: 3px solid transparent; border-bottom: 2px solid transparent;
} }
#workspaces button:hover { #workspaces button:hover {
@@ -45,7 +45,7 @@ tooltip label {
background-image: url("assets/button.svg"); background-image: url("assets/button.svg");
background-position: center; background-position: center;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 18px 15px; background-size: 24px 20px;
} }
#custom-trayicon { #custom-trayicon {

View File

@@ -1,22 +1,14 @@
{ {
osConfig, osConfig,
lib, lib,
pkgs,
inputs,
... ...
}: }: let
let
inherit (lib) mkIf; inherit (lib) mkIf;
cfg = osConfig.nixos.programs.hyprland; cfg = osConfig.nixos.programs.hyprland;
in {
hypridleFlake = inputs.hypridle.packages.${pkgs.system}.hypridle;
# hypridlePkg = pkgs.hypridle;
in
{
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.hypridle = { services.hypridle = {
enable = true; enable = true;
package = hypridleFlake;
settings = { settings = {
general = { general = {
lock_cmd = "hyprlock"; lock_cmd = "hyprlock";

View File

@@ -1,7 +1,5 @@
{ {
lib, lib,
pkgs,
inputs,
osConfig, osConfig,
clib, clib,
... ...
@@ -9,7 +7,6 @@
inherit (lib) mkIf; inherit (lib) mkIf;
cfg = osConfig.nixos.programs.hyprland; cfg = osConfig.nixos.programs.hyprland;
hyprpaperFlake = inputs.hyprpaper.packages.${pkgs.system}.default;
bg = osConfig.settings.theme.background; bg = osConfig.settings.theme.background;
bgs = clib.theme.bgs; bgs = clib.theme.bgs;
@@ -35,7 +32,6 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.hyprpaper = { services.hyprpaper = {
enable = true; enable = true;
package = hyprpaperFlake;
settings = { settings = {
ipc = "on"; ipc = "on";

View File

@@ -18,9 +18,7 @@ in
gaps_in = 2; gaps_in = 2;
gaps_out = "4, 4, 4, 4"; gaps_out = "4, 4, 4, 4";
border_size = 3; border_size = 3;
#col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg "col.active_border" = "rgb(4c7a5d)";
#col.inactive_border = rgba(595959aa)
"col.active_border" = "rgb(4c7a5d)"; # rgba(b16286ee) 45deg
"col.inactive_border" = "rgb(504945)"; "col.inactive_border" = "rgb(504945)";
layout = "dwindle"; layout = "dwindle";
resize_on_border = true; resize_on_border = true;

View File

@@ -37,9 +37,9 @@ in
}; };
gestures = { gestures = {
workspace_swipe = true; # workspace_swipe = true;
workspace_swipe_distance = 400; workspace_swipe_distance = 400;
workspace_swipe_fingers = 3; # workspace_swipe_fingers = 3;
workspace_swipe_cancel_ratio = 0.2; workspace_swipe_cancel_ratio = 0.2;
workspace_swipe_min_speed_to_force = 5; workspace_swipe_min_speed_to_force = 5;
workspace_swipe_direction_lock = true; workspace_swipe_direction_lock = true;

View File

@@ -99,7 +99,7 @@ in
(mkIf (host == "kima") { (mkIf (host == "kima") {
programs.hyprland.settings = { programs.hyprland.settings = {
"$terminal" = "ghostty"; "$terminal" = "alacritty";
"$browser" = "zen"; "$browser" = "zen";
"$browserinc" = "zen --private-window"; "$browserinc" = "zen --private-window";
"$mod" = "SUPER"; "$mod" = "SUPER";
@@ -111,7 +111,7 @@ in
(mkIf (host == "bunk") { (mkIf (host == "bunk") {
programs.hyprland.settings = { programs.hyprland.settings = {
"$terminal" = "foot"; "$terminal" = "alacritty";
"$browser" = "zen"; "$browser" = "zen";
"$browserinc" = "zen --private-window"; "$browserinc" = "zen --private-window";
"$mod" = "ALT_L"; "$mod" = "ALT_L";

View File

@@ -21,7 +21,7 @@ in
let let
resolution = resolution =
if m.width != null && m.height != null then if m.width != null && m.height != null then
"${toString m.width}x${toString m.height}@${toString m.refreshRate}" "${toString m.width}x${toString m.height}@${m.refreshRate}"
else else
"preferred"; "preferred";

View File

@@ -19,6 +19,9 @@ in
keyboards.hhkbse = { keyboards.hhkbse = {
extraDefCfg = '' extraDefCfg = ''
process-unmapped-keys yes process-unmapped-keys yes
linux-dev-names-include (
"HHKB-Hybrid_1 Keyboard"
)
''; '';
devices = [ devices = [
"/dev/input/by-id/usb-PFU_Limited_HHKB-Hybrid-event-kbd" "/dev/input/by-id/usb-PFU_Limited_HHKB-Hybrid-event-kbd"

View File

@@ -157,6 +157,38 @@ in {
]; ];
}; };
}) })
(lib.mkIf cfg.ollama.enable {
intel-llm = {
autoStart = true;
image = "intelanalytics/ipex-llm-inference-cpp-xpu:latest";
devices = [
"/dev/dri:/dev/dri:rwm"
];
volumes = [
"/var/lib/ollama:/models"
];
environment = {
OLLAMA_ORIGINS = "http://192.168.*";
SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS = "1";
ONEAPI_DEVICE_SELECTOR = "level_zero:0";
OLLAMA_HOST = "[::]:11434";
no_proxy = "localhost,127.0.0.1";
DEVICE = "Arc";
OLLAMA_NUM_GPU = "999";
ZES_ENABLE_SYSMAN = "1";
};
cmd = [
"/bin/sh"
"-c"
"/llm/scripts/start-ollama.sh && echo 'Startup script finished, container is now idling.' && sleep infinity"
];
extraOptions = [
"--net=host"
"--memory=32G"
"--shm-size=16g"
];
};
})
]; ];
}; };
} }

View File

@@ -9,6 +9,7 @@
./lidarr ./lidarr
./n8n ./n8n
./nextcloud ./nextcloud
./ollama
./prowlarr ./prowlarr
./radarr ./radarr
./sonarr ./sonarr

View File

@@ -24,6 +24,13 @@ in {
environmentFile = config.age.secrets.homepageEnvironment.path; environmentFile = config.age.secrets.homepageEnvironment.path;
settings = { settings = {
color = "stone";
theme = "dark";
headerStyle = "clean";
statusStyle = "dot";
hideVersion = true;
useEqualHeights = true;
layout = [ layout = [
{ {
Glances = { Glances = {
@@ -57,10 +64,6 @@ in {
}; };
} }
]; ];
headerStyle = "clean";
statusStyle = "dot";
hideVersion = "true";
}; };
widgets = [ widgets = [
@@ -117,80 +120,102 @@ in {
"${service.homepage.name}" = { "${service.homepage.name}" = {
icon = service.homepage.icon; icon = service.homepage.icon;
description = service.homepage.description; description = service.homepage.description;
href = "https://${domain}"; href = "https://${service.subdomain}.${domain}${service.homepage.path or ""}";
siteMonitor = "https://${domain}"; siteMonitor = "https://${service.subdomain}.${domain}${x.homepage.path or ""}";
}; };
}); });
}) })
++ [ ++ [
{ {
Glances = let Glances = let
port = toString config.services.glances.port; glancesShared = {
type = "glances";
url = "http://localhost:${toString config.services.glances.port}";
chart = true;
version = 4;
};
in [ in [
{ {
Info = { Memory = {
widget = { widget =
type = "glances"; glancesShared
url = "http://localhost:${port}"; // {
metric = "info"; metric = "memory";
chart = false; refreshInterval = 2000;
version = 4; pointsLimit = 30;
}; };
}; };
} }
{
"CPU Usage" = {
widget =
glancesShared
// {
metric = "cpu";
refreshInterval = 2000;
pointsLimit = 30;
};
};
}
{ {
"CPU Temp" = { "CPU Temp" = {
widget = { widget =
type = "glances"; glancesShared
url = "http://localhost:${port}"; // {
metric = "sensor:Tctl"; metric = "sensor:Tctl";
chart = false; refreshInterval = 5000;
version = 4; pointsLimit = 20;
}; };
}; };
} }
{ {
"GPU Radeon" = { "GPU Radeon" = {
widget = { widget =
type = "glances"; glancesShared
url = "http://localhost:${port}"; // {
metric = "sensor:junction"; metric = "sensor:junction";
chart = false; };
version = 4;
};
}; };
} }
{ {
"GPU Intel" = { "GPU Intel" = {
widget = { widget =
type = "glances"; glancesShared
url = "http://localhost:${port}"; // {
metric = "sensor:pkg"; metric = "sensor:pkg";
chart = false; };
version = 4;
};
}; };
} }
{
"ZFS Pool" = {
widget =
glancesShared
// {
metric = "fs:/mnt/data";
refreshInterval = 30000;
pointsLimit = 20;
diskUnits = "bytes";
};
};
}
{ {
Processes = { Processes = {
widget = { widget =
type = "glances"; glancesShared
url = "http://localhost:${port}"; // {
metric = "process"; metric = "process";
chart = false; };
version = 4;
};
}; };
} }
{ {
Network = { Network = {
widget = { widget =
type = "glances"; glancesShared
url = "http://localhost:${port}"; // {
metric = "network:enp6s0"; metric = "network:enp6s0";
chart = false; };
version = 4;
};
}; };
} }
]; ];

View File

@@ -0,0 +1,27 @@
{
config,
lib,
pkgs,
...
}: let
unit = "ollama";
cfg = config.server.services.${unit};
in {
config = lib.mkIf cfg.enable {
environment.systemPackages = with pkgs; [
intel-compute-runtime
intel-graphics-compiler
level-zero
];
services.open-webui = {
enable = true;
host = "0.0.0.0";
port = 8001;
environment = {
ANONYMIZED_TELEMETRY = "False";
BYPASS_MODEL_ACCESS_CONTROL = "True";
OLLAMA_BASE_URL = "http://localhost:11434";
};
};
};
}

View File

@@ -21,8 +21,8 @@ in
example = 1080; example = 1080;
}; };
refreshRate = mkOption { refreshRate = mkOption {
type = types.int; type = types.str;
default = 60; default = "60";
}; };
transform = mkOption { transform = mkOption {
type = types.int; type = types.int;

View File

@@ -5,12 +5,10 @@
"aarch64-linux" "aarch64-linux"
]; ];
perSystem = perSystem = {pkgs, ...}: {
{ pkgs, ... }: packages = {
{ # instant repl with automatic flake loading
packages = { repl = pkgs.callPackage ./repl {};
# instant repl with automatic flake loading
repl = pkgs.callPackage ./repl { };
};
}; };
};
} }