diff --git a/flake.nix b/flake.nix index ba998fb..6688b8d 100644 --- a/flake.nix +++ b/flake.nix @@ -52,67 +52,64 @@ musnix.url = "github:musnix/musnix"; }; - outputs = - { - self, - nixpkgs-stable, - nixpkgs, - nixpkgs-master, - nur, - home-manager, - ... - }@inputs: - let - system = "x86_64-linux"; - pkgs = import nixpkgs { - inherit system; - config = { - allowUnfree = true; - }; - overlays = [ - overlay-stable - overlay-master - nur.overlays.default - ]; - }; - genericModules = [ - { - nix.registry.nixos.flake = inputs.self; - environment.etc."nix/inputs/nixpkgs".source = nixpkgs.outPath; - nix.nixPath = [ "nixpkgs=${nixpkgs.outPath}" ]; - } + outputs = { + self, + nixpkgs-stable, + nixpkgs, + nixpkgs-master, + nur, + home-manager, + ... + } @ inputs: let + system = "x86_64-linux"; + pkgs = import nixpkgs { + inherit system; + config = {allowUnfree = true;}; + overlays = [ + overlay-stable + overlay-master + nur.overlays.default ]; - genericHomeModule = [ - { - nix.registry.nixos.flake = inputs.self; - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - } - ]; - # Overlay definitions - # nixpkgs-unstable - overlay-stable = final: prev: { - stable = import nixpkgs-stable { - inherit system; - config.allowUnfree = true; - }; - }; - # nixpkgs-master - overlay-master = final: prev: { - master = import nixpkgs-master { - inherit system; - config.allowUnfree = true; - }; - }; - in - { - nixosConfigurations.gabbielaptop = nixpkgs.lib.nixosSystem { + }; + genericModules = [ + { + nix.registry.nixos.flake = inputs.self; + environment.etc."nix/inputs/nixpkgs".source = nixpkgs.outPath; + nix.nixPath = ["nixpkgs=${nixpkgs.outPath}"]; + } + ]; + genericHomeModule = [ + { + nix.registry.nixos.flake = inputs.self; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + } + ]; + # Overlay definitions + # nixpkgs-unstable + overlay-stable = final: prev: { + stable = import nixpkgs-stable { inherit system; - inherit pkgs; - specialArgs = { - inherit inputs; - }; - modules = genericModules ++ [ + config.allowUnfree = true; + }; + }; + # nixpkgs-master + overlay-master = final: prev: { + master = import nixpkgs-master { + inherit system; + config.allowUnfree = true; + }; + }; + in { + nixosConfigurations.gabbielaptop = nixpkgs.lib.nixosSystem { + inherit system; + inherit pkgs; + specialArgs = { + inherit inputs; + }; + modules = + genericModules + ++ [ # Import nixos modules here ./hosts/gabbielaptop/configuration.nix ./modules/nh.nix @@ -122,35 +119,39 @@ inputs.aagl.nixosModules.default inputs.lanzaboote.nixosModules.lanzaboote inputs.musnix.nixosModules.musnix - { nix.settings = inputs.aagl.nixConfig; } # Setup cachix for aagl projects + # inputs.stylix.nixosModules.stylix + # inputs.home-manager.nixosModules.home-manager + # inputs.nixvim.homeManagerModules.nixvim + {nix.settings = inputs.aagl.nixConfig;} # Setup cachix for aagl projects + # { home-manager.users.blue = ./home-manager/home.nix; } ]; - }; - nixosConfigurations.biggerpi = nixpkgs.lib.nixosSystem { - inherit system; - inherit pkgs; - modules = genericModules ++ [ + }; + nixosConfigurations.biggerpi = nixpkgs.lib.nixosSystem { + inherit system; + inherit pkgs; + modules = + genericModules + ++ [ inputs.disko.nixosModules.disko inputs.satisfactory-server.nixosModules.satisfactory ./hosts/biggerpi/configuration.nix ./modules/satisfactory-server.nix ]; - }; - - # Standalone home-manager config - homeConfigurations.blue = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - extraSpecialArgs = { - inherit inputs; - }; - # Import home-manager modules here - modules = [ - ./home-manager/home.nix - inputs.nvf.homeManagerModules.default - inputs.stylix.homeModules.stylix - inputs.nix-flatpak.homeManagerModules.nix-flatpak - ]; - }; - # set formatter, using nixfmt-tree here - formatter.${system} = nixpkgs.legacyPackages.${system}.nixfmt-tree; }; + + # Standalone home-manager config + homeConfigurations.blue = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { + inherit inputs; + }; + # Import home-manager modules here + modules = [ + ./home-manager/home.nix + inputs.nvf.homeManagerModules.default + inputs.stylix.homeModules.stylix + inputs.nix-flatpak.homeManagerModules.nix-flatpak + ]; + }; + }; } diff --git a/home-manager/direnv.nix b/home-manager/direnv.nix index 0f7a873..7009e89 100644 --- a/home-manager/direnv.nix +++ b/home-manager/direnv.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{config, ...}: { programs.direnv = { enable = true; enableZshIntegration = true; diff --git a/home-manager/eza.nix b/home-manager/eza.nix index c244b8c..92ac4e2 100644 --- a/home-manager/eza.nix +++ b/home-manager/eza.nix @@ -1,4 +1,4 @@ -{ ... }: +{ pkgs, ... }: { programs.eza = { enable = true; diff --git a/home-manager/firefox.nix b/home-manager/firefox.nix index 3b9d0e9..72aae8f 100644 --- a/home-manager/firefox.nix +++ b/home-manager/firefox.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }: -{ +{pkgs, ...}: { programs.floorp = { enable = true; profiles.blue = { diff --git a/home-manager/home.nix b/home-manager/home.nix index 580f153..3b03b9a 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -2,8 +2,7 @@ pkgs, lib, ... -}: -{ +}: { home.username = "blue"; home.homeDirectory = "/home/blue"; @@ -22,15 +21,49 @@ ./firefox.nix ./zellij.nix ./obs-studio.nix - ./packages.nix ]; home.stateVersion = "24.05"; services.gnome-keyring.enable = true; # used for nextcloud-client + # General use home packages that dont require a separate module + home.packages = with pkgs; [ + grimblast # Screenshot tool + powerline-fonts # Fonts + nix-output-monitor # Provides a dependency graph for nix builds + bitwarden-desktop # Integrates with bitwarden extension + wofi # Wayland app launcher + nvtopPackages.amd # GPU monitor, more detailed than BTOP-rocm + signal-desktop # Signal messenger client + nautilus # File manager (move to option maybe) + element-desktop # Matrix client + stable.jetbrains.idea-community # IDE + reaper # Paid DAW, using free trial + telegram-desktop # Telegram messenger client + pavucontrol # Useful audio control GUI + stable.prismlauncher # Minecraft launcher + virt-manager # QEMU manager + bat # cat but with syntax highlighting + bc # terminal calculator + + # Audio Plugins + calf + zam-plugins + lsp-plugins + + ardour # DAW + gimp3 # GNU Image Manipulation Program, pretty self explanatory + + networkmanagerapplet # Tray icon for managing networking + blueman # Tray icon for managing bluetooth + ]; + services.flatpak.packages = [ + "io.mrarm.mcpelauncher" # Minecraft bedrock edition launcher + ]; + home.sessionVariables = { - DEFAULT_BROWSER = "${lib.getExe pkgs.floorp}"; + DEFAULT_BROWSER = "${lib.getExe pkgs.firefox}"; # Allow XWayland apps to not be weird after turning off xwayland scaling in hyprland.conf GDK_SCALE = 1; XCURSOR_SIZE = 24; diff --git a/home-manager/hyprland.nix b/home-manager/hyprland.nix index 0baa2da..ae0d311 100644 --- a/home-manager/hyprland.nix +++ b/home-manager/hyprland.nix @@ -1,10 +1,9 @@ -{ ... }: -{ +{...}: { # Enable Hyprland compositor wayland.windowManager.hyprland = { enable = true; xwayland.enable = true; - systemd.variables = [ "--all" ]; + systemd.variables = ["--all"]; settings = { misc = { enable_anr_dialog = false; diff --git a/home-manager/hyprlock.nix b/home-manager/hyprlock.nix index eb282cc..f25c29a 100644 --- a/home-manager/hyprlock.nix +++ b/home-manager/hyprlock.nix @@ -1,5 +1,4 @@ -{ pkgs, lib, ... }: -{ +{pkgs, lib, ... }: { programs.hyprlock = { enable = true; settings = { diff --git a/home-manager/nextcloud.nix b/home-manager/nextcloud.nix index 19201c8..b900f48 100644 --- a/home-manager/nextcloud.nix +++ b/home-manager/nextcloud.nix @@ -1,4 +1,4 @@ -{...}: +{ config, pkgs, ... }: { services.nextcloud-client = { enable = true; diff --git a/home-manager/nvf.nix b/home-manager/nvf.nix index 061e535..31d6410 100644 --- a/home-manager/nvf.nix +++ b/home-manager/nvf.nix @@ -2,8 +2,7 @@ config, pkgs, ... -}: -{ +}: { programs.nvf = { enable = true; settings = { diff --git a/home-manager/obs-studio.nix b/home-manager/obs-studio.nix index 47177e6..5ffba50 100644 --- a/home-manager/obs-studio.nix +++ b/home-manager/obs-studio.nix @@ -1,9 +1,8 @@ -{ pkgs, ... }: -{ - programs.obs-studio = { - enable = true; - plugins = with pkgs.obs-studio-plugins; [ - obs-pipewire-audio-capture - ]; - }; +{pkgs, ...}: { + programs.obs-studio = { + enable = true; + plugins = with pkgs.obs-studio-plugins; [ + obs-pipewire-audio-capture + ]; + }; } diff --git a/home-manager/packages.nix b/home-manager/packages.nix deleted file mode 100644 index 17bc696..0000000 --- a/home-manager/packages.nix +++ /dev/null @@ -1,51 +0,0 @@ -{pkgs, ...}:{ - # packages that i dont need to use a module for - home.packages = with pkgs; [ - grimblast # Screenshot tool - powerline-fonts # Fonts - nix-output-monitor # Provides a dependency graph for nix builds - bitwarden-desktop # Integrates with bitwarden extension - wofi # Wayland app launcher - nvtopPackages.amd # GPU monitor, more detailed than BTOP-rocm - signal-desktop # Signal messenger client - nautilus # File manager (move to option maybe) - element-desktop # Matrix client - stable.jetbrains.idea-community # IDE - telegram-desktop # Telegram messenger client - pavucontrol # Useful audio control GUI - stable.prismlauncher # Minecraft launcher - virt-manager # QEMU manager - bat # cat but with syntax highlighting - bc # terminal calculator - wget # download files - vesktop # discord client - thunderbird # email client - fastfetch # silly specs display - ungoogled-chromium # useful when a website breaks in firefox - qbittorrent # torrent client - zip # lets you zip files - unzip # lets you unzip files - vlc # media player - vial # gui for qmk stuff - qmk # qmk configurator - wl-clipboard # command-line copy/paste - lutris # game launcher - tenacity # small DAW - davinci-resolve # video editor - libreoffice # office suite - - # Audio Plugins - calf - zam-plugins - lsp-plugins # not language servers, its an audio thing trust me - - ardour # DAW - gimp3 # GNU Image Manipulation Program, pretty self explanatory - - networkmanagerapplet # Tray icon for managing networking - blueman # Tray icon for managing bluetooth - ]; - services.flatpak.packages = [ - "io.mrarm.mcpelauncher" # Minecraft bedrock edition launcher - ]; -} diff --git a/home-manager/stylix.nix b/home-manager/stylix.nix index e78fee9..7badabc 100644 --- a/home-manager/stylix.nix +++ b/home-manager/stylix.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }: -{ +{pkgs, ...}: { stylix = { enable = true; base16Scheme = "${pkgs.base16-schemes}/share/themes/heetch.yaml"; @@ -32,7 +31,7 @@ }; polarity = "dark"; targets = { - floorp.profileNames = [ "blue" ]; + floorp.profileNames = ["blue"]; }; }; } diff --git a/home-manager/waybar.nix b/home-manager/waybar.nix index ffb5f86..4024c9b 100644 --- a/home-manager/waybar.nix +++ b/home-manager/waybar.nix @@ -1,5 +1,4 @@ -{ config, ... }: -{ +{config, ...}: { programs.waybar = { enable = true; systemd.enable = true; # using these instead of exec-once beacuse SOME packages (swaync) dont let you disable them @@ -8,7 +7,7 @@ layer = "top"; position = "top"; height = 30; - modules-left = [ "hyprland/workspaces" ]; + modules-left = ["hyprland/workspaces"]; modules-center = [ "clock" "custom/swaync" diff --git a/home-manager/zellij.nix b/home-manager/zellij.nix index 54978c2..8130c6a 100644 --- a/home-manager/zellij.nix +++ b/home-manager/zellij.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { programs.zellij = { enable = true; enableZshIntegration = true; diff --git a/hosts/gabbielaptop/configuration.nix b/hosts/gabbielaptop/configuration.nix index 35e18ff..d348d8c 100644 --- a/hosts/gabbielaptop/configuration.nix +++ b/hosts/gabbielaptop/configuration.nix @@ -3,8 +3,7 @@ pkgs, config, ... -}: -{ +}: { imports = [ ./hardware-configuration.nix ]; @@ -27,9 +26,9 @@ ]; }; - boot.initrd.kernelModules = [ "amdgpu" ]; - boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ]; - boot.kernelModules = [ "v4l2loopback" ]; + boot.initrd.kernelModules = ["amdgpu"]; + boot.extraModulePackages = [config.boot.kernelPackages.v4l2loopback]; + boot.kernelModules = ["v4l2loopback"]; boot.kernelPackages = pkgs.linuxPackages_latest; networking.hostName = "gabbielaptop"; # Define your hostname. @@ -37,7 +36,7 @@ hardware.graphics = { enable = true; enable32Bit = true; - extraPackages = [ pkgs.stable.rocmPackages.clr.icd ]; # Needed for davinci-resolve to utilize the gpu, otherwise it refuses to launch + extraPackages = [pkgs.stable.rocmPackages.clr.icd]; # Needed for davinci-resolve to utilize the gpu, otherwise it refuses to launch }; # Enable networking networking.networkmanager.enable = true; @@ -73,10 +72,7 @@ }; programs.regreet = { enable = true; - cageArgs = [ - "-m" - "last" - ]; + cageArgs = ["-m" "last"]; }; # Enable the Hyprland WM functionality for NixOS (xdg portals etc.) diff --git a/modules/packages.nix b/modules/packages.nix index 80f794f..9a7d90f 100644 --- a/modules/packages.nix +++ b/modules/packages.nix @@ -1,19 +1,43 @@ { + config, + lib, pkgs, ... -}: -{ +}: { # All system packages required from nixos-unstable by default environment.systemPackages = with pkgs; [ + neovim # nano is installed by default + wget + vesktop + thunderbird + kdePackages.bluedevil + fastfetch + ungoogled-chromium + qbittorrent + p7zip + unrar wineWowPackages.stable wine - (wine.override { wineBuild = "wine64"; }) + (wine.override {wineBuild = "wine64";}) wine64 wineWowPackages.staging winetricks wineWowPackages.waylandFull + vlc + protonmail-bridge pciutils + vial + qmk dmidecode + wl-clipboard + lutris + tree + tenacity + home-manager + davinci-resolve + v4l-utils + libreoffice + nixfmt-rfc-style nixd qemu ];