Compare commits

...

6 Commits

Author SHA1 Message Date
a78d66fbd3 added qmk for the keyboard config 2025-11-16 13:15:48 +01:00
941c51884d added ollama context length explicitly 2025-11-07 21:40:33 +01:00
ddfde55edf everything just works lets leave it like that 2025-11-06 22:10:41 +01:00
9ba39dbff4 setup local llms with websearch 2025-11-06 12:00:23 +01:00
2cbbbddcab added appindicator to gnome 2025-11-03 12:28:44 +01:00
bf441a6979 do not hibernate 2025-11-03 11:51:26 +01:00
12 changed files with 153 additions and 74 deletions

34
flake.lock generated
View File

@@ -7,31 +7,48 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1762041416, "lastModified": 1758463745,
"narHash": "sha256-rmJKABRXnhFjjI6RB/MnEvLTQa569zu684Th9y6UlOI=", "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c0016dd14773f4ca0b467b74c7cdcc501570df4b", "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-25.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1761907660, "lastModified": 1762233356,
"narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", "narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", "rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1762361079,
"narHash": "sha256-lz718rr1BDpZBYk7+G8cE6wee3PiBUpn8aomG/vLLiY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ffcdcf99d65c61956d882df249a9be53e5902ea5",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@@ -39,7 +56,8 @@
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable"
} }
} }
}, },

View File

@@ -2,61 +2,74 @@
description = "NixOS + Home Manager config"; description = "NixOS + Home Manager config";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = inputs@{ self, nixpkgs, home-manager, ... }: { outputs = inputs@{ self, nixpkgs, home-manager, ... }:
let
system = "x86_64-linux";
nixosConfigurations = { lib = nixpkgs.lib;
segfault-machine = nixpkgs.lib.nixosSystem { pkgs-unstable = import inputs.nixpkgs-unstable {
system = "x86_64-linux"; system = system;
specialArgs = { inherit inputs; }; config.allowUnfree = true;
modules = [
./hosts/segfault-machine/configuration.nix
home-manager.nixosModules.home-manager {
home-manager.backupFileExtension = "backup";
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.lukas.imports = [
./home/lukas/laptop/default.nix
];
home-manager.extraSpecialArgs = { inherit inputs; };
}
];
}; };
in
{
nixosConfigurations = {
segfault-machine = lib.nixosSystem {
inherit system; # inherited it from 'let' block
segfault-tower = nixpkgs.lib.nixosSystem { specialArgs = { inherit pkgs-unstable; };
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/segfault-tower/configuration.nix
home-manager.nixosModules.home-manager { modules = [
home-manager.backupFileExtension = "backup"; ./hosts/segfault-machine/configuration.nix
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.lukas.imports = [ home-manager.nixosModules.home-manager {
./home/lukas/tower/default.nix home-manager.backupFileExtension = "backup";
]; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.lukas.imports = [
./home/lukas/laptop/default.nix
];
home-manager.extraSpecialArgs = { inherit inputs; };
}
];
};
segfault-tower = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit pkgs-unstable; };
modules = [
./hosts/segfault-tower/configuration.nix
home-manager.nixosModules.home-manager {
home-manager.backupFileExtension = "backup";
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.lukas.imports = [
./home/lukas/tower/default.nix
];
home-manager.extraSpecialArgs = { inherit inputs; };
}
];
};
home-manager.extraSpecialArgs = { inherit inputs; };
}
];
}; };
};
}; };
} }

View File

