init
This commit is contained in:
@@ -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
@@ -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
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme_background = false;
|
||||
preset = 0;
|
||||
vim_keys = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
@@ -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)"
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
services.xserver.enable = true;
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
|
||||
services.printing.enable = true;
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
networking.hostName = "nixos";
|
||||
networking.networkmanager.enable = true;
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
users.users.nils = {
|
||||
isNormalUser = true;
|
||||
description = "nils";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
shell = pkgs.fish;
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user