diff --git a/hosts/muvo/configuration.nix b/hosts/muvo/configuration.nix new file mode 100644 index 0000000..84c0a2f --- /dev/null +++ b/hosts/muvo/configuration.nix @@ -0,0 +1,62 @@ +{ config, lib, pkgs, inputs, system, sources, modulesPath, ... }: +let cfg = config.mods; + +in { + # Hardware + imports = [ + ./hardware-configuration.nix + "${ + builtins.fetchTarball { + url = + "https://github.com/nix-community/disko/archive/refs/tags/v1.12.0.tar.gz"; + sha256 = "0wbx518d2x54yn4xh98cgm65wvj0gpy6nia6ra7ns4j63hx14fkq"; + } + }/module.nix" + ./disk-config.nix + # (inputs.nixpkgs + # + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix") + ]; + + environment.systemPackages = with inputs.nix-alien.packages.${system}; + [ nix-alien ]; + + # System + mods.user.name = "muon"; + networking.hostName = "murk"; + networking.hostId = "a2309090"; + mods.home.file = ./home.nix; + + # Modules + mods.desktop.enable = true; + mods.boot.enable = true; + + mods.theme.enable = true; + mods.theme.scheme = "woodland"; + mods.theme.wallpaper = ./wallpaper.png; + + services.xserver.windowManager.i3.enable = true; + + mods.impermanence.enable = true; + + # Persist + environment.persistence."/persist" = { + directories = [ "/etc/NetworkManager" "/var/lib/NetworkManager" ]; + }; + + # Hardware preferences + environment.variables = { + WINIT_HIDPI_FACTOR = "1"; + WINIT_X11_SCALE_FACTOR = "1"; + }; + + ## Laptop + powerManagement.enable = true; + services.thermald.enable = true; + services.tlp.enable = true; + + ## Mouse + services.libinput.mouse.accelProfile = "flat"; + + # Version of first install + system.stateVersion = "23.05"; +} diff --git a/hosts/muvo/disk-config.nix b/hosts/muvo/disk-config.nix new file mode 100644 index 0000000..05a9f01 --- /dev/null +++ b/hosts/muvo/disk-config.nix @@ -0,0 +1,72 @@ +{ + disko.devices = { + disk = { + main = { + type = "disk"; + device = "/dev/sda"; + content = { + type = "gpt"; + partitions = { + ESP = { + size = "512M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ "umask=0077" ]; + }; + }; + luks = { + size = "100%"; + content = { + type = "luks"; + name = "crypted"; + # disable settings.keyFile if you want to use interactive password entry + #passwordFile = "/tmp/secret.key"; # Interactive + # settings = { + # allowDiscards = true; + # keyFile = "/tmp/secret.key"; + # }; + # additionalKeyFiles = [ "/tmp/additionalSecret.key" ]; + content = { + type = "btrfs"; + extraArgs = [ "-f" ]; + subvolumes = { + "/root" = { + mountpoint = "/"; + mountOptions = [ "compress=zstd" "noatime" ]; + }; + "/home" = { + mountpoint = "/home"; + mountOptions = [ "compress=zstd" "noatime" ]; + }; + "/nix" = { + mountpoint = "/nix"; + mountOptions = [ "compress=zstd" "noatime" ]; + }; + "/persist" = { + mountpoint = "/persist"; + mountOptions = [ "compress=zstd" "noatime" ]; + }; + "/log" = { + mountpoint = "/var/log"; + mountOptions = [ "compress=zstd" "noatime" ]; + }; + "/swap" = { + mountpoint = "/swap"; + swap.swapfile.size = "4G"; + }; + }; + }; + }; + }; + }; + }; + }; + }; + }; + + fileSystems."/persist".neededForBoot = true; + fileSystems."/var/log".neededForBoot = true; +} diff --git a/hosts/muvo/hardware-configuration.nix b/hosts/muvo/hardware-configuration.nix new file mode 100644 index 0000000..e465f37 --- /dev/null +++ b/hosts/muvo/hardware-configuration.nix @@ -0,0 +1,18 @@ +# 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" "ehci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/muvo/home.nix b/hosts/muvo/home.nix new file mode 100644 index 0000000..9ba0dcb --- /dev/null +++ b/hosts/muvo/home.nix @@ -0,0 +1,45 @@ +{ + pkgs, + lib, + config, + osConfig, + inputs, + ... +}: let + cfg = osConfig.mods; +in { + imports = [inputs.impermanence.homeManagerModules.impermanence]; + + # Modules + mods.xdg.enable = true; + mods.i3.enable = true; + mods.battery.enable = true; + mods.terminal.zsh.enable = true; + mods.terminal.emulator.enable = true; + mods.terminal.development.enable = true; + mods.terminal.tools.enable = true; + mods.desktop.development.enable = true; + mods.desktop.productivity.enable = false; + + home.packages = with pkgs; [ + pulseaudio + pavucontrol + alsa-utils + ]; + + # Hardware preferences + ## Monitors + services.autorandr.enable = true; + programs.autorandr = { + enable = true; + hooks.postswitch = { + "notify-i3" = "${pkgs.i3}/bin/i3-msg restart"; + "set-wallpaper" = '' + ${lib.getExe pkgs.feh} --bg-fill --nofehbg ${./wallpaper.png} + ''; + }; + }; + + # Version of first install + home.stateVersion = "23.05"; +} diff --git a/hosts/muvo/wallpaper.png b/hosts/muvo/wallpaper.png new file mode 100644 index 0000000..f016897 Binary files /dev/null and b/hosts/muvo/wallpaper.png differ