@@ -12,13 +12,7 @@ in {
userName= "Lukas"; userName= "Lukas";
userEmail = "mail@lukas.contact"; userEmail = "mail@lukas.contact";
settings = { extraConfig = {
user = {
mail = "mail@lukas.contact";
name = "Lukas";
};
commit.gpgsign = true; commit.gpgsign = true;
gpg.format = "ssh"; gpg.format = "ssh";
gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers"; gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers";

View File

@@ -1,7 +1,6 @@
{ {
imports = [ imports = [
./packages.nix ./packages.nix
# ./ollama.nix
../common/brave.nix ../common/brave.nix
../common/direnv.nix ../common/direnv.nix
../common/emacs.nix ../common/emacs.nix

View File

@@ -1,8 +0,0 @@
{
services.ollama = {
enable = true;
acceleration = "cuda";
# Optional: preload models, see https://ollama.com/library
# loadModels = [ "qwen3:30b" "gpt-oss:20b" "deepseek-r1:32b" "gemma3:27b"];
};
}

View File

@@ -9,6 +9,7 @@
pkgs.keepassxc pkgs.keepassxc
pkgs.telegram-desktop pkgs.telegram-desktop
pkgs.element-desktop pkgs.element-desktop
pkgs.tidal-hifi
pkgs.tree pkgs.tree
pkgs.htop pkgs.htop
@@ -16,11 +17,15 @@
pkgs.wget pkgs.wget
pkgs.unzip pkgs.unzip
pkgs.open-webui
pkgs.librechat
pkgs.feather pkgs.feather
pkgs.firefox pkgs.firefox
pkgs.ranger pkgs.ranger
pkgs.zathura
pkgs.nerd-fonts.fira-code pkgs.nerd-fonts.fira-code
pkgs.fira-code pkgs.fira-code
@@ -35,7 +40,7 @@
pkgs.binutils pkgs.binutils
pkgs.gcc pkgs.gcc
pkgs.scenebuilder # pkgs.scenebuilder
pkgs.nil pkgs.nil

View File

@@ -10,10 +10,10 @@
../../users/lukas.nix ../../users/lukas.nix
../../modules/desktop/gnome.nix ../../modules/desktop/gnome.nix
../../modules/input/katana.nix ../../modules/input/katana.nix
../../modules/input/qmk.nix
../../modules/networking/networkmanager.nix ../../modules/networking/networkmanager.nix
../../modules/networking/bluetooth.nix ../../modules/networking/bluetooth.nix
../../modules/system/locale.nix ../../modules/system/locale.nix
../../modules/system/suspend-and-hibernate.nix
../../modules/system/nvidia.nix ../../modules/system/nvidia.nix
../../modules/system/audio.nix ../../modules/system/audio.nix
../../modules/system/printing.nix ../../modules/system/printing.nix
@@ -21,6 +21,7 @@
../../modules/system/gpg.nix ../../modules/system/gpg.nix
../../modules/system/virtualbox.nix ../../modules/system/virtualbox.nix
../../modules/system/mullvad.nix ../../modules/system/mullvad.nix
../../modules/services/ollama.nix
]; ];
# Bootloader. # Bootloader.
@@ -40,6 +41,6 @@
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# Version festlegen # Version festlegen
system.stateVersion = "25.11"; system.stateVersion = "25.05";
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
} }

View File

@@ -1,13 +1,19 @@
{ config, pkgs, ... }: { pkgs, ... }:
{ {
services.displayManager.gdm.enable = true; services.xserver = {
services.desktopManager.gnome.enable = true; displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
};
# To disable installing GNOME's suite of applications # To disable installing GNOME's suite of applications
# and only be left with GNOME shell. # and only be left with GNOME shell.
services.gnome.core-apps.enable = false; services.gnome.core-apps.enable = true;
services.gnome.core-developer-tools.enable = false; services.gnome.core-developer-tools.enable = false;
services.gnome.games.enable = false; services.gnome.games.enable = false;
environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs ]; environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs ];
environment.systemPackages = [ pkgs.gnomeExtensions.appindicator ];
services.udev.packages = [ pkgs.gnome-settings-daemon ];
} }

View File

@@ -1,4 +1,3 @@
{ inputs, pkgs, ... }:
{ {
# Enable the uinput module # Enable the uinput module
boot.kernelModules = [ "uinput" ]; boot.kernelModules = [ "uinput" ];

6
modules/input/qmk.nix Normal file
View File

@@ -0,0 +1,6 @@
{ pkgs, ... }:
{
hardware.keyboard.qmk.enable = true;
environment.systemPackages = with pkgs; [ via qmk ];
services.udev.packages = [ pkgs.via ];
}

View File

@@ -0,0 +1,45 @@
{config, pkgs-unstable, ... }:
{
services.ollama = {
enable = true;
package = pkgs-unstable.ollama;
acceleration = "cuda";
environmentVariables = {
OLLAMA_CONTEXT_LENGTH="32000";
};
};
systemd.services.ollama.serviceConfig = {
Environment = [ "OLLAMA_HOST=0.0.0.0:11434" ];
};
services.open-webui = {
package = pkgs-unstable.open-webui;
enable = true;
port = 8081;
environment = {
ANONYMIZED_TELEMETRY = "False";
DO_NOT_TRACK = "True";
SCARF_NO_ANALYTICS = "True";
OLLAMA_API_BASE_URL = "http://127.0.0.1:11434/api";
OLLAMA_BASE_URL = "http://127.0.0.1:11434";
WEBUI_AUTH = "False";
FRONTEND_BUILD_DIR = "${config.services.open-webui.stateDir}/build";
DATA_DIR = "${config.services.open-webui.stateDir}/data";
STATIC_DIR = "${config.services.open-webui.stateDir}/static";
};
};
services.searx = {
enable = true;
redisCreateLocally = true;
settings.server = {
bind_address = "::1";
port = 1111;
secret_key = "my ultra secret key";
};
settings.search.formats = ["html" "json"];
};
}

View File

@@ -1,3 +1,4 @@
{ {
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
virtualisation.oci-containers.backend = "docker";
} }