{ pkgs, lib, flakeRoot, inputs, config, ... }: { imports = [ # Include the results of the hardware scan. ./hardware.nix ./network.nix ./home.nix (flakeRoot + /share/system/client-common.nix) { _module.args = { inherit inputs; }; } ]; programs.fish.enable = true; users.defaultUserShell = pkgs.fish; boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.graceful = true; boot.loader.efi.canTouchEfiVariables = true; networking.hostName = "underworld"; time.timeZone = "Europe/Zagreb"; i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "hr_HR.UTF-8"; LC_IDENTIFICATION = "hr_HR.UTF-8"; LC_MEASUREMENT = "hr_HR.UTF-8"; LC_MONETARY = "hr_HR.UTF-8"; LC_NAME = "hr_HR.UTF-8"; LC_NUMERIC = "hr_HR.UTF-8"; LC_PAPER = "hr_HR.UTF-8"; LC_TELEPHONE = "hr_HR.UTF-8"; LC_TIME = "hr_HR.UTF-8"; }; # Enable the X11 windowing system. # You can disable this if you're only using the Wayland session. # services.xserver.enable = true; hardware.graphics.extraPackages = [ pkgs.intel-compute-runtime ]; # Enable the KDE Plasma Desktop Environment. services.displayManager = { defaultSession = "niri"; sddm = { enable = true; wayland.enable = true; theme = "${pkgs.sddm-astronaut}/share/sddm/themes/sddm-astronaut-theme"; extraPackages = [ # Fix QtMultimedia missing issue # See: https://github.com/NixOS/nixpkgs/issues/390251#issuecomment-2737360643 pkgs.sddm-astronaut ]; }; }; services.desktopManager.plasma6.enable = true; # raised from default 1024 because niri test was failing # systemd.extraConfig = "DefaultLimitNOFILE=4096"; programs.niri = { enable = true; package = pkgs.niri-stable; }; # Configure keymap in X11 services.xserver.xkb = { layout = "us"; variant = ""; }; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound with pipewire. services.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; # If you want to use JACK applications, uncomment this #jack.enable = true; # use the example session manager (no others are packaged yet so this is enabled by default, # no need to redefine it in your config for now) #media-session.enable = true; }; # Since 6.17, the special WiFi hardware I'm using should work since 6.17. boot.kernelPackages = lib.mkForce ( if builtins.compareVersions pkgs.linuxPackages.kernel.version "6.17" >= 0 then pkgs.linuxPackages else pkgs.linuxPackages_latest ); assertions = [ ( let version = config.boot.kernelPackages.kernel.version; in { assertion = builtins.compareVersions version "6.17" >= 0; message = "My WiFi dongles only work with upstream Linux >= 6.17 (is ${version})"; } ) ]; users.users = { osiris = { isNormalUser = true; description = "Isabella Bastaja"; extraGroups = [ "wheel" "video" "network" "podman" ]; uid = 1000; }; }; nix.settings.trusted-users = [ "osiris" ]; services.displayManager.autoLogin = { enable = true; user = "osiris"; }; fileSystems."/mnt/drive2" = { # 1TB toshiba HDD device = "/dev/disk/by-uuid/40128595-f8fa-466e-97c4-457c9b5c7577"; fsType = "bcachefs"; options = [ # boot options for fstab. Search up fstab mount options you can use "rw" # Read-write permissions for all users "exec" # Permit execution of binaries and other executable files "suid" "nofail" # Prevent system from failing if this drive doesn't mount # "umask=002" # default perissions rwxrwxr-x "uid=${toString config.users.users.osiris.uid}" "X-mount.owner=osiris" ]; }; fileSystems."/mnt/drive3" = { # 4TB WD HDD device = "/dev/disk/by-uuid/e4e11ca2-abf6-4f65-bed9-f9497d529438"; fsType = "bcachefs"; options = [ # boot options for fstab. Search up fstab mount options you can use "rw" # Read-write permissions for all users "exec" # Permit execution of binaries and other executable files "suid" "nofail" # Prevent system from failing if this drive doesn't mount # "umask=002" # default perissions rwxrwxr-x "uid=${toString config.users.users.osiris.uid}" "X-mount.owner=osiris" ]; }; # This option defines the first version of NixOS you have installed on this particular machine, # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. # # Most users should NEVER change this value after the initial install, for any reason, # even if you've upgraded your system to a new NixOS release. # # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how # to actually do that. # # This value being lower than the current NixOS release does NOT mean your system is # out of date, out of support, or vulnerable. # # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, # and migrated your data accordingly. # # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "24.11"; # Did you read the comment? }