diff --git a/flake.nix b/flake.nix index a3a927c..36d5f72 100644 --- a/flake.nix +++ b/flake.nix @@ -9,35 +9,36 @@ nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; }; - outputs = inputs@{ self, nixpkgs, home-manager, ... }: let + outputs = inputs@{ self, nixpkgs, home-manager, ... }: + let - pkgs = system: import nixpkgs { - inherit system; - overlays = [ - inputs.nix-vscode-extensions.overlays.default - ]; - config = {allowUnfree = true;}; - }; - - in { - - nixosConfigurations = { - - fedfer-main-laptop-nixos = nixpkgs.lib.nixosSystem rec { - system = "x86_64-linux"; - specialArgs = { pkgs = pkgs system; }; - modules = [ - ./hosts/main-laptop/configuration.nix - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = false; - home-manager.users.fedfer = import ./hosts/main-laptop/home.nix; - home-manager.backupFileExtension = "backup"; - } + pkgs = system: import nixpkgs { + inherit system; + overlays = [ + inputs.nix-vscode-extensions.overlays.default ]; + config = { allowUnfree = true; }; }; + in + { + + nixosConfigurations = { + fedfer-main-laptop-nixos = nixpkgs.lib.nixosSystem rec { + system = "x86_64-linux"; + specialArgs = { pkgs = (pkgs system); }; + modules = [ + ./hosts/main-laptop/configuration.nix + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = false; + home-manager.users.fedfer = import ./hosts/main-laptop/home.nix; + home-manager.backupFileExtension = "backup"; + } + ]; + }; + + }; }; - }; } diff --git a/homeManagerModules/cliPrograms/bun.nix b/homeManagerModules/cliPrograms/bun.nix index b04febd..05cab2e 100644 --- a/homeManagerModules/cliPrograms/bun.nix +++ b/homeManagerModules/cliPrograms/bun.nix @@ -3,4 +3,4 @@ enable = true; enableGitIntegration = true; }; -} \ No newline at end of file +} diff --git a/homeManagerModules/cliPrograms/fastfetch.nix b/homeManagerModules/cliPrograms/fastfetch.nix index 7413aaf..ffe3d2b 100644 --- a/homeManagerModules/cliPrograms/fastfetch.nix +++ b/homeManagerModules/cliPrograms/fastfetch.nix @@ -3,4 +3,4 @@ enable = true; #todo add fastfetch config }; -} \ No newline at end of file +} diff --git a/homeManagerModules/cliPrograms/git.nix b/homeManagerModules/cliPrograms/git.nix index 502a3ee..fe84d92 100644 --- a/homeManagerModules/cliPrograms/git.nix +++ b/homeManagerModules/cliPrograms/git.nix @@ -7,4 +7,4 @@ init.defaultBranch = "main"; }; }; -} \ No newline at end of file +} diff --git a/homeManagerModules/cliPrograms/hyfetch.nix b/homeManagerModules/cliPrograms/hyfetch.nix index 2e4c747..f32539b 100644 --- a/homeManagerModules/cliPrograms/hyfetch.nix +++ b/homeManagerModules/cliPrograms/hyfetch.nix @@ -4,4 +4,4 @@ enable = true; #todo add hyfetch config }; -} \ No newline at end of file +} diff --git a/homeManagerModules/desktopPrograms/essentials/firefox.nix b/homeManagerModules/desktopPrograms/essentials/firefox.nix index ea96321..5522f88 100644 --- a/homeManagerModules/desktopPrograms/essentials/firefox.nix +++ b/homeManagerModules/desktopPrograms/essentials/firefox.nix @@ -5,4 +5,4 @@ #todo make sure this on only if gnome is setup correctly nativeMessagingHosts = [ pkgs.gnome-browser-connector ]; }; -} \ No newline at end of file +} diff --git a/homeManagerModules/desktopPrograms/vesktop.nix b/homeManagerModules/desktopPrograms/vesktop.nix index 2c55ae0..f3dec30 100644 --- a/homeManagerModules/desktopPrograms/vesktop.nix +++ b/homeManagerModules/desktopPrograms/vesktop.nix @@ -1,3 +1,3 @@ { pkgs, ... }: { home.packages = [ pkgs.vesktop ]; -} \ No newline at end of file +} diff --git a/homeManagerModules/desktopPrograms/vscodium.nix b/homeManagerModules/desktopPrograms/vscodium.nix index ff03037..f44343e 100644 --- a/homeManagerModules/desktopPrograms/vscodium.nix +++ b/homeManagerModules/desktopPrograms/vscodium.nix @@ -39,4 +39,4 @@ "terminal.integrated.fontWeight" = 500; }; }; -} \ No newline at end of file +} diff --git a/hosts/main-homelab/configuration.nix b/hosts/main-homelab/configuration.nix index c64eebc..c27e803 100644 --- a/hosts/main-homelab/configuration.nix +++ b/hosts/main-homelab/configuration.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: { +{ pkgs, ... }: { boot.kernelPackages = pkgs.linuxPackages_latest; boot.loader.systemd-boot.enable = true; @@ -26,4 +26,4 @@ #DO NOT CHANGE THIS! IMPORTANT! DO NOT CHANGE THIS! system.stateVersion = "23.11"; #DO NOT CHANGE THIS! -} \ No newline at end of file +} diff --git a/hosts/main-laptop/configuration.nix b/hosts/main-laptop/configuration.nix index 2dc5c33..fffc42b 100644 --- a/hosts/main-laptop/configuration.nix +++ b/hosts/main-laptop/configuration.nix @@ -5,7 +5,7 @@ [ ./hardware-configuration.nix ../../nixosModules/default.nix - ]; + ]; settings = { programs.docker.enable = lib.mkForce true; @@ -49,13 +49,13 @@ #todo need to move this to modules services = { libinput = { - enable = true; - touchpad = { - tapping = true; - }; + enable = true; + touchpad = { + tapping = true; }; + }; }; - + #remove various bloat services.xserver.excludePackages = with pkgs; [ xterm ]; diff --git a/hosts/main-laptop/hardware-configuration.nix b/hosts/main-laptop/hardware-configuration.nix index cd49132..c6f7cfd 100644 --- a/hosts/main-laptop/hardware-configuration.nix +++ b/hosts/main-laptop/hardware-configuration.nix @@ -5,7 +5,8 @@ { imports = - [ (modulesPath + "/installer/scan/not-detected.nix") + [ + (modulesPath + "/installer/scan/not-detected.nix") ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ]; @@ -14,18 +15,19 @@ boot.extraModulePackages = [ ]; fileSystems."/" = - { device = "/dev/disk/by-label/nixos"; + { + device = "/dev/disk/by-label/nixos"; fsType = "ext4"; }; fileSystems."/boot" = - { device = "/dev/disk/by-label/BOOT"; + { + device = "/dev/disk/by-label/BOOT"; fsType = "vfat"; }; swapDevices = - [ { device = "/dev/disk/by-label/swap"; } - ]; + [{ device = "/dev/disk/by-label/swap"; }]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/hosts/main-laptop/home.nix b/hosts/main-laptop/home.nix index a8b66c7..8bb4f93 100644 --- a/hosts/main-laptop/home.nix +++ b/hosts/main-laptop/home.nix @@ -4,10 +4,10 @@ ../../homeManagerModules/zsh.nix ../../homeManagerModules/starship.nix ../../homeManagerModules/desktopPrograms/essentials/firefox.nix - + ../../homeManagerModules/desktopPrograms/vscodium.nix ../../homeManagerModules/desktopPrograms/vesktop.nix - + ../../homeManagerModules/cliPrograms/hyfetch.nix ../../homeManagerModules/cliPrograms/bun.nix ../../homeManagerModules/cliPrograms/git.nix diff --git a/nixosModules/drivers/gpu/amd.nix b/nixosModules/drivers/gpu/amd.nix index bbdc7d6..ae31a4d 100644 --- a/nixosModules/drivers/gpu/amd.nix +++ b/nixosModules/drivers/gpu/amd.nix @@ -1,11 +1,11 @@ { lib, config, ... }: { - options = { - settings.drivers.gpu.amd.enable = lib.mkEnableOption "enable AMD gpu drivers"; - }; + options = { + settings.drivers.gpu.amd.enable = lib.mkEnableOption "enable AMD gpu drivers"; + }; - config = lib.mkIf config.settings.drivers.gpu.amd.enable { - boot.initrd.kernelModules = [ "amdgpu" ]; - services.xserver.videoDrivers = [ "amdgpu" ]; - }; + config = lib.mkIf config.settings.drivers.gpu.amd.enable { + boot.initrd.kernelModules = [ "amdgpu" ]; + services.xserver.videoDrivers = [ "amdgpu" ]; + }; } diff --git a/nixosModules/drivers/gpu/disableNvidia.nix b/nixosModules/drivers/gpu/disableNvidia.nix index 184d9b5..8bb66dc 100644 --- a/nixosModules/drivers/gpu/disableNvidia.nix +++ b/nixosModules/drivers/gpu/disableNvidia.nix @@ -1,24 +1,24 @@ { lib, config, ... }: { - options = { - settings.drivers.gpu.nvidia.forceDisable = lib.mkEnableOption "force disable all nvidia drivers"; - }; + options = { + settings.drivers.gpu.nvidia.forceDisable = lib.mkEnableOption "force disable all nvidia drivers"; + }; - config = lib.mkIf config.settings.drivers.gpu.nvidia.forceDisable { - boot.extraModprobeConfig = '' - blacklist nouveau - options nouveau modeset=0 - ''; - services.udev.extraRules = '' - # Remove NVIDIA USB xHCI Host Controller devices, if present - ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1" - # Remove NVIDIA USB Type-C UCSI devices, if present - ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1" - # Remove NVIDIA Audio devices, if present - ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1" - # Remove NVIDIA VGA/3D controller devices - ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1" - ''; - boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_uvm" "nvidiafb" "nvidia_drm" "nvidia_modeset" ]; - }; + config = lib.mkIf config.settings.drivers.gpu.nvidia.forceDisable { + boot.extraModprobeConfig = '' + blacklist nouveau + options nouveau modeset=0 + ''; + services.udev.extraRules = '' + # Remove NVIDIA USB xHCI Host Controller devices, if present + ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1" + # Remove NVIDIA USB Type-C UCSI devices, if present + ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1" + # Remove NVIDIA Audio devices, if present + ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1" + # Remove NVIDIA VGA/3D controller devices + ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1" + ''; + boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_uvm" "nvidiafb" "nvidia_drm" "nvidia_modeset" ]; + }; } diff --git a/nixosModules/drivers/gpu/nvidia.nix b/nixosModules/drivers/gpu/nvidia.nix index 8cbded7..1ccd386 100644 --- a/nixosModules/drivers/gpu/nvidia.nix +++ b/nixosModules/drivers/gpu/nvidia.nix @@ -1,25 +1,25 @@ { lib, config, ... }: { - options = { - settings.drivers.gpu.nvidia.enable = lib.mkEnableOption "Enable Nvidia proprietary drivers"; - settings.drivers.gpu.nvidia.offload = lib.mkEnableOption "Enable prime offloading"; - settings.drivers.gpu.nvidia.sync = lib.mkEnableOption "Enable prime sync"; - }; + options = { + settings.drivers.gpu.nvidia.enable = lib.mkEnableOption "Enable Nvidia proprietary drivers"; + settings.drivers.gpu.nvidia.offload = lib.mkEnableOption "Enable prime offloading"; + settings.drivers.gpu.nvidia.sync = lib.mkEnableOption "Enable prime sync"; + }; - config = lib.mkIf config.settings.drivers.gpu.nvidia.enable { - services.xserver.videoDrivers = [ "nvidia" ]; - hardware.nvidia = { - modesetting.enable = true; - prime = { - nvidiaBusId = "pci:1:0:0"; - amdgpuBusId = "pci:5:0:0"; - }; - prime.offload = lib.mkIf config.settings.drivers.gpu.nvidia.offload { - enable = true; - enableOffloadCmd = true; - }; - prime.sync.enable = lib.mkIf config.settings.drivers.gpu.nvidia.sync true; - nvidiaSettings = true; - }; + config = lib.mkIf config.settings.drivers.gpu.nvidia.enable { + services.xserver.videoDrivers = [ "nvidia" ]; + hardware.nvidia = { + modesetting.enable = true; + prime = { + nvidiaBusId = "pci:1:0:0"; + amdgpuBusId = "pci:5:0:0"; + }; + prime.offload = lib.mkIf config.settings.drivers.gpu.nvidia.offload { + enable = true; + enableOffloadCmd = true; + }; + prime.sync.enable = lib.mkIf config.settings.drivers.gpu.nvidia.sync true; + nvidiaSettings = true; }; -} \ No newline at end of file + }; +} diff --git a/nixosModules/drivers/ipod.nix b/nixosModules/drivers/ipod.nix index 8c98078..e94b67d 100644 --- a/nixosModules/drivers/ipod.nix +++ b/nixosModules/drivers/ipod.nix @@ -11,5 +11,5 @@ libimobiledevice ]; }; - + } diff --git a/nixosModules/drivers/samsung-printer.nix b/nixosModules/drivers/samsung-printer.nix index 849b84c..f8ef95c 100644 --- a/nixosModules/drivers/samsung-printer.nix +++ b/nixosModules/drivers/samsung-printer.nix @@ -5,6 +5,6 @@ }; config = lib.mkIf config.settings.drivers.printer.M2020.enable { - services.printing.drivers = [ pkgs.samsung-unified-linux-driver_1_00_37 ]; + services.printing.drivers = [ pkgs.samsung-unified-linux-driver_1_00_37 ]; }; -} \ No newline at end of file +} diff --git a/nixosModules/programs/docker.nix b/nixosModules/programs/docker.nix index 84275ed..280a3e9 100644 --- a/nixosModules/programs/docker.nix +++ b/nixosModules/programs/docker.nix @@ -6,4 +6,4 @@ config = lib.mkIf config.settings.programs.docker.enable { virtualisation.docker.enable = true; }; -} \ No newline at end of file +} diff --git a/nixosModules/programs/powertop.nix b/nixosModules/programs/powertop.nix index 7231c0e..c863e8c 100644 --- a/nixosModules/programs/powertop.nix +++ b/nixosModules/programs/powertop.nix @@ -6,4 +6,4 @@ config = lib.mkIf config.settings.programs.powertop.enable { powerManagement.powertop.enable = true; }; -} \ No newline at end of file +} diff --git a/nixosModules/programs/tailscale.nix b/nixosModules/programs/tailscale.nix index 11e43f0..cce8355 100644 --- a/nixosModules/programs/tailscale.nix +++ b/nixosModules/programs/tailscale.nix @@ -6,4 +6,4 @@ config = lib.mkIf config.settings.programs.tailscale.enable { services.tailscale.enable = true; }; -} \ No newline at end of file +} diff --git a/nixosModules/services/fstrim.nix b/nixosModules/services/fstrim.nix index 48b84b8..c5df0c3 100644 --- a/nixosModules/services/fstrim.nix +++ b/nixosModules/services/fstrim.nix @@ -6,4 +6,4 @@ config = lib.mkIf config.settings.services.fstrim.enable { services.fstrim.enable = true; }; -} \ No newline at end of file +} diff --git a/nixosModules/services/gnome.nix b/nixosModules/services/gnome.nix index 4140985..91d73c5 100644 --- a/nixosModules/services/gnome.nix +++ b/nixosModules/services/gnome.nix @@ -1,26 +1,26 @@ { config, lib, pkgs, ... }: { - options = { - settings.gnome.enable = lib.mkEnableOption "enable gnome de"; - }; + options = { + settings.gnome.enable = lib.mkEnableOption "enable gnome de"; + }; - #todo make this more configurable - config = lib.mkIf config.settings.gnome.enable { - services.xserver = { - enable = true; - displayManager.gdm.enable = true; - desktopManager.gnome.enable = true; - }; + #todo make this more configurable + config = lib.mkIf config.settings.gnome.enable { + services.xserver = { + enable = true; + displayManager.gdm.enable = true; + desktopManager.gnome.enable = true; + }; - environment.systemPackages = [ pkgs.gnome.gnome-tweaks ]; + environment.systemPackages = [ pkgs.gnome.gnome-tweaks ]; - #enable browser connector for installing extensions - services.gnome.gnome-browser-connector.enable = true; + #enable browser connector for installing extensions + services.gnome.gnome-browser-connector.enable = true; - # Gnome enables pulse by default smh - # make sure to have PIPEWIRE enabled! - hardware.pulseaudio.enable = false; + # Gnome enables pulse by default smh + # make sure to have PIPEWIRE enabled! + hardware.pulseaudio.enable = false; - # remove various bloat - environment.gnome.excludePackages = with pkgs.gnome; [ epiphany gnome-contacts gnome-maps gnome-music gnome-weather totem yelp pkgs.gnome-tour ]; - }; -} \ No newline at end of file + # remove various bloat + environment.gnome.excludePackages = with pkgs.gnome; [ epiphany gnome-contacts gnome-maps gnome-music gnome-weather totem yelp pkgs.gnome-tour ]; + }; +} diff --git a/nixosModules/services/locale.nix b/nixosModules/services/locale.nix index ccec92f..c216ed7 100644 --- a/nixosModules/services/locale.nix +++ b/nixosModules/services/locale.nix @@ -21,4 +21,4 @@ layout = "it"; variant = ""; }; -} \ No newline at end of file +} diff --git a/nixosModules/services/pipewire.nix b/nixosModules/services/pipewire.nix index 690e5d5..a5a9792 100644 --- a/nixosModules/services/pipewire.nix +++ b/nixosModules/services/pipewire.nix @@ -17,4 +17,4 @@ jack.enable = true; }; }; -} \ No newline at end of file +} diff --git a/nixosModules/services/switcheroo.nix b/nixosModules/services/switcheroo.nix index 19cee92..b55b41c 100644 --- a/nixosModules/services/switcheroo.nix +++ b/nixosModules/services/switcheroo.nix @@ -6,4 +6,4 @@ config = lib.mkIf config.settings.services.switcheroo.enable { services.switcherooControl.enable = true; }; -} \ No newline at end of file +} diff --git a/nixosModules/services/tlp.nix b/nixosModules/services/tlp.nix index c59844f..00131b0 100644 --- a/nixosModules/services/tlp.nix +++ b/nixosModules/services/tlp.nix @@ -6,4 +6,4 @@ config = lib.mkIf config.settings.services.tlp.enable { services.tlp.enable = true; }; -} \ No newline at end of file +}