Compare commits

...

5 Commits

Author SHA1 Message Date
cd34401a47 update system 2026-03-31 10:50:42 +02:00
1ba0b48cf3 update system 2026-03-27 14:52:11 +01:00
c26512c3db update system 2026-03-23 11:54:25 +01:00
36e64dcc4c feat: update system 2026-03-02 20:21:34 +01:00
0503faaf3b update system 2026-02-16 14:57:54 +01:00
18 changed files with 221 additions and 209 deletions

131
flake.lock generated
View File

@@ -16,6 +16,27 @@
"type": "github" "type": "github"
} }
}, },
"elephant": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems"
},
"locked": {
"lastModified": 1773079031,
"narHash": "sha256-RvCzINnVISBT3d0F1DoIcQFbQsbRJISW9qZeKTzmNaA=",
"owner": "abenz1267",
"repo": "elephant",
"rev": "53afe39cef252010f7c55bd33c5bae6dd50dcf0c",
"type": "github"
},
"original": {
"owner": "abenz1267",
"repo": "elephant",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@@ -24,11 +45,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765835352, "lastModified": 1769996383,
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "a34fae9c08a15ad73f295041fec82323541400a9", "rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -44,11 +65,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768984719, "lastModified": 1774210133,
"narHash": "sha256-O6nXCW9FN39qw204e5Nl3qgaxKFcSvdpx0bULqfwyTA=", "narHash": "sha256-yeiWCY9aAUUJ3ebMVjs0UZXRnT5x90MCtpbpOWiXrvM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "d6e3935ec6e43c8f54cd0132276c82d951e1453e", "rev": "c6fe2944ad9f2444b2d767c4a5edee7c166e8a95",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -62,7 +83,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1731508795, "lastModified": 1731508795,
@@ -91,11 +112,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1768974509, "lastModified": 1774253924,
"narHash": "sha256-V+Uv2EL6MMdYGF4Zg0sWHeRLSgqzC4to01taYDItCNY=", "narHash": "sha256-5Zi+RYoRvax1gATaNC80MYR+6uBJ3F+uUZ2KL3HyTWg=",
"owner": "sodiboo", "owner": "sodiboo",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "2f38ab793de773496d2184aa3aa377bc8c99557b", "rev": "36f3b7b93efde38c4c40daeaee80a62afb550812",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -124,11 +145,11 @@
"niri-unstable": { "niri-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1768678265, "lastModified": 1773130184,
"narHash": "sha256-Ub8eed4DsfIDWyg30xEe+8bSxL/z5Af/gCjmvJ0V/Hs=", "narHash": "sha256-3bwx4WqCB06yfQIGB+OgIckOkEDyKxiTD5pOo4Xz2rI=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "d7184a04b904e07113f4623610775ae78d32394c", "rev": "b07bde3ee82dd73115e6b949e4f3f63695da35ea",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -155,11 +176,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1768886240, "lastModified": 1774106199,
"narHash": "sha256-C2TjvwYZ2VDxYWeqvvJ5XPPp6U7H66zeJlRaErJKoEM=", "narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "80e4adbcf8992d3fd27ad4964fbb84907f9478b0", "rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -171,11 +192,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1768773494, "lastModified": 1773964973,
"narHash": "sha256-XsM7GP3jHlephymxhDE+/TKKO1Q16phz/vQiLBGhpF4=", "narHash": "sha256-NV/J+tTER0P5iJhUDL/8HO5MDjDceLQPRUYgdmy5wXw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "77ef7a29d276c6d8303aece3444d61118ef71ac2", "rev": "812b3986fd1568f7a858f97fcf425ad996ba7d25",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -191,14 +212,14 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_2" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1768910181, "lastModified": 1772402258,
"narHash": "sha256-YRU0IHMzXluZxr0JDfq9jtblb4DV7MIB5wj2jYMFKQc=", "narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "5b138edcb2f1c3ed4b29eca3658f04f0639b98b3", "rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -209,13 +230,15 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"elephant": "elephant",
"home-manager": "home-manager", "home-manager": "home-manager",
"matugen": "matugen", "matugen": "matugen",
"niri": "niri", "niri": "niri",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixvim": "nixvim", "nixvim": "nixvim",
"tidalcycles": "tidalcycles" "tidalcycles": "tidalcycles",
"walker": "walker"
} }
}, },
"superdirt-src": { "superdirt-src": {
@@ -250,6 +273,21 @@
} }
}, },
"systems_2": { "systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -264,6 +302,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_4": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"tidal-src": { "tidal-src": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -339,6 +392,30 @@
"type": "github" "type": "github"
} }
}, },
"walker": {
"inputs": {
"elephant": [
"elephant"
],
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_4"
},
"locked": {
"lastModified": 1773675699,
"narHash": "sha256-GrormZ2KxchtCLuO90+5fioEQmlUCKBIil0Mzr9w0Iw=",
"owner": "abenz1267",
"repo": "walker",
"rev": "d2702235710da3d7daf55c912ca7534261cf20f5",
"type": "github"
},
"original": {
"owner": "abenz1267",
"repo": "walker",
"type": "github"
}
},
"xwayland-satellite-stable": { "xwayland-satellite-stable": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -359,11 +436,11 @@
"xwayland-satellite-unstable": { "xwayland-satellite-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1768765571, "lastModified": 1773622265,
"narHash": "sha256-C1JbyJ3ftogmN3vmLNfyPtnJw2wY64TiUTIhFtk1Leg=", "narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=",
"owner": "Supreeeme", "owner": "Supreeeme",
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"rev": "ed1cef792b4def3321ff9ab5479df09609f17a69", "rev": "a879e5e0896a326adc79c474bf457b8b99011027",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -22,6 +22,17 @@
url = "github:mitchmindtree/tidalcycles.nix/?ref=0db0918e7a3d3c30ed7a6e81dc9d4e3832870ac4"; url = "github:mitchmindtree/tidalcycles.nix/?ref=0db0918e7a3d3c30ed7a6e81dc9d4e3832870ac4";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
elephant = {
url = "github:abenz1267/elephant";
inputs.nixpkgs.follows = "nixpkgs";
};
walker = {
url = "github:abenz1267/walker";
inputs = {
elephant.follows = "elephant";
nixpkgs.follows = "nixpkgs";
};
};
}; };
outputs = outputs =
@@ -33,6 +44,7 @@
nix-flatpak, nix-flatpak,
niri, niri,
tidalcycles, tidalcycles,
walker,
... ...
}@inputs: }@inputs:
let let
@@ -68,7 +80,7 @@
wireshark = prev.wireshark.overrideAttrs ( wireshark = prev.wireshark.overrideAttrs (
finalAttrs: prevAttrs: { finalAttrs: prevAttrs: {
postInstall = prevAttrs.postInstall + '' postInstall = prevAttrs.postInstall + ''
ln -s ${final.usb-sniffer}/bin/usb_sniffer $out/lib/wireshark/extcap/usb_sniffer ln -s ${final.usb-sniffer}/bin/usb_sniffer $out/libexec/wireshark/extcap/usb_sniffer
''; '';
} }
); );
@@ -144,6 +156,7 @@
nix-flatpak.homeManagerModules.nix-flatpak nix-flatpak.homeManagerModules.nix-flatpak
nixvim.homeModules.nixvim nixvim.homeModules.nixvim
./modules/home-manager/modules/nixvim ./modules/home-manager/modules/nixvim
walker.homeManagerModules.default
]; ];
users.${username} = { users.${username} = {
nix.gc = { nix.gc = {

View File

@@ -23,6 +23,7 @@
usecases = { usecases = {
gaming.enable = true; gaming.enable = true;
localai.enable = true;
"3d-printing".enable = true; "3d-printing".enable = true;
development = { development = {
enable = true; enable = true;
@@ -50,23 +51,7 @@
scrolling = true; scrolling = true;
}; };
locale.preset.theaninova.enable = true; locale.preset.theaninova.enable = true;
networking.hosts = {
"127.0.0.1:57461" = [ "ai.local" ];
};
services = { services = {
ollama.enable = false;
open-webui = {
enable = false;
port = 57461;
environment = {
ANONYMIZED_TELEMETRY = "False";
DO_NOT_TRACK = "True";
SCARF_NO_ANALYTICS = "True";
WEBUI_AUTH = "False";
};
};
xserver.xkb.variant = "altgr-intl"; xserver.xkb.variant = "altgr-intl";
xserver.xkb.layout = "us"; xserver.xkb.layout = "us";
@@ -135,7 +120,7 @@
programs = { programs = {
zsh.enable = true; zsh.enable = true;
wireshark = { wireshark = {
enable = false; enable = true;
package = pkgs.wireshark; package = pkgs.wireshark;
usbmon.enable = true; usbmon.enable = true;
}; };

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }: { config, ... }:
{ {
theme.md3-evo = { theme.md3-evo = {
enable = true; enable = true;
@@ -8,35 +8,12 @@
lon = 13.40; lon = 13.40;
}; };
}; };
xdg.userDirs = {
enable = true;
setSessionVariables = true;
extraConfig.PROJECTS = "${config.home.homeDirectory}/Projects";
};
programs.zoxide.enable = true; programs.zoxide.enable = true;
home.packages = with pkgs; [
hyperhdr
/*
(hyperion-ng.overrideAttrs (
final: prev: rec {
version = "2.1.1";
src = fetchFromGitHub {
owner = "hyperion-project";
repo = prev.pname;
rev = version;
hash = "sha256-lKLXgOrXp8DLmlpQe/33A30l4K9VX8P0q2LUA+lLYws=";
# needed for `dependencies/external/`:
# * rpi_ws281x` - not possible to use as a "system" lib
# * qmdnsengine - not in nixpkgs yet
fetchSubmodules = true;
};
buildInputs = prev.buildInputs ++ [
pkgs.libsForQt5.qtwebsockets
pkgs.libftdi1
];
nativeBuildInputs = prev.nativeBuildInputs ++ [ pkgs.git ];
cmakeFlags = prev.cmakeFlags ++ [
"-DUSE_SYSTEM_LIBFTDI_LIBS=ON"
];
}
))
*/
];
wayland.windowManager.hyprland.settings.device = wayland.windowManager.hyprland.settings.device =
let let
targetDPI = 1200; targetDPI = 1200;

View File

@@ -110,7 +110,7 @@ in
ghex ghex
gnome-disk-utility gnome-disk-utility
# fixes # fixes
xorg.xrandr xrandr
]; ];
gtk = { gtk = {

View File

@@ -3,6 +3,7 @@
programs.git = { programs.git = {
enable = true; enable = true;
signing = { signing = {
format = "openpgp";
key = "6C9E EFC5 1AE0 0131 78DE B9C8 68FF FB1E C187 88CA"; key = "6C9E EFC5 1AE0 0131 78DE B9C8 68FF FB1E C187 88CA";
signByDefault = true; signByDefault = true;
}; };

View File

@@ -29,9 +29,12 @@
]; ];
}; };
}; };
wayland.windowManager.hyprland.settings.windowrulev2 = [ wayland.windowManager.hyprland.settings.windowrule = [
# For some reason it really wants to be maximized {
"suppressevent maximize,class:^(neovide)$" name = "Suppress maximize for neovide";
"match:class" = "^(neovide)$";
suppress_event = "maximize";
}
]; ];
programs.nixvim = { programs.nixvim = {
globals = { globals = {

View File

@@ -299,8 +299,11 @@ in
gtk = { gtk = {
gtk3.extraCss = # css gtk3.extraCss = # css
"@import './theme.css';"; "@import './theme.css';";
gtk4.extraCss = # css gtk4 = {
"@import './theme.css';"; theme.name = "Adwaita";
extraCss = # css
"@import './theme.css';";
};
theme = { theme = {
name = "Adwaita"; name = "Adwaita";
}; };
@@ -341,7 +344,13 @@ in
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
settings = { settings = {
windowrulev2 = [ "float,class:^(zenity)$" ]; windowrule = [
{
name = "floating-zenity";
"match:class" = "^(zenity)$";
float = true;
}
];
decoration = { decoration = {
inactive_opacity = 0.8; inactive_opacity = 0.8;
shadow = { shadow = {

View File

@@ -11,7 +11,6 @@
./fonts/nerd-fonts.nix ./fonts/nerd-fonts.nix
./fonts/open-dyslexic.nix ./fonts/open-dyslexic.nix
./hardware/hid-fanatecff.nix
./hardware/astro-a50.nix ./hardware/astro-a50.nix
./hardware/audio.nix ./hardware/audio.nix
./hardware/gbmonctl.nix ./hardware/gbmonctl.nix
@@ -26,9 +25,10 @@
./locales/theaninova.nix ./locales/theaninova.nix
./usecases/gaming.nix
./usecases/3d-printing.nix ./usecases/3d-printing.nix
./usecases/development.nix ./usecases/development.nix
./usecases/gaming.nix
./usecases/localai.nix
./usecases/windows-vm.nix ./usecases/windows-vm.nix
./services/airprint.nix ./services/airprint.nix

View File

@@ -35,12 +35,6 @@ in
}; };
input.numlock_by_default = true; input.numlock_by_default = true;
}; };
plugins = lib.mkIf cfg.scrolling (
with pkgs.hyprlandPlugins;
[
hyprscrolling
]
);
}; };
home = { home = {
packages = with pkgs; [ grim ]; packages = with pkgs; [ grim ];

View File

@@ -57,8 +57,10 @@ in
layout.struts.top = 80; layout.struts.top = 80;
}; };
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
plugin.hyprscrolling = lib.mkIf config.desktops.hyprland.scrolling { scrolling = {
column_width = 0.4; column_width = 0.4;
focus_fit_method = 0;
fullscreen_on_one_column = false;
}; };
master = { master = {
orientation = "center"; orientation = "center";

View File

@@ -1,60 +0,0 @@
{
lib,
stdenv,
kernel,
fetchFromGitHub,
linuxConsoleTools,
bash,
}:
stdenv.mkDerivation rec {
pname = "hid-fanatecff";
version = "0.2.1";
src = fetchFromGitHub {
owner = "gotzl";
repo = "hid-fanatecff";
rev = version;
hash = "sha256-M2jm8pyxHRiswV4iJEawo57GkJ2XOclIo3NxEFgK+q0=";
};
nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = kernel.makeFlags ++ [
"KVERSION=${kernel.modDirVersion}"
"KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"KBUILD_OUTPUT=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
];
patchPhase = ''
runHook prePatch
substituteInPlace fanatec.rules \
--replace-fail "/bin/sh" "${bash}/bin/sh"
substituteInPlace fanatec.rules \
--replace-fail "/usr/bin/evdev-joystick" "${linuxConsoleTools}/bin/evdev-joystick"
runHook postPatch
'';
installPhase = ''
runHook preInstall
mkdir -p $out/etc/udev/rules.d
cp fanatec.rules $out/etc/udev/rules.d/99-fanatec.rules
mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hid
cp hid-fanatec.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/hid
runHook postInstall
'';
meta = with lib; {
description = "Driver to support FANATEC input devices, in particular ForceFeedback of various wheel-bases";
homepage = "https://github.com/gotzl/hid-fanatecff";
license = licenses.gpl2Only;
maintainers = with maintainers; [ theaninova ];
platforms = platforms.linux;
broken = stdenv.isAarch64;
};
}

View File

@@ -1,29 +0,0 @@
{
pkgs,
lib,
config,
...
}:
let
cfg = config.hardware.hid-fanatecff;
kernelPackage = pkgs.callPackage ./hid-fanatecff-pkg.nix {
kernel = config.boot.kernelPackages.kernel;
};
in
{
options.hardware.hid-fanatecff.enable = lib.mkEnableOption "the Linux kernel drivers for Fanatec wheel bases";
config = lib.mkIf cfg.enable {
boot = {
extraModulePackages = [ kernelPackage ];
kernelModules = [ "hid-fanatec" ];
};
services.udev.packages = [ kernelPackage ];
users.groups.games = { };
};
meta = {
maintainers = with lib.maintainers; [ theaninova ];
};
}

View File

@@ -21,9 +21,13 @@ in
bind = [ bind = [
"SUPER_SHIFT,V,exec,XDG_CURRENT_DESKTOP=sway uwsm app -- flameshot gui --clipboard" "SUPER_SHIFT,V,exec,XDG_CURRENT_DESKTOP=sway uwsm app -- flameshot gui --clipboard"
]; ];
windowrulev2 = [ windowrule = [
"float,class:^(flameshot)$" {
"animation fade,class:^(flameshot)$" name = "Flameshot";
"match:class" = "^(flameshot)$";
animation = "fade";
float = true;
}
]; ];
}; };
}; };

View File

@@ -16,11 +16,15 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home-manager.users.${username} = { home-manager.users.${username} = {
wayland.windowManager.hyprland.settings.windowrulev2 = [ wayland.windowManager.hyprland.settings.windowrule = [
"dimaround,class:^(gcr-prompter)$" {
"noborder,class:^(gcr-prompter)$" name = "Gnome Keyring";
"rounding 10,class:^(gcr-prompter)$" "match:class" = "^(gcr-prompter)$";
"animation slide,class:^(gcr-prompter)$" border_size = 0;
rounding = 10;
animation = "slide";
dim_around = true;
}
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [
polkit_gnome polkit_gnome

View File

@@ -8,7 +8,6 @@
let let
cfg = config.shell.components.walker; cfg = config.shell.components.walker;
hmConfig = config.home-manager.users.${username};
in in
{ {
options.shell.components.walker = { options.shell.components.walker = {
@@ -29,27 +28,14 @@ in
}; };
programs.niri.settings.binds."Mod+Space".action.spawn = [ (lib.getExe pkgs.walker) ]; programs.niri.settings.binds."Mod+Space".action.spawn = [ (lib.getExe pkgs.walker) ];
home.packages = with pkgs; [ home.packages = with pkgs; [
walker
wl-clipboard wl-clipboard
]; ];
programs.walker = {
xdg.configFile."walker/config.toml".source = (pkgs.formats.toml { }).generate "walker-config.toml" { enable = true;
app_launch_prefix = "uwsm app -- "; runAsService = true;
close_when_open = true; config = {
force_keyboard_focus = true; close_when_open = true;
}; force_keyboard_focus = true;
systemd.user.services.walker = {
Unit = {
Description = "Walker - Application Runner";
X-Restart-Triggers = [
"${hmConfig.xdg.configFile."walker/config.toml".source}"
];
After = [ "graphical-session.target" ];
};
Install.WantedBy = [ "graphical-session.target" ];
Service = {
ExecStart = "${lib.getExe pkgs.walker} --gapplication-service";
Restart = "always";
}; };
}; };
}; };

View File

@@ -0,0 +1,46 @@
{
config,
lib,
username,
...
}:
with lib;
let
cfg = config.usecases.localai;
in
{
options.usecases.localai = {
enable = mkEnableOption "Enable local LLM services";
};
config = mkIf cfg.enable {
services = {
ollama.enable = true;
open-webui = {
enable = true;
port = 57461;
environment = {
ANONYMIZED_TELEMETRY = "False";
DO_NOT_TRACK = "True";
SCARF_NO_ANALYTICS = "True";
WEBUI_AUTH = "False";
};
};
};
/*
virtualisation.oci-containers.containers.open-terminal =
let
xdg = config.home-manager.users.${username}.xdg;
in
{
podman.user = "${username}";
image = "ghcr.io/open-webui/open-terminal";
volumes = [ "${xdg.dataHome}/open-terminal:/home/user" ];
ports = [ "54183:8000" ];
extraOptions = [ "--env-file=${xdg.configHome}/open-terminal.env" ];
};
*/
};
}

View File

@@ -3,7 +3,7 @@
stdenv, stdenv,
fetchFromGitHub, fetchFromGitHub,
fetchFromGitLab, fetchFromGitLab,
boost, boost177,
libargs, libargs,
cmake, cmake,
}: }:
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ buildInputs = [
boost boost177
libargs libargs
]; ];