diff options
| -rw-r--r-- | hosts/nyaan/default.nix | 130 | ||||
| -rw-r--r-- | hosts/nyaan/hardware.nix | 33 | ||||
| -rw-r--r-- | hosts/nyaan/home.nix | 66 |
3 files changed, 229 insertions, 0 deletions
diff --git a/hosts/nyaan/default.nix b/hosts/nyaan/default.nix new file mode 100644 index 0000000..d90e930 --- /dev/null +++ b/hosts/nyaan/default.nix @@ -0,0 +1,130 @@ +{ + pkgs, + flakeRoot, + inputs, + config, + ... +}: +{ + imports = [ + # Include the results of the hardware scan. + ./hardware.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 = "nyaan"; + 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 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; + }; + + networking.useNetworkd = true; + networking.networkmanager = { + enable = true; + }; + + users.users = { + isabella = { + isNormalUser = true; + description = "Isabella Bastaja"; + extraGroups = [ + "wheel" + "video" + "network" + "podman" + ]; + uid = 1000; + }; + }; + nix.settings.trusted-users = [ "isabella" ]; + + # 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 = "25.11"; # Did you read the comment? +} diff --git a/hosts/nyaan/hardware.nix b/hosts/nyaan/hardware.nix new file mode 100644 index 0000000..d3a1025 --- /dev/null +++ b/hosts/nyaan/hardware.nix @@ -0,0 +1,33 @@ +# 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 = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/20fc22cd-161a-4537-b432-adf6c60c9f1c"; + fsType = "btrfs"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/B057-BE14"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/253a1a87-9919-4262-8ae9-63ad63b00648"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/nyaan/home.nix b/hosts/nyaan/home.nix new file mode 100644 index 0000000..f982160 --- /dev/null +++ b/hosts/nyaan/home.nix @@ -0,0 +1,66 @@ +{ + flakeRoot, + inputs, + pkgs, + config, + ... +}: + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + sharedModules = [ { programs.fish.enable = true; } ]; + extraSpecialArgs = { + inherit inputs; + }; + }; + + home-manager.users.isabella = { + imports = [ + (flakeRoot + /share/cfg) + (flakeRoot + /share/home/minimal.nix) + (flakeRoot + /share/home/dev-stuff.nix) + (flakeRoot + /share/home/shell.nix) + (flakeRoot + /share/home/gui-tools.nix) + # (flakeRoot + /share/home/gaming.nix) + (flakeRoot + /share/home/niri.nix) + ]; + + programs.tofi.enable = true; + + xdg = { + systemDirs.data = + let + gds = pkgs.gsettings-desktop-schemas; + gtk3 = pkgs.gtk3; + in + [ + "${gds}/share/gsettings-schemas/${gds.name}" + "${gtk3}/share/gsettings-schemas/${gtk3.name}" + ]; + userDirs = + let + home = config.home-manager.users.isabella.home.homeDirectory; + annex = "${home}/Annex"; + in + { + enable = true; + createDirectories = true; + + # Disable dirs that I don't use + desktop = null; + publicShare = null; + templates = null; + pictures = "${annex}/Pictures"; + music = "${annex}/Music"; + documents = "${annex}/Documents"; + download = "${home}/Downloads"; + }; + portal.xdgOpenUsePortal = true; + }; + + home.stateVersion = "25.11"; + }; + + home-manager.users.root.home.stateVersion = "25.11"; +} |
