7 Commits

24 changed files with 351 additions and 264 deletions

98
flake.lock generated
View File

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

View File

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

View File

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

View File

@@ -4,111 +4,116 @@
homeImports,
self,
...
}: {
flake.nixosConfigurations = let
# clib = import ../lib inputs.nixpkgs.lib;
userConfig = "${self}/home";
systemConfig = "${self}/system";
hostConfig = "${self}/hosts";
}:
{
flake.nixosConfigurations =
let
clib = import ../lib inputs.nixpkgs.lib;
userConfig = "${self}/home";
systemConfig = "${self}/system";
hostConfig = "${self}/hosts";
cnstConfig = "${self}/users/cnst";
toothpickConfig = "${self}/users/toothpick";
cnstConfig = "${self}/users/cnst";
toothpickConfig = "${self}/users/toothpick";
umodPath = "${self}/modules/home";
smodPath = "${self}/modules/system";
umodPath = "${self}/modules/home";
smodPath = "${self}/modules/system";
inherit (inputs.nixpkgs.lib) nixosSystem;
inherit (self) outputs;
inherit (inputs.nixpkgs.lib) nixosSystem;
inherit (self) outputs;
specialArgs = {
inherit
# clib
inputs
outputs
self
userConfig
systemConfig
hostConfig
cnstConfig
toothpickConfig
umodPath
smodPath
;
specialArgs = {
inherit
inputs
outputs
self
userConfig
systemConfig
hostConfig
cnstConfig
toothpickConfig
umodPath
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;
};
hyprland = {
enable = false;
withUWSM = false;
enable = true;
withUWSM = true;
};
inkscape = {
enable = false;
@@ -98,7 +98,7 @@
enable = true;
};
niri = {
enable = true;
enable = false;
};
pkgs = {
enable = true;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -21,7 +21,7 @@ in
let
resolution =
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
"preferred";

View File

@@ -19,6 +19,9 @@ in
keyboards.hhkbse = {
extraDefCfg = ''
process-unmapped-keys yes
linux-dev-names-include (
"HHKB-Hybrid_1 Keyboard"
)
'';
devices = [
"/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
./n8n
./nextcloud
./ollama
./prowlarr
./radarr
./sonarr

View File

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

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;
};
refreshRate = mkOption {
type = types.int;
default = 60;
type = types.str;
default = "60";
};
transform = mkOption {
type = types.int;

View File

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