From 781cd2811c41f4c9b7bad26ecde5dfda774a5e88 Mon Sep 17 00:00:00 2001 From: Shahab Dogar Date: Thu, 6 Feb 2025 17:14:20 +0500 Subject: [PATCH] chore: NixOS | format nix files --- flake.nix | 9 +--- home-manager/home.nix | 20 ++++---- nixos/disko-config.nix | 82 ++++++++++++++++++-------------- nixos/hardware-configuration.nix | 18 ++++--- 4 files changed, 70 insertions(+), 59 deletions(-) diff --git a/flake.nix b/flake.nix index 2f6bd6a..d649e16 100644 --- a/flake.nix +++ b/flake.nix @@ -40,12 +40,7 @@ }; }; - outputs = { - self, - nixpkgs, - ... - } @ inputs: - let + outputs = {nixpkgs, ...} @ inputs: let system = "x86_64-linux"; host = "rihla"; user = "shahab"; @@ -73,7 +68,7 @@ homeConfigurations = { "${user}" = inputs.home-manager.lib.homeManagerConfiguration { inherit pkgs; - modules = [ ./home-manager/home.nix ]; + modules = [./home-manager/home.nix]; }; }; diff --git a/home-manager/home.nix b/home-manager/home.nix index 30a3a0e..d380b70 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -5,22 +5,26 @@ config, pkgs, ... -}: -let +}: let # Be sure to actually install the font first! font = "ComicCodeLigatures"; username = "shahab"; email = "shahab@dogar.dev"; fullName = "Shahab Dogar"; -in -{ +in { # You can import other home-manager modules here imports = [ # Custom import to configure font - (import ./configs/alacritty.nix { inherit pkgs config; font = font; }) + (import ./configs/alacritty.nix { + inherit pkgs config font; + }) # Custom import for username and email - (import ./configs/git.nix { inherit pkgs config lib; userEmail = email; userName = fullName; }) + (import ./configs/git.nix { + inherit pkgs config lib; + userEmail = email; + userName = fullName; + }) ./configs/firefox.nix ./configs/direnv.nix @@ -46,10 +50,10 @@ in }; home = { + inherit username; + # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion stateVersion = "24.05"; - - username = username; homeDirectory = "/home/${username}"; sessionVariables = { EDITOR = "nvim"; diff --git a/nixos/disko-config.nix b/nixos/disko-config.nix index e19da1d..d45338b 100644 --- a/nixos/disko-config.nix +++ b/nixos/disko-config.nix @@ -1,7 +1,4 @@ -{ - device ? throw "Set this to your disk device, e.g. /dev/sda", - ... -}: { +{device ? throw "Set this to your disk device, e.g. /dev/sda", ...}: { disko.devices = { disk = { main = { @@ -39,37 +36,8 @@ ]; }; content = { - type = "btrfs"; - extraArgs = ["-L" "nixos" "-f"]; - subvolumes = { - "/root" = { - mountpoint = "/"; - mountOptions = [ - "compress=zstd" - "noatime" - ]; - }; - "/nix" = { - mountpoint = "/nix"; - mountOptions = [ - "subvol=nix" - "compress=zstd" - "noatime" - ]; - }; - "/persistant" = { - mountpoint = "/persistant"; - mountOptions = [ - "subvol=persistant" - "compress=zstd" - "noatime" - ]; - }; - "/swap" = { - mountpoint = "/swap"; - swap.swapfile.size = "64G"; - }; - }; + type = "lvm_pv"; + vg = "luks_vg"; }; }; }; @@ -78,6 +46,46 @@ }; }; }; - - fileSystems."/persistant".neededForBoot = true; + lvm_vg = { + luks_vg = { + type = "lvm_vg"; + lvs = { + swap = { + size = "64G"; + content = { + type = "swap"; + resumeDevice = true; + }; + }; + root = { + size = "100%FREE"; + content = { + type = "btrfs"; + extraArgs = ["-L" "nixos" "-f"]; + subvolumes = { + "/root" = { + mountpoint = "/"; + }; + "/nix" = { + mountpoint = "/nix"; + mountOptions = [ + "subvol=nix" + "compress=zstd" + "noatime" + ]; + }; + "/persistant" = { + mountpoint = "/persistant"; + mountOptions = [ + "subvol=persistant" + "compress=zstd" + "noatime" + ]; + }; + }; + }; + }; + }; + }; + }; } diff --git a/nixos/hardware-configuration.nix b/nixos/hardware-configuration.nix index fcba692..a81b610 100644 --- a/nixos/hardware-configuration.nix +++ b/nixos/hardware-configuration.nix @@ -1,19 +1,23 @@ # 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, modulesPath, ... }: - { - imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; + config, + lib, + modulesPath, + ... +}: { + imports = [(modulesPath + "/installer/scan/not-detected.nix")]; + fileSystems."/persistant".neededForBoot = true; boot = { initrd = { - availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "thunderbolt" "usb_storage" "sd_mod" ]; - kernelModules = [ ]; + availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "thunderbolt" "usb_storage" "sd_mod"]; + kernelModules = []; }; - kernelModules = [ "kvm-amd" ]; - extraModulePackages = [ ]; + kernelModules = ["kvm-amd"]; + extraModulePackages = []; }; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking