This commit is contained in:
2026-01-12 22:00:09 +01:00
commit c33f6abe21
21 changed files with 588 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
{ config, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
./modules/boot.nix
./modules/desktop.nix
./modules/fonts.nix
./modules/gpu.nix
./modules/locale.nix
./modules/networking.nix
./modules/sound.nix
./modules/system_packages.nix
./modules/users.nix
./modules/virtualization.nix
];
system.stateVersion = "25.11";
}
Generated
+49
View File
@@ -0,0 +1,49 @@
{
"nodes": {
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1767910483,
"narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.11",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1768028080,
"narHash": "sha256-50aDK+8eLvsLK39TzQhKNq50/HcXyP4hyxOYoPoVxjo=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d03088749a110d52a4739348f39a63f84bb0be14",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}
+26
View File
@@ -0,0 +1,26 @@
{
description = "nils NixOS Flake Configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
home-manager.url = "github:nix-community/home-manager/release-25.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { self, nixpkgs, home-manager, ... }: {
nixosConfigurations = {
nixos = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.nils = import ./home/home.nix;
}
];
};
};
};
}
+31
View File
@@ -0,0 +1,31 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/1d875e69-a3e7-4566-aa71-a43c040c533f";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/1C0E-5877";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+12
View File
@@ -0,0 +1,12 @@
{ pkgs, ... }:
{
programs.btop = {
enable = true;
settings = {
theme_background = false;
preset = 0;
vim_keys = true;
};
};
}
+24
View File
@@ -0,0 +1,24 @@
{ pkgs, ... }:
{
programs.helix = {
enable = true;
defaultEditor = true;
settings = {
theme = "transparent";
editor = {
line-number = "relative";
bufferline = "multiple";
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
statusline.left = ["mode" "spinner" "file-name"];
};
keys.normal = {
X = "extend_line_above";
};
};
};
}
+20
View File
@@ -0,0 +1,20 @@
{ config, pkgs, ... }:
{
imports = [
./btop.nix
./helix.nix
./mime-apps.nix
./packages.nix
./shell.nix
];
home.username = "nils";
home.homeDirectory = "/home/nils";
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
home.stateVersion = "25.11";
}
+61
View File
@@ -0,0 +1,61 @@
{ ... }: {
xdg.mimeApps = {
enable = true;
defaultApplications = {
# --- Text ---
"text/plain" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
"text/markdown" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
"text/rust" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
"application/json" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
"application/x-yaml" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
"application/x-docbook+xml" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
"application/x-zerosize" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
"text/x-cmake" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
"text/x-objcsrc" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
"text/x-typst" = [ "Helix.desktop" "org.kde.kwrite.desktop" ];
# --- Audio ---
"audio/mpeg" = [ "org.kde.elisa.desktop" ];
"audio/x-wav" = [ "org.kde.elisa.desktop" ];
"audio/x-vorbis+ogg" = [ "org.kde.elisa.desktop" ];
"audio/flac" = [ "org.kde.elisa.desktop" ];
"audio/mp4" = [ "org.kde.elisa.desktop" ];
"audio/aac" = [ "org.kde.elisa.desktop" ];
"audio/ogg" = [ "org.kde.elisa.desktop" ];
# --- Video ---
"video/mp4" = [ "org.kde.haruna.desktop" ];
"video/x-matroska" = [ "org.kde.haruna.desktop" ];
"video/webm" = [ "org.kde.haruna.desktop" ];
"video/quicktime" = [ "org.kde.haruna.desktop" ];
"video/x-msvideo" = [ "org.kde.haruna.desktop" ];
"video/mpeg" = [ "org.kde.haruna.desktop" ];
"video/x-flv" = [ "org.kde.haruna.desktop" ];
"application/x-matroska" = [ "org.kde.haruna.desktop" ];
# --- Dokumente & Archive ---
"application/pdf" = [ "org.kde.okular.desktop" ];
"application/zip" = [ "org.kde.ark.desktop" ];
"application/x-tar" = [ "org.kde.ark.desktop" ];
"application/x-compressed-tar" = [ "org.kde.ark.desktop" ];
"image/svg+xml" = [ "org.kde.gwenview.desktop" "org.inkscape.Inkscape.desktop" ];
"image/png" = [ "org.kde.gwenview.desktop" ];
"image/jpeg" = [ "org.kde.gwenview.desktop" ];
# --- Ordner ---
"inode/directory" = [ "org.kde.dolphin.desktop" ];
# --- Mail & Kalender ---
"x-scheme-handler/mailto" = [ "thunderbird.desktop" ];
"message/rfc822" = [ "thunderbird.desktop" ];
"text/calendar" = [ "thunderbird.desktop" ];
"x-scheme-handler/webcal" = [ "thunderbird.desktop" ];
"x-scheme-handler/webcals" = [ "thunderbird.desktop" ];
"application/x-extension-ics" = [ "thunderbird.desktop" ];
# --- Messenger ---
"x-scheme-handler/sgnl" = [ "signal.desktop" ];
"x-scheme-handler/signalcaptcha" = [ "signal.desktop" ];
};
};
}
+32
View File
@@ -0,0 +1,32 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
anki
discord
fastfetch
ffmpeg
fzf
haruna
inkscape
kdePackages.filelight
kdePackages.francis
kdePackages.isoimagewriter
kdePackages.kdenlive
krita
libreoffice-qt6
#masterpdfeditor
nextcloud-client
obs-studio
obsidian
pympress
signal-desktop
thunderbird
xournalpp
zotero
];
}
+70
View File
@@ -0,0 +1,70 @@
{ pkgs, ... }: {
programs.fish = {
enable = true;
interactiveShellInit = ''
set fish_greeting
set -g fish_color_param 42a5f5
set -g fish_color_error ff5252
#set -g fish_color_command 82b1ff
'';
};
programs.zellij = {
enable = true;
enableFishIntegration = false;
settings = {
default_shell = "fish";
default_layout = "compact";
show_startup_tips = false;
keybinds = {
normal = {
"bind \"Alt h\"" = { MoveFocus = "Left"; };
"bind \"Alt l\"" = { MoveFocus = "Right"; };
"bind \"Alt j\"" = { MoveFocus = "Down"; };
"bind \"Alt k\"" = { MoveFocus = "Up"; };
};
move = {
"bind \"h\"" = { MovePane = "Left"; };
"bind \"l\"" = { MovePane = "Right"; };
"bind \"j\"" = { MovePane = "Down"; };
"bind \"k\"" = { MovePane = "Up"; };
};
resize = {
"bind \"h\"" = { Resize = "Increase Left"; };
"bind \"l\"" = { Resize = "Increase Right"; };
"bind \"j\"" = { Resize = "Increase Down"; };
"bind \"k\"" = { Resize = "Increase Up"; };
};
};
};
};
programs.zoxide = {
enable = true;
enableFishIntegration = true;
};
programs.starship = {
enable = true;
enableFishIntegration = true;
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
};
programs.git = {
enable = true;
settings.user = { name = "Nils Walther"; email = "mail@nils-walther.de"; };
};
programs.lazygit = {
enable = true;
};
}
+73
View File
@@ -0,0 +1,73 @@
"$schema" = 'https://starship.rs/config-schema.json'
format = """
[░▒▓](#0d47a1)\
$username\
[   ](bg:#0d47a1 fg:#ffffff)\
$directory\
$time\
$git_branch\
$git_status\
$nix_shell\
$character"""
[username]
show_always = true
style_user = "bg:#0d47a1 fg:#ffffff"
format = "[ $user]($style)"
[directory]
style = "fg:#000000 bg:#42a5f5"
format = "[ $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"
[directory.substitutions]
"Documents" = "󰈙 "
"Downloads" = " "
"Music" = " "
"Pictures" = " "
"Dokumente" = "󰈙 "
"Musik" = " "
"Bilder" = " "
"Dev" = " "
[time]
disabled = false
time_format = "%R"
style = "bg:#37474f"
format = '[[  $time ](fg:#ffffff bg:#37474f)]($style)'
[git_branch]
disabled = false
symbol = " "
style = "bg:#26c6da fg:#000000"
format = '[ $symbol$branch ](bold $style)'
[git_status]
disabled = false
style = "bg:#26c6da fg:#000000"
format = '[$all_status$ahead_behind]($style)'
# up_to_date = " synced "
modified = "modified "
staged = "staged "
untracked = "untracked "
ahead = "ahead ⇡${count} "
behind = "behind ⇣${count} "
diverged = "diverged ⇕⇡${ahead_count}⇣${behind_count} "
conflicted = "conflict "
stashed = "stashed "
renamed = "renamed "
deleted = "deleted "
[nix_shell]
disabled = false
format = '[   <$name> ]($style)'
style = "bg:#78909c fg:#ffffff"
impure_msg = '(impure)'
pure_msg = '(pure)'
[character]
success_symbol = "[ ➜](#42a5f5)"
error_symbol = "[ ERROR ](bold #ff0000)[➜](#ff0000)"
+35
View File
@@ -0,0 +1,35 @@
{ config, pkgs, ... }:
{
boot = {
loader = {
systemd-boot = {
enable = true;
configurationLimit = 5;
};
efi.canTouchEfiVariables = true;
timeout = 5;
};
kernelPackages = pkgs.linuxPackages_latest;
kernelParams = [
"nvidia-drm.modeset=1"
"quiet"
"splash"
"boot.shell_on_fail"
"loglevel=3"
"rd.systemd.show_status=false"
"rd.udev.log_level=3"
"udev.log_priority=3"
];
initrd.verbose = false;
consoleLogLevel = 0;
plymouth = {
enable = true;
theme = "breeze";
};
};
}
+9
View File
@@ -0,0 +1,9 @@
{ config, pkgs, ... }:
{
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
services.printing.enable = true;
}
+18
View File
@@ -0,0 +1,18 @@
{ pkgs, ... }:
{
fonts.packages = with pkgs; [
dejavu_fonts
ibm-plex
inter
noto-fonts
roboto
fira
fira-code
nerd-fonts.jetbrains-mono
nerd-fonts.hack
newcomputermodern
];
}
+15
View File
@@ -0,0 +1,15 @@
{ config, pkgs, ... }:
{
services.xserver.videoDrivers = [ "nvidia" ];
hardware.graphics.enable = true;
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = false;
powerManagement.finegrained = false;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
}
+25
View File
@@ -0,0 +1,25 @@
{ config, pkgs, ... }:
{
time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "de_DE.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8"; #
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
console.keyMap = "de";
services.xserver.xkb = {
layout = "de";
variant = "";
options = "caps:escape";
};
}
+6
View File
@@ -0,0 +1,6 @@
{ config, pkgs, ... }:
{
networking.hostName = "nixos";
networking.networkmanager.enable = true;
}
+12
View File
@@ -0,0 +1,12 @@
{ config, pkgs, ... }:
{
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
}
+14
View File
@@ -0,0 +1,14 @@
{ pkgs, ... }:
{
nixpkgs.config.allowUnfree = true;
programs.firefox.enable = true;
programs.fish.enable = true;
environment.systemPackages = with pkgs; [
whitesur-cursors
kdePackages.partitionmanager
kdePackages.isoimagewriter
];
}
+10
View File
@@ -0,0 +1,10 @@
{ config, pkgs, ... }:
{
users.users.nils = {
isNormalUser = true;
description = "nils";
extraGroups = [ "networkmanager" "wheel" ];
shell = pkgs.fish;
};
}
+26
View File
@@ -0,0 +1,26 @@
# https://md.timvandenboom.eth64.de/s/Nils/p/evdev-passthrough-BTUeHFqMQ3
{ pkgs, ... }:
{
virtualisation.libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
runAsRoot = true;
swtpm.enable = true;
verbatimConfig = ''
cgroup_device_acl = [
"/dev/null", "/dev/full", "/dev/zero",
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
"/dev/rtc","/dev/hpet", "/dev/vfio/vfio",
"/dev/input/by-id/usb-Kinesis_Corporation_Adv360_Pro_5E36F7BBCC9DC86A-if02-event-kbd",
"/dev/input/by-id/usb-Keychron_Keychron_4K_Link-event-mouse"
]
'';
};
};
programs.virt-manager.enable = true;
}