diff --git a/flake.nix b/flake.nix index 6688b8d..ba998fb 100644 --- a/flake.nix +++ b/flake.nix @@ -52,64 +52,67 @@ 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 + 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}" ]; + } ]; - }; - 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 { + 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 { 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 { - inherit system; - inherit pkgs; - specialArgs = { - inherit inputs; - }; - modules = - genericModules - ++ [ + inherit pkgs; + specialArgs = { + inherit inputs; + }; + modules = genericModules ++ [ # Import nixos modules here ./hosts/gabbielaptop/configuration.nix ./modules/nh.nix @@ -119,39 +122,35 @@ inputs.aagl.nixosModules.default inputs.lanzaboote.nixosModules.lanzaboote inputs.musnix.nixosModules.musnix - # 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; } + { nix.settings = inputs.aagl.nixConfig; } # Setup cachix for aagl projects ]; - }; - 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 - ]; + + # 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; }; - }; } diff --git a/home-manager/direnv.nix b/home-manager/direnv.nix index 7009e89..0f7a873 100644 --- a/home-manager/direnv.nix +++ b/home-manager/direnv.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{ ... }: +{ programs.direnv = { enable = true; enableZshIntegration = true; diff --git a/home-manager/eza.nix b/home-manager/eza.nix index 92ac4e2..c244b8c 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 72aae8f..3b9d0e9 100644 --- a/home-manager/firefox.nix +++ b/home-manager/firefox.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.floorp = { enable = true; profiles.blue = { diff --git a/home-manager/home.nix b/home-manager/home.nix index 3b03b9a..580f153 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -2,7 +2,8 @@ pkgs, lib, ... -}: { +}: +{ home.username = "blue"; home.homeDirectory = "/home/blue"; @@ -21,49 +22,15 @@ ./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.firefox}"; + DEFAULT_BROWSER = "${lib.getExe pkgs.floorp}"; # 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 ae0d311..0baa2da 100644 --- a/home-manager/hyprland.nix +++ b/home-manager/hyprland.nix @@ -1,9 +1,10 @@ -{...}: { +{ ... }: +{ # 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 f25c29a..eb282cc 100644 --- a/home-manager/hyprlock.nix +++ b/home-manager/hyprlock.nix @@ -1,4 +1,5 @@ -{pkgs, lib, ... }: { +{ pkgs, lib, ... }: +{ programs.hyprlock = { enable = true; settings = { diff --git a/home-manager/nextcloud.nix b/home-manager/nextcloud.nix index b900f48..19201c8 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 31d6410..061e535 100644 --- a/home-manager/nvf.nix +++ b/home-manager/nvf.nix @@ -2,7 +2,8 @@ config, pkgs, ... -}: { +}: +{ programs.nvf = { enable = true; settings = { diff --git a/home-manager/obs-studio.nix b/home-manager/obs-studio.nix index 5ffba50..47177e6 100644 --- a/home-manager/obs-studio.nix +++ b/home-manager/obs-studio.nix @@ -1,8 +1,9 @@ -{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 new file mode 100644 index 0000000..17bc696 --- /dev/null +++ b/home-manager/packages.nix @@ -0,0 +1,51 @@ +{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 7badabc..e78fee9 100644 --- a/home-manager/stylix.nix +++ b/home-manager/stylix.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ stylix = { enable = true; base16Scheme = "${pkgs.base16-schemes}/share/themes/heetch.yaml"; @@ -31,7 +32,7 @@ }; polarity = "dark"; targets = { - floorp.profileNames = ["blue"]; + floorp.profileNames = [ "blue" ]; }; }; } diff --git a/home-manager/waybar.nix b/home-manager/waybar.nix index 4024c9b..ffb5f86 100644 --- a/home-manager/waybar.nix +++ b/home-manager/waybar.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{ config, ... }: +{ programs.waybar = { enable = true; systemd.enable = true; # using these instead of exec-once beacuse SOME packages (swaync) dont let you disable them @@ -7,7 +8,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 8130c6a..54978c2 100644 --- a/home-manager/zellij.nix +++ b/home-manager/zellij.nix @@ -1,4 +1,5 @@ -{...}: { +{ ... }: +{ programs.zellij = { enable = true; enableZshIntegration = true; diff --git a/hosts/gabbielaptop/configuration.nix b/hosts/gabbielaptop/configuration.nix index d348d8c..35e18ff 100644 --- a/hosts/gabbielaptop/configuration.nix +++ b/hosts/gabbielaptop/configuration.nix @@ -3,7 +3,8 @@ pkgs, config, ... -}: { +}: +{ imports = [ ./hardware-configuration.nix ]; @@ -26,9 +27,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. @@ -36,7 +37,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; @@ -72,7 +73,10 @@ }; 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 9a7d90f..80f794f 100644 --- a/modules/packages.nix +++ b/modules/packages.nix @@ -1,43 +1,19 @@ { - 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 ];