# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). { config, lib, pkgs, user, allowed, secrets, ... }: { imports = [ # Include the results of the hardware scan. ./system-modules/hardware-configuration.nix ./system-modules/users.nix ./system-modules/sound.nix ./system-modules/ollama.nix ./system-modules/hsmw.nix ./system-modules/health_reminder.nix ./system-modules/davmail.nix ./system-modules/docker.nix ]; boot.loader.efi.canTouchEfiVariables = true; boot.loader.grub = { enable = true; configurationLimit = 30; # device = "/dev/nvme0n1p1"; device = "nodev"; # useOSProber = true; efiSupport = true; # theme = "${(pkgs.fetchFromGitea { # domain = "git.nx2.site"; # owner = "nx2"; # repo = "grub-theme-ascii-diana"; # rev = "0.1.0"; # hash = "sha256-uqhj77CX6EaqF9SBDRKS8dfwSVyR9wb9xG9St4gJmFA="; # }) # }/out/ # "; extraEntries = '' menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-0A97-7A2D' { insmod part_gpt insmod fat search --no-floppy --fs-uuid --set=root 0A97-7A2D chainloader /EFI/Microsoft/Boot/bootmgfw.efi } menuentry 'Arch Linux (on /dev/nvme0n1p5)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-0c11547f-0294-419b-93d0-45c6d1f1c546' { insmod part_gpt insmod ext2 search --no-floppy --fs-uuid --set=root 0c11547f-0294-419b-93d0-45c6d1f1c546 linux /boot/vmlinuz-linux-lts root=UUID=0c11547f-0294-419b-93d0-45c6d1f1c546 rw loglevel=3 quiet splash snd_hda_intel.dmic_detect=0 initrd /boot/intel-ucode.img /boot/initramfs-linux-lts.img } submenu 'Advanced options for Arch Linux (on /dev/nvme0n1p5)' $menuentry_id_option 'osprober-gnulinux-advanced-0c11547f-0294-419b-93d0-45c6d1f1c546' { menuentry 'Arch Linux (on /dev/nvme0n1p5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux-lts--0c11547f-0294-419b-93d0-45c6d1f1c546' { insmod part_gpt insmod ext2 search --no-floppy --fs-uuid --set=root 0c11547f-0294-419b-93d0-45c6d1f1c546 linux /boot/vmlinuz-linux-lts root=UUID=0c11547f-0294-419b-93d0-45c6d1f1c546 rw loglevel=3 quiet splash snd_hda_intel.dmic_detect=0 initrd /boot/intel-ucode.img /boot/initramfs-linux-lts.img } menuentry 'Arch Linux, with Linux linux-lts (on /dev/nvme0n1p5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux-lts--0c11547f-0294-419b-93d0-45c6d1f1c546' { insmod part_gpt insmod ext2 search --no-floppy --fs-uuid --set=root 0c11547f-0294-419b-93d0-45c6d1f1c546 linux /boot/vmlinuz-linux-lts root=UUID=0c11547f-0294-419b-93d0-45c6d1f1c546 rw loglevel=3 quiet splash snd_hda_intel.dmic_detect=0 initrd /boot/intel-ucode.img /boot/initramfs-linux-lts.img } menuentry 'Arch Linux, with Linux linux-lts (fallback initramfs) (on /dev/nvme0n1p5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux-lts--0c11547f-0294-419b-93d0-45c6d1f1c546' { insmod part_gpt insmod ext2 search --no-floppy --fs-uuid --set=root 0c11547f-0294-419b-93d0-45c6d1f1c546 linux /boot/vmlinuz-linux-lts root=UUID=0c11547f-0294-419b-93d0-45c6d1f1c546 rw loglevel=3 quiet splash snd_hda_intel.dmic_detect=0 initrd /boot/intel-ucode.img /boot/initramfs-linux-lts-fallback.img } menuentry 'Arch Linux, with Linux linux (on /dev/nvme0n1p5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--0c11547f-0294-419b-93d0-45c6d1f1c546' { insmod part_gpt insmod ext2 search --no-floppy --fs-uuid --set=root 0c11547f-0294-419b-93d0-45c6d1f1c546 linux /boot/vmlinuz-linux root=UUID=0c11547f-0294-419b-93d0-45c6d1f1c546 rw loglevel=3 quiet splash snd_hda_intel.dmic_detect=0 initrd /boot/intel-ucode.img /boot/initramfs-linux.img } menuentry 'Arch Linux, with Linux linux (fallback initramfs) (on /dev/nvme0n1p5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--0c11547f-0294-419b-93d0-45c6d1f1c546' { insmod part_gpt insmod ext2 search --no-floppy --fs-uuid --set=root 0c11547f-0294-419b-93d0-45c6d1f1c546 linux /boot/vmlinuz-linux root=UUID=0c11547f-0294-419b-93d0-45c6d1f1c546 rw loglevel=3 quiet splash snd_hda_intel.dmic_detect=0 initrd /boot/intel-ucode.img /boot/initramfs-linux-fallback.img } } ''; }; networking.hostName = "NxXPS"; networking.networkmanager = { enable = true; }; # Set your time zone. time.timeZone = "Europe/Berlin"; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; console.font = "Lat2-Terminus16"; console.keyMap = "de"; # Enable the X11 windowing system. services.xserver.enable = true; # Configure keymap in X11 services.xserver.xkb.layout = "de"; services.xserver.xkb.options = "eurosign:e,caps:escape"; # Enable CUPS to print documents. services.printing.enable = true; # rtkit is optional but recommended security.rtkit.enable = true; # Enable touchpad support (enabled default in most desktopManager). services.xserver.libinput.enable = true; hardware.uinput.enable = true; # log into this machine services.openssh.enable = false; hardware.bluetooth.enable = true; # enables support for Bluetooth hardware.bluetooth.powerOnBoot = true; # services.blueman.enable = true; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ ntfs3g git git-crypt wget curl zip unzip p7zip unar nano micro htop direnv openssl blueman ]; fonts.packages = with pkgs; [ noto-fonts noto-fonts-cjk noto-fonts-emoji atkinson-hyperlegible (nerdfonts.override { fonts = [ "CascadiaCode" ]; }) ]; programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; programs.hyprland = { # config is done with home-manager enable = true; xwayland.enable = true; }; system.stateVersion = "23.11"; nix.settings.experimental-features = [ "nix-command" "flakes" ]; programs.bash.shellInit = '' source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh ''; }