From 3d213c876936a1df08b87a1f3bc7f16ae4b170f2 Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Thu, 24 Jul 2025 11:06:08 -0500 Subject: [PATCH] nixfmt --- checks/pre-commit-hooks/default.nix | 7 +- flake.nix | 319 ++++++------- .../mattjallen@macbook-pro/default.nix | 7 +- .../matt@macbook-pro-nixos/default.nix | 5 +- homes/aarch64-linux/matt@pi4/default.nix | 64 +-- homes/aarch64-linux/matt@pi5/default.nix | 8 +- homes/aarch64-linux/root@pi4/default.nix | 2 +- homes/x86_64-linux/admin@nuc/default.nix | 2 +- homes/x86_64-linux/deck@steamdeck/default.nix | 18 +- homes/x86_64-linux/root@nuc/default.nix | 2 +- modules/home/desktop/gnome/default.nix | 9 +- modules/home/desktop/gnome/options.nix | 2 +- modules/home/desktop/hyprland/default.nix | 37 +- modules/home/desktop/hyprland/options.nix | 56 ++- modules/home/desktop/hyprland/packages.nix | 9 +- .../hyprland/services/hypridle/default.nix | 7 +- .../hyprland/services/hyprlock/default.nix | 77 ++-- .../hyprland/services/hyprpaper/default.nix | 9 +- modules/home/desktop/hyprland/theme.nix | 17 +- modules/home/desktop/hyprland/variables.nix | 56 +-- modules/home/desktop/theme/nord.nix | 2 +- modules/home/home/default.nix | 7 +- modules/home/programs/btop/options.nix | 2 +- modules/home/programs/code/default.nix | 96 ++-- modules/home/programs/git/default.nix | 2 +- modules/home/programs/kitty/default.nix | 32 +- modules/home/programs/kitty/options.nix | 2 +- modules/home/programs/librewolf/default.nix | 5 +- modules/home/programs/mako/options.nix | 2 +- modules/home/programs/nwg-dock/default.nix | 9 +- modules/home/programs/nwg-dock/options.nix | 2 +- modules/home/programs/nwg-drawer/default.nix | 71 +-- modules/home/programs/nwg-drawer/options.nix | 2 +- modules/home/programs/nwg-panel/default.nix | 20 +- modules/home/programs/nwg-panel/options.nix | 42 +- modules/home/programs/onlyoffice/default.nix | 2 +- modules/home/programs/waybar/default.nix | 418 +++++++++--------- modules/home/programs/waybar/options.nix | 4 +- modules/home/programs/waybar/scripts/hass.nix | 8 +- .../home/programs/waybar/scripts/weather.nix | 7 +- modules/home/programs/wlogout/default.nix | 4 +- modules/home/programs/wlogout/options.nix | 2 +- modules/home/programs/wofi/options.nix | 2 +- modules/home/programs/zsh/default.nix | 2 +- modules/home/sops/default.nix | 9 +- modules/home/sops/options.nix | 2 +- modules/home/user/default.nix | 4 +- modules/nixos/actual/default.nix | 14 +- modules/nixos/amd/default.nix | 2 +- modules/nixos/appimage/default.nix | 2 +- modules/nixos/arrs/default.nix | 28 +- modules/nixos/boot/default.nix | 11 +- modules/nixos/boot/lanzaboote/default.nix | 9 +- modules/nixos/boot/lanzaboote/options.nix | 2 +- modules/nixos/boot/plymouth/default.nix | 2 +- modules/nixos/crowdsec/default.nix | 63 +-- modules/nixos/desktop/cosmic/default.nix | 7 +- modules/nixos/desktop/cosmic/options.nix | 2 +- modules/nixos/desktop/gnome/default.nix | 12 +- modules/nixos/desktop/hyprland/default.nix | 23 +- modules/nixos/desktop/hyprland/settings.nix | 10 +- modules/nixos/disko/aarch64-linux/default.nix | 7 +- modules/nixos/disko/options.nix | 2 +- modules/nixos/disko/x86_64-linux/default.nix | 8 +- modules/nixos/fonts/default.nix | 15 +- modules/nixos/gaming/default.nix | 11 +- modules/nixos/gitea/default.nix | 18 +- modules/nixos/hardware/btrfs/default.nix | 2 +- modules/nixos/hardware/default.nix | 2 +- modules/nixos/home/default.nix | 27 +- modules/nixos/homeassistant/default.nix | 235 +++++----- modules/nixos/homeassistant/options.nix | 2 +- modules/nixos/immich/default.nix | 9 +- modules/nixos/immich/options.nix | 2 +- modules/nixos/jellyfin/default.nix | 9 +- modules/nixos/jellyfin/options.nix | 2 +- modules/nixos/jellyseerr/default.nix | 9 +- modules/nixos/jellyseerr/options.nix | 2 +- modules/nixos/lubelogger/default.nix | 13 +- modules/nixos/lubelogger/options.nix | 2 +- modules/nixos/network/default.nix | 12 +- modules/nixos/nextcloud/default.nix | 27 +- modules/nixos/nextcloud/options.nix | 2 +- modules/nixos/nix/default.nix | 2 +- modules/nixos/nvidia/default.nix | 16 +- modules/nixos/ollama/default.nix | 16 +- modules/nixos/ollama/options.nix | 2 +- modules/nixos/paperless/default.nix | 9 +- modules/nixos/paperless/options.nix | 2 +- modules/nixos/programs/default.nix | 2 +- modules/nixos/security/default.nix | 2 +- modules/nixos/services/default.nix | 4 +- modules/nixos/shell/default.nix | 2 +- modules/nixos/traefik/default.nix | 95 +++- modules/nixos/traefik/options.nix | 2 +- modules/nixos/user/default.nix | 4 +- modules/nixos/wyoming/default.nix | 11 +- modules/nixos/wyoming/options.nix | 2 +- overlays/unstable/default.nix | 2 +- overlays/waybar/default.nix | 2 +- packages/ha-anycubic/default.nix | 9 +- packages/ha-bambulab/default.nix | 9 +- packages/ha-gehome/default.nix | 10 +- packages/ha-icloud3/default.nix | 9 +- packages/ha-mail-and-packages/default.nix | 7 +- packages/ha-nanokvm/default.nix | 8 +- packages/ha-overseerr/default.nix | 8 +- packages/ha-wyzeapi/default.nix | 8 +- packages/homeassistant-api/default.nix | 5 +- packages/magicattr/default.nix | 9 +- packages/pyoverseerr/default.nix | 2 +- packages/python-nanokvm/default.nix | 4 +- packages/wyzeapy/default.nix | 2 +- .../aarch64-darwin/macbook-pro/default.nix | 7 +- .../aarch64-darwin/macbook-pro/homebrew.nix | 2 +- systems/aarch64-darwin/macbook-pro/nix.nix | 2 +- .../aarch64-darwin/macbook-pro/programs.nix | 4 +- .../aarch64-linux/macbook-pro-nixos/boot.nix | 2 +- .../macbook-pro-nixos/default.nix | 3 +- .../hardware-configuration.nix | 115 +++-- .../macbook-pro-nixos/hyprland-settings.nix | 6 +- .../macbook-pro-nixos/networking.nix | 4 +- .../macbook-pro-nixos/services.nix | 14 +- systems/aarch64-linux/pi4/boot.nix | 32 +- systems/aarch64-linux/pi4/default.nix | 10 +- systems/aarch64-linux/pi4/networking.nix | 2 +- systems/aarch64-linux/pi4/sops.nix | 8 +- systems/aarch64-linux/pi5/boot.nix | 9 +- systems/aarch64-linux/pi5/default.nix | 28 +- systems/aarch64-linux/pi5/networking.nix | 2 +- systems/x86_64-linux/desktop/boot.nix | 4 +- .../x86_64-linux/desktop/configuration.nix | 2 +- systems/x86_64-linux/desktop/default.nix | 38 +- systems/x86_64-linux/desktop/filesystems.nix | 6 +- .../desktop/hardware-configuration.nix | 2 +- systems/x86_64-linux/desktop/networking.nix | 2 +- systems/x86_64-linux/desktop/nix.nix | 9 +- .../desktop/services/btrfs/default.nix | 2 +- .../desktop/services/keyd/default.nix | 8 +- .../desktop/services/ratbagd/default.nix | 2 +- .../desktop/services/restic/default.nix | 2 +- systems/x86_64-linux/desktop/sops.nix | 2 +- .../specialisations/hyprland/default.nix | 2 +- .../specialisations/hyprland/home/default.nix | 6 +- systems/x86_64-linux/desktop/users.nix | 11 +- systems/x86_64-linux/desktop/wifi-fixer.nix | 6 +- systems/x86_64-linux/nas/apps.nix | 10 +- systems/x86_64-linux/nas/apps/options.nix | 71 +-- systems/x86_64-linux/nas/default.nix | 8 +- systems/x86_64-linux/nas/grafana.nix | 34 +- systems/x86_64-linux/nas/nix-serve.nix | 39 +- systems/x86_64-linux/nas/nixpkgs.nix | 5 +- systems/x86_64-linux/nas/services.nix | 18 +- systems/x86_64-linux/nas/settings.nix | 2 +- systems/x86_64-linux/nas/sops.nix | 12 +- systems/x86_64-linux/nas/users.nix | 9 +- systems/x86_64-linux/nuc/sops.nix | 2 +- systems/x86_64-linux/nuc/users.nix | 2 +- systems/x86_64-linux/steamdeck/boot.nix | 8 +- .../x86_64-linux/steamdeck/configuration.nix | 16 +- systems/x86_64-linux/steamdeck/default.nix | 43 +- systems/x86_64-linux/steamdeck/jovian.nix | 2 +- systems/x86_64-linux/steamdeck/sops.nix | 21 +- treefmt.nix | 35 +- 164 files changed, 1777 insertions(+), 1257 deletions(-) diff --git a/checks/pre-commit-hooks/default.nix b/checks/pre-commit-hooks/default.nix index fa644a2..94f3878 100644 --- a/checks/pre-commit-hooks/default.nix +++ b/checks/pre-commit-hooks/default.nix @@ -1,6 +1,7 @@ { inputs, pkgs, + lib, ... }: let @@ -11,9 +12,9 @@ pre-commit-hooks-nix.lib.${pkgs.system}.run { hooks = { pre-commit-hook-ensure-sops.enable = true; treefmt = { - enable = true; - settings.fail-on-change = false; + enable = lib.mkForce true; + settings.fail-on-change = lib.mkForce false; packageOverrides.treefmt = inputs.treefmt-nix.lib.mkWrapper pkgs ../../treefmt.nix; }; }; -} \ No newline at end of file +} diff --git a/flake.nix b/flake.nix index ce2b341..dec2016 100644 --- a/flake.nix +++ b/flake.nix @@ -6,8 +6,8 @@ # The name "snowfall-lib" is required due to how Snowfall Lib processes your # flake's inputs. snowfall-lib = { - url = "github:snowfallorg/lib"; - inputs.nixpkgs.follows = "nixpkgs"; + url = "github:snowfallorg/lib"; + inputs.nixpkgs.follows = "nixpkgs"; }; chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; @@ -18,7 +18,7 @@ }; impermanence.url = "github:nix-community/impermanence"; - + lanzaboote.url = "github:nix-community/lanzaboote/v0.4.2"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; @@ -84,179 +84,180 @@ }; # We will handle this in the next section. - outputs = inputs: - inputs.snowfall-lib.mkFlake { - # You must provide our flake inputs to Snowfall Lib. - inherit inputs; + outputs = + inputs: + inputs.snowfall-lib.mkFlake { + # You must provide our flake inputs to Snowfall Lib. + inherit inputs; - # The `src` must be the root of the flake. See configuration - # in the next section for information on how you can move your - # Nix files to a separate directory. - src = ./.; + # The `src` must be the root of the flake. See configuration + # in the next section for information on how you can move your + # Nix files to a separate directory. + src = ./.; - # Add a module to a specific host. - systems = { - # common modules - modules.nixos = with inputs; [ - authentik-nix.nixosModules.default - chaotic.nixosModules.default - crowdsec.nixosModules.crowdsec - crowdsec.nixosModules.crowdsec-firewall-bouncer - disko.nixosModules.disko - impermanence.nixosModules.impermanence - lanzaboote.nixosModules.lanzaboote - sops-nix.nixosModules.sops - home-manager.nixosModules.home-manager - ]; - - # common darwin modules - modules.darwin = with inputs; [ - nix-homebrew.darwinModules.nix-homebrew - home-manager.darwinModules.home-manager - ]; - - # Host config - hosts = { - # ###################################################### - # Desktop # - # ###################################################### - desktop = { - modules = with inputs; [ - nixos-hardware.nixosModules.common-cpu-amd - nixos-hardware.nixosModules.common-cpu-amd-pstate - nixos-hardware.nixosModules.common-cpu-amd-zenpower - nixos-hardware.nixosModules.common-gpu-amd - nixos-hardware.nixosModules.common-hidpi - nixos-hardware.nixosModules.common-pc - ]; - }; - - # ###################################################### - # NAS # - # ###################################################### - nas = { - modules = with inputs; [ - nixos-hardware.nixosModules.common-pc - nixos-hardware.nixosModules.common-cpu-amd - nixos-hardware.nixosModules.common-cpu-amd-pstate - nixos-hardware.nixosModules.common-cpu-amd-zenpower - nixos-hardware.nixosModules.common-hidpi - home-manager.nixosModules.home-manager - ]; - # overlays = with inputs; [ crowdsec.overlays.default ]; - }; - - # ###################################################### - # Steamdeck # - # ###################################################### - steamdeck = { - modules = with inputs; [ - disko.nixosModules.disko - jovian.nixosModules.jovian - nixos-hardware.nixosModules.common-cpu-amd - nixos-hardware.nixosModules.common-cpu-amd-pstate - nixos-hardware.nixosModules.common-cpu-amd-zenpower - nixos-hardware.nixosModules.common-gpu-amd - nixos-hardware.nixosModules.common-hidpi - nixos-hardware.nixosModules.common-pc - ]; - }; - - # ###################################################### - # NUC # - # ###################################################### - nuc = { - modules = with inputs; [ - disko.nixosModules.disko - nixos-hardware.nixosModules.common-cpu-amd - nixos-hardware.nixosModules.common-cpu-amd-pstate - nixos-hardware.nixosModules.common-cpu-amd-zenpower - nixos-hardware.nixosModules.common-gpu-amd - nixos-hardware.nixosModules.common-hidpi - nixos-hardware.nixosModules.common-pc - ]; - }; - - # ###################################################### - # Pi4 # - # ###################################################### - pi4 = { - modules = with inputs; [ - disko.nixosModules.disko - nixos-raspberrypi.nixosModules.raspberry-pi-4.base - nixos-raspberrypi.nixosModules.raspberry-pi-4.display-vc4 - nixos-raspberrypi.lib.inject-overlays - ]; - }; - - # ###################################################### - # Pi5 # - # ###################################################### - pi5 = { - modules = with inputs; [ - disko.nixosModules.disko - nixos-raspberrypi.nixosModules.raspberry-pi-5.base - nixos-raspberrypi.nixosModules.raspberry-pi-5.display-vc4 - nixos-raspberrypi.nixosModules.raspberry-pi-5.bluetooth - nixos-raspberrypi.lib.inject-overlays - ]; - }; - - # ###################################################### - # Mac # - # ###################################################### - macbook-pro-nixos = { - modules = with inputs; [ - nixos-apple-silicon.nixosModules.default - ]; - }; - }; - - overlays = with inputs; [ nix-vscode-extensions.overlays.default ]; - - homes = { - modules = with inputs; [ - nix-index-database.homeModules.nix-index - sops-nix.homeManagerModules.sops + # Add a module to a specific host. + systems = { + # common modules + modules.nixos = with inputs; [ + authentik-nix.nixosModules.default + chaotic.nixosModules.default + crowdsec.nixosModules.crowdsec + crowdsec.nixosModules.crowdsec-firewall-bouncer + disko.nixosModules.disko + impermanence.nixosModules.impermanence + lanzaboote.nixosModules.lanzaboote + sops-nix.nixosModules.sops + home-manager.nixosModules.home-manager ]; - overlays = with inputs; [ - nix-vscode-extensions.overlays.default + # common darwin modules + modules.darwin = with inputs; [ + nix-homebrew.darwinModules.nix-homebrew + home-manager.darwinModules.home-manager ]; - users = { - # "matt@desktop" = { - # modules = with inputs; [ - # sops-nix.homeManagerModules.sops - # ]; - # }; - "deck@steamdeck" = { + # Host config + hosts = { + # ###################################################### + # Desktop # + # ###################################################### + desktop = { modules = with inputs; [ - steam-rom-manager.homeManagerModules.default + nixos-hardware.nixosModules.common-cpu-amd + nixos-hardware.nixosModules.common-cpu-amd-pstate + nixos-hardware.nixosModules.common-cpu-amd-zenpower + nixos-hardware.nixosModules.common-gpu-amd + nixos-hardware.nixosModules.common-hidpi + nixos-hardware.nixosModules.common-pc + ]; + }; + + # ###################################################### + # NAS # + # ###################################################### + nas = { + modules = with inputs; [ + nixos-hardware.nixosModules.common-pc + nixos-hardware.nixosModules.common-cpu-amd + nixos-hardware.nixosModules.common-cpu-amd-pstate + nixos-hardware.nixosModules.common-cpu-amd-zenpower + nixos-hardware.nixosModules.common-hidpi + home-manager.nixosModules.home-manager + ]; + # overlays = with inputs; [ crowdsec.overlays.default ]; + }; + + # ###################################################### + # Steamdeck # + # ###################################################### + steamdeck = { + modules = with inputs; [ + disko.nixosModules.disko + jovian.nixosModules.jovian + nixos-hardware.nixosModules.common-cpu-amd + nixos-hardware.nixosModules.common-cpu-amd-pstate + nixos-hardware.nixosModules.common-cpu-amd-zenpower + nixos-hardware.nixosModules.common-gpu-amd + nixos-hardware.nixosModules.common-hidpi + nixos-hardware.nixosModules.common-pc + ]; + }; + + # ###################################################### + # NUC # + # ###################################################### + nuc = { + modules = with inputs; [ + disko.nixosModules.disko + nixos-hardware.nixosModules.common-cpu-amd + nixos-hardware.nixosModules.common-cpu-amd-pstate + nixos-hardware.nixosModules.common-cpu-amd-zenpower + nixos-hardware.nixosModules.common-gpu-amd + nixos-hardware.nixosModules.common-hidpi + nixos-hardware.nixosModules.common-pc + ]; + }; + + # ###################################################### + # Pi4 # + # ###################################################### + pi4 = { + modules = with inputs; [ + disko.nixosModules.disko + nixos-raspberrypi.nixosModules.raspberry-pi-4.base + nixos-raspberrypi.nixosModules.raspberry-pi-4.display-vc4 + nixos-raspberrypi.lib.inject-overlays + ]; + }; + + # ###################################################### + # Pi5 # + # ###################################################### + pi5 = { + modules = with inputs; [ + disko.nixosModules.disko + nixos-raspberrypi.nixosModules.raspberry-pi-5.base + nixos-raspberrypi.nixosModules.raspberry-pi-5.display-vc4 + nixos-raspberrypi.nixosModules.raspberry-pi-5.bluetooth + nixos-raspberrypi.lib.inject-overlays + ]; + }; + + # ###################################################### + # Mac # + # ###################################################### + macbook-pro-nixos = { + modules = with inputs; [ + nixos-apple-silicon.nixosModules.default ]; }; }; + + overlays = with inputs; [ nix-vscode-extensions.overlays.default ]; + + homes = { + modules = with inputs; [ + nix-index-database.homeModules.nix-index + sops-nix.homeManagerModules.sops + ]; + + overlays = with inputs; [ + nix-vscode-extensions.overlays.default + ]; + + users = { + # "matt@desktop" = { + # modules = with inputs; [ + # sops-nix.homeManagerModules.sops + # ]; + # }; + "deck@steamdeck" = { + modules = with inputs; [ + steam-rom-manager.homeManagerModules.default + ]; + }; + }; + }; }; - }; - # Configure Snowfall Lib, all of these settings are optional. - snowfall = { - # Choose a namespace to use for your flake's packages, library, - # and overlays. - namespace = "mjallen"; + # Configure Snowfall Lib, all of these settings are optional. + snowfall = { + # Choose a namespace to use for your flake's packages, library, + # and overlays. + namespace = "mjallen"; - # Add flake metadata that can be processed by tools like Snowfall Frost. - meta = { + # Add flake metadata that can be processed by tools like Snowfall Frost. + meta = { # A slug to use in documentation when displaying things like file paths. name = "mjallen"; # A title to show for your flake, typically the name. title = "mjallen Flake"; + }; + }; + + outputs-builder = channels: { + formatter = inputs.treefmt-nix.lib.mkWrapper channels.nixpkgs ./treefmt.nix; }; }; - - outputs-builder = channels: { - formatter = inputs.treefmt-nix.lib.mkWrapper channels.nixpkgs ./treefmt.nix; - }; - }; -} \ No newline at end of file +} diff --git a/homes/aarch64-darwin/mattjallen@macbook-pro/default.nix b/homes/aarch64-darwin/mattjallen@macbook-pro/default.nix index a8e432a..2f49d43 100755 --- a/homes/aarch64-darwin/mattjallen@macbook-pro/default.nix +++ b/homes/aarch64-darwin/mattjallen@macbook-pro/default.nix @@ -1,4 +1,9 @@ -{ lib, pkgs, home, ... }: +{ + lib, + pkgs, + home, + ... +}: let shellAliases = { update-switch = "darwin-rebuild switch --flake ~/nix-config"; diff --git a/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix b/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix index 895fa8d..e70cf82 100755 --- a/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix +++ b/homes/aarch64-linux/matt@macbook-pro-nixos/default.nix @@ -23,7 +23,7 @@ in home.stateVersion = "23.11"; mjallen = { - desktop.hyprland = { + desktop.hyprland = { enable = true; primaryDisplay = "eDP-1"; @@ -41,7 +41,6 @@ in "name:steam, monitor:${display.input}, default:false, special, class:(.*[Ss]team.*)" ]; - windowRule = [ "size 2160 3356, tag:horizonrdp" ]; @@ -95,7 +94,7 @@ in tooltip = false; exec = "waybar-hass --get_light light.living_room_lights"; interval = "once"; - format = "{text}";#"󱉓"; + format = "{text}"; # "󱉓"; on-click = "waybar-hass --toggle_light light.living_room_lights"; return-type = "json"; }; diff --git a/homes/aarch64-linux/matt@pi4/default.nix b/homes/aarch64-linux/matt@pi4/default.nix index c507e31..d888111 100755 --- a/homes/aarch64-linux/matt@pi4/default.nix +++ b/homes/aarch64-linux/matt@pi4/default.nix @@ -1,4 +1,4 @@ -{ lib, ... }: +{ lib, ... }: let shellAliases = { ll = "ls -alh"; @@ -19,40 +19,40 @@ in home.username = "matt"; - sops = { - age.keyFile = "/home/matt/.config/sops/age/keys.txt"; - defaultSopsFile = "/etc/nixos/secrets/secrets.yaml"; - validateSopsFiles = false; - secrets = { - "ssh-keys-public/pi4" = { - path = "/home/matt/.ssh/id_ed25519.pub"; - mode = "0644"; - }; - "ssh-keys-private/pi4" = { - path = "/home/matt/.ssh/id_ed25519"; - mode = "0600"; - }; -# "ssh-keys-public/desktop-nixos" = { -# path = "/home/matt/.ssh/authorized_keys"; -# mode = "0600"; -# }; + sops = { + age.keyFile = "/home/matt/.config/sops/age/keys.txt"; + defaultSopsFile = "/etc/nixos/secrets/secrets.yaml"; + validateSopsFiles = false; + secrets = { + "ssh-keys-public/pi4" = { + path = "/home/matt/.ssh/id_ed25519.pub"; + mode = "0644"; + }; + "ssh-keys-private/pi4" = { + path = "/home/matt/.ssh/id_ed25519"; + mode = "0600"; + }; + # "ssh-keys-public/desktop-nixos" = { + # path = "/home/matt/.ssh/authorized_keys"; + # mode = "0600"; + # }; -# "ssh-keys-public/desktop-nixos-root" = { -# path = "/home/matt/.ssh/authorized_keys2"; -# mode = "0600"; -# }; + # "ssh-keys-public/desktop-nixos-root" = { + # path = "/home/matt/.ssh/authorized_keys2"; + # mode = "0600"; + # }; -# "ssh-keys-public/desktop-windows" = { -# path = "/home/matt/.ssh/authorized_keys3"; -# mode = "0600"; -# }; + # "ssh-keys-public/desktop-windows" = { + # path = "/home/matt/.ssh/authorized_keys3"; + # mode = "0600"; + # }; -# "ssh-keys-public/macbook-macos" = { -# path = "/home/matt/.ssh/authorized_keys4"; -# mode = "0600"; -# }; - }; - }; + # "ssh-keys-public/macbook-macos" = { + # path = "/home/matt/.ssh/authorized_keys4"; + # mode = "0600"; + # }; + }; + }; programs = { mangohud.enable = lib.mkForce true; diff --git a/homes/aarch64-linux/matt@pi5/default.nix b/homes/aarch64-linux/matt@pi5/default.nix index 866e684..7f0acd3 100755 --- a/homes/aarch64-linux/matt@pi5/default.nix +++ b/homes/aarch64-linux/matt@pi5/default.nix @@ -1,4 +1,10 @@ -{ pkgs, lib, config, namespace, ... }: +{ + pkgs, + lib, + config, + namespace, + ... +}: let shellAliases = { update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.3"; diff --git a/homes/aarch64-linux/root@pi4/default.nix b/homes/aarch64-linux/root@pi4/default.nix index 78e871b..4523080 100644 --- a/homes/aarch64-linux/root@pi4/default.nix +++ b/homes/aarch64-linux/root@pi4/default.nix @@ -15,4 +15,4 @@ in programs = { zsh.shellAliases = shellAliases; }; -} \ No newline at end of file +} diff --git a/homes/x86_64-linux/admin@nuc/default.nix b/homes/x86_64-linux/admin@nuc/default.nix index 44edc7f..70578c1 100755 --- a/homes/x86_64-linux/admin@nuc/default.nix +++ b/homes/x86_64-linux/admin@nuc/default.nix @@ -1,4 +1,4 @@ -{ pkgs,... }: +{ pkgs, ... }: let shellAliases = { update-boot = "sudo nixos-rebuild boot --max-jobs 10"; diff --git a/homes/x86_64-linux/deck@steamdeck/default.nix b/homes/x86_64-linux/deck@steamdeck/default.nix index ca15c41..12e4c8d 100755 --- a/homes/x86_64-linux/deck@steamdeck/default.nix +++ b/homes/x86_64-linux/deck@steamdeck/default.nix @@ -30,13 +30,13 @@ in steam-rom-manager = { enable = true; steamUsername = "mjallen18"; - + # Optional: override default paths if needed environmentVariables = { romsDirectory = "/home/deck/Emulation/roms"; steamDirectory = "/home/deck/.local/share/Steam"; }; - + emulators = { ryujinx.enable = true; @@ -44,13 +44,21 @@ in enable = true; package = pkgs.dolphin-emu; romFolder = "gc"; - fileTypes = [ ".iso" ".ISO" ".gcm" ".GCM" ".ciso" ".CISO" "rvz" ]; + fileTypes = [ + ".iso" + ".ISO" + ".gcm" + ".GCM" + ".ciso" + ".CISO" + "rvz" + ]; extraArgs = "-b -e \"\${filePath}\""; }; - + pcsx2.enable = true; mgba.enable = true; - + "Non-SRM Shortcuts" = { enable = true; parserType = "Non-SRM Shortcuts"; diff --git a/homes/x86_64-linux/root@nuc/default.nix b/homes/x86_64-linux/root@nuc/default.nix index 6d8c3c7..ae274e6 100755 --- a/homes/x86_64-linux/root@nuc/default.nix +++ b/homes/x86_64-linux/root@nuc/default.nix @@ -14,4 +14,4 @@ in programs = { zsh.shellAliases = shellAliases; }; -} \ No newline at end of file +} diff --git a/modules/home/desktop/gnome/default.nix b/modules/home/desktop/gnome/default.nix index 6163524..659c63b 100644 --- a/modules/home/desktop/gnome/default.nix +++ b/modules/home/desktop/gnome/default.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.mjallen.desktop.gnome; in @@ -66,4 +71,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/modules/home/desktop/gnome/options.nix b/modules/home/desktop/gnome/options.nix index 549cc33..ac20cfd 100644 --- a/modules/home/desktop/gnome/options.nix +++ b/modules/home/desktop/gnome/options.nix @@ -4,4 +4,4 @@ with lib; options.mjallen.desktop.gnome = { enable = mkEnableOption "enable gnome settings"; }; -} \ No newline at end of file +} diff --git a/modules/home/desktop/hyprland/default.nix b/modules/home/desktop/hyprland/default.nix index 78503ac..2c085f6 100755 --- a/modules/home/desktop/hyprland/default.nix +++ b/modules/home/desktop/hyprland/default.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: with lib; let cfg = config.mjallen.desktop.hyprland; @@ -6,7 +11,7 @@ let in { imports = [ - ./options.nix + ./options.nix ./packages.nix ./theme.nix ./variables.nix @@ -21,7 +26,7 @@ in programs = { vscode.profiles.default.userSettings."window"."titleBarStyle" = "custom"; }; - + wayland.windowManager.hyprland = { enable = true; xwayland.enable = true; @@ -151,7 +156,7 @@ in render = { cm_fs_passthrough = 1; }; - + misc = { vrr = 1; }; @@ -231,7 +236,7 @@ in "float, class:(.*nm-connection-editor.*)" "move onscreen cursor 0% 0%, class:(.*nm-connection-editor.*)" - + "float, title:(Media viewer)" "float, class:(it.mijorus.smile),title:(Smile)" "float, class:(.blueman-manager-wrapped)$,title:(Bluetooth Devices)" @@ -326,7 +331,7 @@ in # NOT recommended as it crashed a few times, once it's stabilized I'll make it the default send_cancel = "0"; }; - + hyprgrass-bind = [ # swipe left from right edge ", edge:r:l, workspace, +1" @@ -345,7 +350,7 @@ in ", swipe:3:ld, exec, foot" # tap with 3 fingers - ", tap:3, exec, foot" + ", tap:3, exec, foot" # longpress can trigger mouse binds: ", longpress:2, movewindow" @@ -390,14 +395,16 @@ in }; }; - extraConfig = '' - exec-once = dbus-update-activation-environment --systemd --all - exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP - exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 - exec-once = xhost +SI:localuser:root - exec-once = nwg-look -a - exec-once = nwg-dock-hyprland -d - '' + cfg.extraConfig or ''''; + extraConfig = + '' + exec-once = dbus-update-activation-environment --systemd --all + exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 + exec-once = xhost +SI:localuser:root + exec-once = nwg-look -a + exec-once = nwg-dock-hyprland -d + '' + + cfg.extraConfig or ''''; }; }; } diff --git a/modules/home/desktop/hyprland/options.nix b/modules/home/desktop/hyprland/options.nix index 7972745..ff50c32 100644 --- a/modules/home/desktop/hyprland/options.nix +++ b/modules/home/desktop/hyprland/options.nix @@ -45,31 +45,31 @@ with lib; wallpaper = mkOption { type = with types; listOf str; - default = []; + default = [ ]; description = "list of hyprland wallpaper configs"; }; monitor = mkOption { type = with types; listOf str; - default = []; + default = [ ]; description = "list of hyprland monitor configs"; }; monitorv2 = mkOption { type = with types; listOf str; - default = []; + default = [ ]; description = "list of hyprland monitorv2 configs"; }; workspace = mkOption { type = with types; listOf str; - default = []; + default = [ ]; description = "list of hyprland workspace definitions"; }; windowRule = mkOption { type = with types; listOf str; - default = []; + default = [ ]; description = "list of hyprland window rules"; }; @@ -79,12 +79,12 @@ with lib; description = "any extra options"; }; - iconThemeName = mkOption { + iconThemeName = mkOption { type = types.str; default = "Colloid-Dark"; }; - gtkThemeName = mkOption { + gtkThemeName = mkOption { type = types.str; default = "Colloid-Dark"; }; @@ -92,14 +92,38 @@ with lib; defaultApps = mkOption { type = types.submodule { options = { - browser = mkOption { type = types.package; default = pkgs.firefox; }; - editor = mkOption { type = types.package; default = pkgs.micro; }; - fileExplorer = mkOption { type = types.package; default = pkgs.nemo; }; - visual = mkOption { type = types.package; default = pkgs.vscodium; }; - terminal = mkOption { type = types.package; default = pkgs.kitty; }; - office = mkOption { type = types.package; default = pkgs.onlyoffice-bin_latest; }; - video = mkOption { type = types.package; default = pkgs.vlc; }; - imageViewer = mkOption { type = types.package; default = pkgs.nomacs; }; + browser = mkOption { + type = types.package; + default = pkgs.firefox; + }; + editor = mkOption { + type = types.package; + default = pkgs.micro; + }; + fileExplorer = mkOption { + type = types.package; + default = pkgs.nemo; + }; + visual = mkOption { + type = types.package; + default = pkgs.vscodium; + }; + terminal = mkOption { + type = types.package; + default = pkgs.kitty; + }; + office = mkOption { + type = types.package; + default = pkgs.onlyoffice-bin_latest; + }; + video = mkOption { + type = types.package; + default = pkgs.vlc; + }; + imageViewer = mkOption { + type = types.package; + default = pkgs.nomacs; + }; }; }; description = "Default applications used across the system."; @@ -120,4 +144,4 @@ with lib; }; }; }; -} \ No newline at end of file +} diff --git a/modules/home/desktop/hyprland/packages.nix b/modules/home/desktop/hyprland/packages.nix index eefc1f3..c3c4b25 100644 --- a/modules/home/desktop/hyprland/packages.nix +++ b/modules/home/desktop/hyprland/packages.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: with lib; let cfg = config.mjallen.desktop.hyprland; @@ -64,4 +69,4 @@ in xwayland ]; }; -} \ No newline at end of file +} diff --git a/modules/home/desktop/hyprland/services/hypridle/default.nix b/modules/home/desktop/hyprland/services/hypridle/default.nix index 70fb925..6da7c5d 100644 --- a/modules/home/desktop/hyprland/services/hypridle/default.nix +++ b/modules/home/desktop/hyprland/services/hypridle/default.nix @@ -1,4 +1,9 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: let cfg = config.${namespace}.desktop.hyprland; in diff --git a/modules/home/desktop/hyprland/services/hyprlock/default.nix b/modules/home/desktop/hyprland/services/hyprlock/default.nix index 1676dfa..bc2175a 100644 --- a/modules/home/desktop/hyprland/services/hyprlock/default.nix +++ b/modules/home/desktop/hyprland/services/hyprlock/default.nix @@ -1,4 +1,9 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: let cfg = config.${namespace}.desktop.hyprland; in @@ -7,41 +12,41 @@ in config = lib.mkIf cfg.enable { programs.hyprlock = { - enable = true; - settings = { - background = [ - { - monitor = ""; - path = cfg.wallpaper; # supports png, jpg, webp (no animations, though) - color = "rgba(25, 20, 20, 1.0)"; + enable = true; + settings = { + background = [ + { + monitor = ""; + path = cfg.wallpaper; # supports png, jpg, webp (no animations, though) + color = "rgba(25, 20, 20, 1.0)"; - # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations - blur_passes = "3"; # 0 disables blurring - blur_size = "7"; - noise = "0.0117"; - contrast = "0.8916"; - brightness = "0.8172"; - vibrancy = "0.1696"; - vibrancy_darkness = "0.0"; - } - ]; - input-field = [ - { - size = "200, 50"; - position = "0, -80"; - monitor = cfg.primaryDisplay; - dots_center = true; - fade_on_empty = true; - font_color = "rgb(202, 211, 245)"; - inner_color = "rgb(91, 96, 120)"; - outer_color = "rgb(24, 25, 38)"; - bothlock_color = -1; - outline_thickness = 5; - placeholder_text = ''Password...''; - shadow_passes = 2; - } - ]; - }; + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_passes = "3"; # 0 disables blurring + blur_size = "7"; + noise = "0.0117"; + contrast = "0.8916"; + brightness = "0.8172"; + vibrancy = "0.1696"; + vibrancy_darkness = "0.0"; + } + ]; + input-field = [ + { + size = "200, 50"; + position = "0, -80"; + monitor = cfg.primaryDisplay; + dots_center = true; + fade_on_empty = true; + font_color = "rgb(202, 211, 245)"; + inner_color = "rgb(91, 96, 120)"; + outer_color = "rgb(24, 25, 38)"; + bothlock_color = -1; + outline_thickness = 5; + placeholder_text = ''Password...''; + shadow_passes = 2; + } + ]; }; + }; }; -} \ No newline at end of file +} diff --git a/modules/home/desktop/hyprland/services/hyprpaper/default.nix b/modules/home/desktop/hyprland/services/hyprpaper/default.nix index 8d2d0d2..c480201 100644 --- a/modules/home/desktop/hyprland/services/hyprpaper/default.nix +++ b/modules/home/desktop/hyprland/services/hyprpaper/default.nix @@ -1,4 +1,9 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: let cfg = config.${namespace}.desktop.hyprland; in @@ -15,4 +20,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/modules/home/desktop/hyprland/theme.nix b/modules/home/desktop/hyprland/theme.nix index 23249cb..fb6c8f9 100644 --- a/modules/home/desktop/hyprland/theme.nix +++ b/modules/home/desktop/hyprland/theme.nix @@ -1,12 +1,17 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: with lib; let cfg = config.mjallen.desktop.hyprland; - themeSize = "compact"; # [ "standard" "compact" ] - themeAccent = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] - themeVariant = "nord"; # [ "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" "black" "rimless" "normal" "float" ] - themeColor = "dark"; # [ "standard" "light" "dark" ] + themeSize = "compact"; # [ "standard" "compact" ] + themeAccent = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] + themeVariant = "nord"; # [ "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" "black" "rimless" "normal" "float" ] + themeColor = "dark"; # [ "standard" "light" "dark" ] iconThemeVariant = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] iconScheme = "nord"; # [ "default" "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" ] @@ -95,4 +100,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/modules/home/desktop/hyprland/variables.nix b/modules/home/desktop/hyprland/variables.nix index e7515e3..ccba10d 100644 --- a/modules/home/desktop/hyprland/variables.nix +++ b/modules/home/desktop/hyprland/variables.nix @@ -6,34 +6,34 @@ in { config = mkIf cfg.enable { home.sessionVariables = { - BROWSER = "${cfg.defaultApps.browser.pname}"; - CLUTTER_BACKEND = "wayland"; - EDITOR = "${cfg.defaultApps.editor.pname}"; - VISUAL = "${cfg.defaultApps.visual.pname}"; - ICON_THEME = cfg.iconThemeName; - GTK_CSD = "0"; - GTK_THEME = cfg.gtkThemeName; - GTK_USE_PORTAL = "1"; - HYPRCURSOR_THEME = config.home.pointerCursor.name; - HYPRCURSOR_SIZE = config.home.pointerCursor.size; - MOZ_ENABLE_WAYLAND = "1"; - NIXOS_OZONE_WL = "1"; - NIXOS_XDG_OPEN_USE_PORTAL = "1"; - QT_AUTO_SCREEN_SCALE_FACTOR = "1"; - QT_QPA_PLATFORM = "wayland-egl"; - QT_QPA_PLATFORMTHEME = "gtk3"; - QT_SCALE_FACTOR = "1"; + BROWSER = "${cfg.defaultApps.browser.pname}"; + CLUTTER_BACKEND = "wayland"; + EDITOR = "${cfg.defaultApps.editor.pname}"; + VISUAL = "${cfg.defaultApps.visual.pname}"; + ICON_THEME = cfg.iconThemeName; + GTK_CSD = "0"; + GTK_THEME = cfg.gtkThemeName; + GTK_USE_PORTAL = "1"; + HYPRCURSOR_THEME = config.home.pointerCursor.name; + HYPRCURSOR_SIZE = config.home.pointerCursor.size; + MOZ_ENABLE_WAYLAND = "1"; + NIXOS_OZONE_WL = "1"; + NIXOS_XDG_OPEN_USE_PORTAL = "1"; + QT_AUTO_SCREEN_SCALE_FACTOR = "1"; + QT_QPA_PLATFORM = "wayland-egl"; + QT_QPA_PLATFORMTHEME = "gtk3"; + QT_SCALE_FACTOR = "1"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; - SDL_VIDEODRIVER = "wayland"; - TERMINAL = "${cfg.defaultApps.terminal.pname}"; - XCURSOR_THEME = config.home.pointerCursor.name; - XCURSOR_SIZE = config.home.pointerCursor.size; - XDG_CACHE_HOME = "\${HOME}/.cache"; - XDG_CONFIG_HOME = "\${HOME}/.config"; - XDG_CURRENT_DESKTOP = "Hyprland"; - XDG_DATA_HOME = "\${HOME}/.local/share"; - XDG_SESSION_DESKTOP = "Hyprland"; - XDG_SESSION_TYPE = "wayland"; + SDL_VIDEODRIVER = "wayland"; + TERMINAL = "${cfg.defaultApps.terminal.pname}"; + XCURSOR_THEME = config.home.pointerCursor.name; + XCURSOR_SIZE = config.home.pointerCursor.size; + XDG_CACHE_HOME = "\${HOME}/.cache"; + XDG_CONFIG_HOME = "\${HOME}/.config"; + XDG_CURRENT_DESKTOP = "Hyprland"; + XDG_DATA_HOME = "\${HOME}/.local/share"; + XDG_SESSION_DESKTOP = "Hyprland"; + XDG_SESSION_TYPE = "wayland"; }; }; -} \ No newline at end of file +} diff --git a/modules/home/desktop/theme/nord.nix b/modules/home/desktop/theme/nord.nix index 9678a1c..a195900 100644 --- a/modules/home/desktop/theme/nord.nix +++ b/modules/home/desktop/theme/nord.nix @@ -59,4 +59,4 @@ border-radius: 1rem 0rem 0rem 1rem; margin-left: 0.5rem; ''; -} \ No newline at end of file +} diff --git a/modules/home/home/default.nix b/modules/home/home/default.nix index 6574fe3..4304690 100644 --- a/modules/home/home/default.nix +++ b/modules/home/home/default.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { home = { enableNixpkgsReleaseCheck = lib.mkDefault false; diff --git a/modules/home/programs/btop/options.nix b/modules/home/programs/btop/options.nix index 9828d5e..c85c2e9 100644 --- a/modules/home/programs/btop/options.nix +++ b/modules/home/programs/btop/options.nix @@ -4,4 +4,4 @@ with lib; options.mjallen.programs.btop = { enable = mkEnableOption "enable btop"; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/code/default.nix b/modules/home/programs/code/default.nix index ed7da44..66010fc 100644 --- a/modules/home/programs/code/default.nix +++ b/modules/home/programs/code/default.nix @@ -1,4 +1,10 @@ -{ config, lib, pkgs, system, ... }: +{ + config, + lib, + pkgs, + system, + ... +}: let isArm = "aarch64-linux" == system; open-remote-ssh = pkgs.vscode-utils.buildVscodeExtension { @@ -27,44 +33,48 @@ in default = { enableUpdateCheck = false; enableExtensionUpdateCheck = false; - extensions = with pkgs; [ - vscode-extensions.arrterian.nix-env-selector - vscode-extensions.bbenoist.nix - vscode-extensions.brettm12345.nixfmt-vscode - vscode-extensions.cweijan.vscode-database-client2 - vscode-extensions.dendron.dendron-markdown-preview-enhanced - vscode-extensions.jnoortheen.nix-ide - vscode-extensions.mkhl.direnv - vscode-extensions.ms-python.debugpy - vscode-extensions.ms-python.pylint - vscode-extensions.ms-python.python - # vscode-extensions.ms-python.vscode-pylance - vscode-extensions.redhat.vscode-yaml - vscode-extensions.yy0931.vscode-sqlite3-editor + extensions = + with pkgs; + [ + vscode-extensions.arrterian.nix-env-selector + vscode-extensions.bbenoist.nix + vscode-extensions.brettm12345.nixfmt-vscode + vscode-extensions.cweijan.vscode-database-client2 + vscode-extensions.dendron.dendron-markdown-preview-enhanced + vscode-extensions.jnoortheen.nix-ide + vscode-extensions.mkhl.direnv + vscode-extensions.ms-python.debugpy + vscode-extensions.ms-python.pylint + vscode-extensions.ms-python.python + # vscode-extensions.ms-python.vscode-pylance + vscode-extensions.redhat.vscode-yaml + vscode-extensions.yy0931.vscode-sqlite3-editor - # open-remote-ssh - # nix-vscode-extensions.open-vsx.jeanp413.open-remote-ssh - # open-vsx.jeanp413.open-remote-ssh - ] ++ ( if !isArm then x86_only else [ ] ) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ - { - name = "copilot-mcp"; - publisher = "automatalabs"; - version = "0.0.49"; - sha256 = "sha256-+G2OQl5SCN7bh7MzGdYiRclIZefBE7lWnGg1kNpCvnA="; - } - { - name = "mcp-server-runner"; - publisher = "zebradev"; - version = "0.1.0"; - sha256 = "sha256-StydVt3VzQUSS/pYp76jnIwtZlEj8gWAGzOARs93J+E="; - } - { - name = "claude-dev"; - publisher = "saoudrizwan"; - version = "3.17.9"; - sha256 = "sha256-y3bFtMe5vZrO3DFb31KDvkzjD2jM76wK89mKhgJXC70="; - } - ]; + # open-remote-ssh + # nix-vscode-extensions.open-vsx.jeanp413.open-remote-ssh + # open-vsx.jeanp413.open-remote-ssh + ] + ++ (if !isArm then x86_only else [ ]) + ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ + { + name = "copilot-mcp"; + publisher = "automatalabs"; + version = "0.0.49"; + sha256 = "sha256-+G2OQl5SCN7bh7MzGdYiRclIZefBE7lWnGg1kNpCvnA="; + } + { + name = "mcp-server-runner"; + publisher = "zebradev"; + version = "0.1.0"; + sha256 = "sha256-StydVt3VzQUSS/pYp76jnIwtZlEj8gWAGzOARs93J+E="; + } + { + name = "claude-dev"; + publisher = "saoudrizwan"; + version = "3.17.9"; + sha256 = "sha256-y3bFtMe5vZrO3DFb31KDvkzjD2jM76wK89mKhgJXC70="; + } + ]; userSettings = { @@ -79,7 +89,7 @@ in "confirmDelete" = false; "confirmDragAndDrop" = false; }; - + "git" = { "confirmSync" = false; "enableSmartCommit" = true; @@ -110,10 +120,12 @@ in # You can write arbitary Nix expressions here, to produce valid "options" declaration result. # Tip: for flake-based configuration, utilize `builtins.getFlake` "nixos" = { - "expr" = "(builtins.getFlake \"${config.home.homeDirectory}/nix-config\").nixosConfigurations..options"; + "expr" = + "(builtins.getFlake \"${config.home.homeDirectory}/nix-config\").nixosConfigurations..options"; }; "home-manager" = { - "expr" = "(builtins.getFlake \"${config.home.homeDirectory}/nix-config\").homeConfigurations..options"; + "expr" = + "(builtins.getFlake \"${config.home.homeDirectory}/nix-config\").homeConfigurations..options"; }; # # Tip: use ${workspaceFolder} variable to define path # "nix-darwin" = { @@ -149,4 +161,4 @@ in enableZshIntegration = true; }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/git/default.nix b/modules/home/programs/git/default.nix index 026e07c..99cc5ac 100644 --- a/modules/home/programs/git/default.nix +++ b/modules/home/programs/git/default.nix @@ -18,4 +18,4 @@ in userEmail = "matt.l.jallen@gmail.com"; aliases = gitAliases; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/kitty/default.nix b/modules/home/programs/kitty/default.nix index ce5222f..0a7f126 100755 --- a/modules/home/programs/kitty/default.nix +++ b/modules/home/programs/kitty/default.nix @@ -29,33 +29,33 @@ in background_opacity = "0.85"; # The basic colors - foreground = nord.snowStorm.nord6; - background = nord.polarNight.nord0; - selection_foreground = nord.polarNight.nord0; - selection_background = nord.aurora.nord15; + foreground = nord.snowStorm.nord6; + background = nord.polarNight.nord0; + selection_foreground = nord.polarNight.nord0; + selection_background = nord.aurora.nord15; # Cursor colors - cursor = nord.aurora.nord15; - cursor_text_color = nord.polarNight.nord0; + cursor = nord.aurora.nord15; + cursor_text_color = nord.polarNight.nord0; # URL underline color when hovering with mouse url_color = nord.aurora.nord15; # Kitty window border colors - active_border_color = nord.frost.nord10; + active_border_color = nord.frost.nord10; inactive_border_color = nord.polarNight.nord1; - bell_border_color = nord.aurora.nord13; + bell_border_color = nord.aurora.nord13; # OS Window titlebar colors - wayland_titlebar_color = nord.polarNight.nord0; - macos_titlebar_color = nord.polarNight.nord0; + wayland_titlebar_color = nord.polarNight.nord0; + macos_titlebar_color = nord.polarNight.nord0; # Tab bar colors - active_tab_foreground = nord.polarNight.nord3; - active_tab_background = nord.aurora.nord15; + active_tab_foreground = nord.polarNight.nord3; + active_tab_background = nord.aurora.nord15; inactive_tab_foreground = nord.snowStorm.nord6; inactive_tab_background = nord.polarNight.nord1; - tab_bar_background = nord.polarNight.nord3; + tab_bar_background = nord.polarNight.nord3; # Colors for marks (marked text in the terminal) mark1_foreground = nord.polarNight.nord0; @@ -86,11 +86,11 @@ in color11 = nord.aurora.nord13; # blue - color4 = nord.frost.nord10; + color4 = nord.frost.nord10; color12 = nord.frost.nord10; # magenta - color5 = nord.aurora.nord15; + color5 = nord.aurora.nord15; color13 = nord.aurora.nord15; # cyan @@ -98,7 +98,7 @@ in color14 = nord.frost.nord8; # white - color7 = nord.snowStorm.nord5; + color7 = nord.snowStorm.nord5; color15 = nord.snowStorm.nord4; }; }; diff --git a/modules/home/programs/kitty/options.nix b/modules/home/programs/kitty/options.nix index 53bc3f9..0759e52 100644 --- a/modules/home/programs/kitty/options.nix +++ b/modules/home/programs/kitty/options.nix @@ -24,4 +24,4 @@ with lib; default = import ../../desktop/theme/nord.nix; }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/librewolf/default.nix b/modules/home/programs/librewolf/default.nix index d13fe4b..28fda5f 100644 --- a/modules/home/programs/librewolf/default.nix +++ b/modules/home/programs/librewolf/default.nix @@ -36,7 +36,8 @@ "browser.newtabpage.activity-stream.topSitesRows" = 3; # Set number of rows for top sites on new tab page "layout.css.light-dark.enabled" = true; # Enable light/dark theme support "extensions.activeThemeID" = "default-theme@mozilla.org"; # Set active theme - "extensions.webextensions.uuids" = "{\"formautofill@mozilla.org\" =\"851c83b7-26d5-449c-8cc9-d8951a0ce78d\",\"pictureinpicture@mozilla.org\" =\"42fa2650-5134-4bef-bafa-b73f9ae51bad\",\"screenshots@mozilla.org\" =\"efd2b692-43c4-433a-aea5-0cb79f8312d4\",\"webcompat-reporter@mozilla.org\" =\"c43a6be2-fb56-4253-b384-ce8e09a89999\",\"webcompat@mozilla.org\" =\"e25fd1bb-7c53-413f-9528-bb922c322a56\",\"default-theme@mozilla.org\" =\"610b67c3-9145-46f7-814f-d8ee2cc8edff\",\"addons-search-detection@mozilla.com\:\"caedb3ca-5cf5-4e23-a251-d742f23e6fc8\",\"uBlock0@raymondhill.net\" =\"7e7d9fd9-12bf-42d3-9c7c-9ffd05420ec7\",\"78272b6fa58f4a1abaac99321d503a20@proton.me\" =\"7242a067-06d8-430b-94a3-00d264cdd57b\",\"addon@darkreader.org\" =\"2f02b112-6acd-4bdc-af2c-1432eb527339\",\"jid1-xUfzOsOFlzSOXg@jetpack\" =\"d0c72046-9903-4118-8160-a028840bf928\",\"chrome-gnome-shell@gnome.org\" =\"a1ab53e6-b765-4f25-8349-383cc04682a0\",\"user-agent-switcher@ninetailed.ninja\" =\"259d07cc-bb32-4ed5-b90f-6d73abdeb7bb\",\"firefoxdav@icloud.com\" =\"110e6e2c-18f8-461d-9f26-b8f04482b6f1\",\"ciscowebexstart1@cisco.com\" =\"a4062240-e73a-4353-bddb-d608d84881f7\",\"{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}\" =\"9164e437-812b-4a07-8dfd-2fd73b39329b\",\"{036a55b4-5e72-4d05-a06c-cba2dfcc134a}\" =\"648fc678-a6fb-47cd-9792-fb9520678c17\",\"{446900e4-71c2-419f-a6a7-df9c091e268b}\" =\"f0b43422-070e-466e-85c9-6543f209f075\",\"jid1-MnnxcxisBPnSXQ@jetpack\" =\"4c448202-c843-4cae-b5c3-d11f2da58fa3\",\"soundfixer@unrelenting.technology\" =\"59b35eb8-1c85-4919-a905-80d120993ddc\",\"floccus@handmadeideas.org\" =\"8ad2956c-8091-41af-a689-7d2108f5958d\",\"{79b9dbcf-cc5a-4cda-89ef-c4ab097eb074}\" =\"c2a223a7-32e0-4726-9f20-17236702b1f5\",\"linkgopher@oooninja.com\" =\"a257858c-0dce-415b-b123-6222876cf843\"}"; + "extensions.webextensions.uuids" = + "{\"formautofill@mozilla.org\" =\"851c83b7-26d5-449c-8cc9-d8951a0ce78d\",\"pictureinpicture@mozilla.org\" =\"42fa2650-5134-4bef-bafa-b73f9ae51bad\",\"screenshots@mozilla.org\" =\"efd2b692-43c4-433a-aea5-0cb79f8312d4\",\"webcompat-reporter@mozilla.org\" =\"c43a6be2-fb56-4253-b384-ce8e09a89999\",\"webcompat@mozilla.org\" =\"e25fd1bb-7c53-413f-9528-bb922c322a56\",\"default-theme@mozilla.org\" =\"610b67c3-9145-46f7-814f-d8ee2cc8edff\",\"addons-search-detection@mozilla.com\:\"caedb3ca-5cf5-4e23-a251-d742f23e6fc8\",\"uBlock0@raymondhill.net\" =\"7e7d9fd9-12bf-42d3-9c7c-9ffd05420ec7\",\"78272b6fa58f4a1abaac99321d503a20@proton.me\" =\"7242a067-06d8-430b-94a3-00d264cdd57b\",\"addon@darkreader.org\" =\"2f02b112-6acd-4bdc-af2c-1432eb527339\",\"jid1-xUfzOsOFlzSOXg@jetpack\" =\"d0c72046-9903-4118-8160-a028840bf928\",\"chrome-gnome-shell@gnome.org\" =\"a1ab53e6-b765-4f25-8349-383cc04682a0\",\"user-agent-switcher@ninetailed.ninja\" =\"259d07cc-bb32-4ed5-b90f-6d73abdeb7bb\",\"firefoxdav@icloud.com\" =\"110e6e2c-18f8-461d-9f26-b8f04482b6f1\",\"ciscowebexstart1@cisco.com\" =\"a4062240-e73a-4353-bddb-d608d84881f7\",\"{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}\" =\"9164e437-812b-4a07-8dfd-2fd73b39329b\",\"{036a55b4-5e72-4d05-a06c-cba2dfcc134a}\" =\"648fc678-a6fb-47cd-9792-fb9520678c17\",\"{446900e4-71c2-419f-a6a7-df9c091e268b}\" =\"f0b43422-070e-466e-85c9-6543f209f075\",\"jid1-MnnxcxisBPnSXQ@jetpack\" =\"4c448202-c843-4cae-b5c3-d11f2da58fa3\",\"soundfixer@unrelenting.technology\" =\"59b35eb8-1c85-4919-a905-80d120993ddc\",\"floccus@handmadeideas.org\" =\"8ad2956c-8091-41af-a689-7d2108f5958d\",\"{79b9dbcf-cc5a-4cda-89ef-c4ab097eb074}\" =\"c2a223a7-32e0-4726-9f20-17236702b1f5\",\"linkgopher@oooninja.com\" =\"a257858c-0dce-415b-b123-6222876cf843\"}"; }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/mako/options.nix b/modules/home/programs/mako/options.nix index 9911c57..a920ab2 100644 --- a/modules/home/programs/mako/options.nix +++ b/modules/home/programs/mako/options.nix @@ -9,4 +9,4 @@ with lib; default = "DejaVu Sans"; }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/nwg-dock/default.nix b/modules/home/programs/nwg-dock/default.nix index 6c8b878..2e67342 100644 --- a/modules/home/programs/nwg-dock/default.nix +++ b/modules/home/programs/nwg-dock/default.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: with lib; let cfg = config.mjallen.programs.nwg-dock; @@ -9,7 +14,7 @@ in config = mkIf cfg.enable { home.packages = with pkgs; [ nwg-dock-hyprland ]; - + home.file = { ".config/nwg-dock-hyprland/drawer.css".text = '' window { diff --git a/modules/home/programs/nwg-dock/options.nix b/modules/home/programs/nwg-dock/options.nix index 9cb6299..a37808f 100644 --- a/modules/home/programs/nwg-dock/options.nix +++ b/modules/home/programs/nwg-dock/options.nix @@ -4,4 +4,4 @@ with lib; options.mjallen.programs.nwg-dock = { enable = mkEnableOption "enable nwg-dock"; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/nwg-drawer/default.nix b/modules/home/programs/nwg-drawer/default.nix index 4ce2b84..d57252b 100644 --- a/modules/home/programs/nwg-drawer/default.nix +++ b/modules/home/programs/nwg-drawer/default.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: with lib; let cfg = config.mjallen.programs.nwg-drawer; @@ -9,44 +14,44 @@ in config = mkIf cfg.enable { home.packages = with pkgs; [ nwg-drawer ]; - + home.file = { - ".config/nwg-drawer/drawer.css".text = '' - window { - background-color: ${nord.polarNight.nord0}bf; - color: ${nord.snowStorm.nord5}00 - } + ".config/nwg-drawer/drawer.css".text = '' + window { + background-color: ${nord.polarNight.nord0}bf; + color: ${nord.snowStorm.nord5}00 + } - /* search entry */ - entry { - background-color: ${nord.polarNight.nord1}0f - } + /* search entry */ + entry { + background-color: ${nord.polarNight.nord1}0f + } - button, image { - background: none; - border: none - } + button, image { + background: none; + border: none + } - button:hover { - background-color: ${nord.frost.nord10}1a - } + button:hover { + background-color: ${nord.frost.nord10}1a + } - /* in case you wanted to give category buttons a different look */ - #category-button { - margin: 0 10px 0 10px - } + /* in case you wanted to give category buttons a different look */ + #category-button { + margin: 0 10px 0 10px + } - #pinned-box { - padding-bottom: 5px; - border-bottom: 1px dotted ${nord.polarNight.nord3} - } + #pinned-box { + padding-bottom: 5px; + border-bottom: 1px dotted ${nord.polarNight.nord3} + } - #files-box { - padding: 5px; - border: 1px dotted ${nord.polarNight.nord3}; - border-radius: 15px - } - ''; + #files-box { + padding: 5px; + border: 1px dotted ${nord.polarNight.nord3}; + border-radius: 15px + } + ''; }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/nwg-drawer/options.nix b/modules/home/programs/nwg-drawer/options.nix index 6064d53..a837354 100644 --- a/modules/home/programs/nwg-drawer/options.nix +++ b/modules/home/programs/nwg-drawer/options.nix @@ -4,4 +4,4 @@ with lib; options.mjallen.programs.nwg-drawer = { enable = mkEnableOption "enable nwg-drawer"; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/nwg-panel/default.nix b/modules/home/programs/nwg-panel/default.nix index d1d17b7..96b4489 100644 --- a/modules/home/programs/nwg-panel/default.nix +++ b/modules/home/programs/nwg-panel/default.nix @@ -1,4 +1,4 @@ -{ config, lib, ... }: +{ config, lib, ... }: with lib; let cfg = config.mjallen.programs.nwg-panel; @@ -12,15 +12,15 @@ in ''; ".config/nwg-panel/preferred-apps.json".text = '' - { - "\\.pdf$": "${cfg.defaultApps.browser.pname}", - "\\.svg$": "inkscape", - "\\.(jpg|png|tiff|gif)$": "${cfg.defaultApps.imageViewer.pname}", - "\\.(mp3|ogg|flac|wav|wma)$": "audacious", - "\\.(avi|mp4|mkv|mov|wav)$": "${cfg.defaultApps.video.pname}", - "\\.(doc|docx|xls|xlsx)$": "${cfg.defaultApps.office.pname}" - } + { + "\\.pdf$": "${cfg.defaultApps.browser.pname}", + "\\.svg$": "inkscape", + "\\.(jpg|png|tiff|gif)$": "${cfg.defaultApps.imageViewer.pname}", + "\\.(mp3|ogg|flac|wav|wma)$": "audacious", + "\\.(avi|mp4|mkv|mov|wav)$": "${cfg.defaultApps.video.pname}", + "\\.(doc|docx|xls|xlsx)$": "${cfg.defaultApps.office.pname}" + } ''; }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/nwg-panel/options.nix b/modules/home/programs/nwg-panel/options.nix index c3a529b..7fdf6e4 100644 --- a/modules/home/programs/nwg-panel/options.nix +++ b/modules/home/programs/nwg-panel/options.nix @@ -7,17 +7,41 @@ with lib; defaultApps = mkOption { type = types.submodule { options = { - browser = mkOption { type = types.package; default = pkgs.firefox; }; - editor = mkOption { type = types.package; default = pkgs.micro; }; - fileExplorer = mkOption { type = types.package; default = pkgs.nemo; }; - visual = mkOption { type = types.package; default = pkgs.vscodium; }; - terminal = mkOption { type = types.package; default = pkgs.kitty; }; - office = mkOption { type = types.package; default = pkgs.onlyoffice-bin_latest; }; - video = mkOption { type = types.package; default = pkgs.vlc; }; - imageViewer = mkOption { type = types.package; default = pkgs.gnome-photos; }; + browser = mkOption { + type = types.package; + default = pkgs.firefox; + }; + editor = mkOption { + type = types.package; + default = pkgs.micro; + }; + fileExplorer = mkOption { + type = types.package; + default = pkgs.nemo; + }; + visual = mkOption { + type = types.package; + default = pkgs.vscodium; + }; + terminal = mkOption { + type = types.package; + default = pkgs.kitty; + }; + office = mkOption { + type = types.package; + default = pkgs.onlyoffice-bin_latest; + }; + video = mkOption { + type = types.package; + default = pkgs.vlc; + }; + imageViewer = mkOption { + type = types.package; + default = pkgs.gnome-photos; + }; }; }; description = "Default applications used across the system."; }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/onlyoffice/default.nix b/modules/home/programs/onlyoffice/default.nix index 0151e12..23452fc 100644 --- a/modules/home/programs/onlyoffice/default.nix +++ b/modules/home/programs/onlyoffice/default.nix @@ -11,4 +11,4 @@ in maximized = true; }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/waybar/default.nix b/modules/home/programs/waybar/default.nix index 3c2a046..2df0513 100755 --- a/modules/home/programs/waybar/default.nix +++ b/modules/home/programs/waybar/default.nix @@ -33,7 +33,7 @@ let ''; in { - imports = [ + imports = [ ./options.nix ./scripts/hass.nix ./scripts/weather.nix @@ -91,7 +91,7 @@ in critical-threshold = 110; format-critical = "{temperatureC}°C "; format = "{temperatureC}°C {icon}"; - format-icons = [ + format-icons = [ "" # fa-temperature-empty "" # fa-temperature-quarter "" # fa-temperature-half @@ -106,7 +106,7 @@ in critical-threshold = 110; format-critical = "{temperatureC}°C "; format = "{temperatureC}°C {icon}"; - format-icons = [ + format-icons = [ "" # fa-temperature-empty "" # fa-temperature-quarter "" # fa-temperature-half @@ -193,7 +193,7 @@ in connected = "󰂱"; }; }; - + network = { interface = cfg.networkInterface; on-click = "nm-connection-editor"; @@ -234,10 +234,10 @@ in calendar = { mode = "month"; format = { - months = "{}"; - days = "{}"; - weekdays = "{}"; - today = "{}"; + months = "{}"; + days = "{}"; + weekdays = "{}"; + today = "{}"; }; }; }; @@ -247,8 +247,8 @@ in interval = 60; # statuses: 'Charging', 'Discharging' states = { - warning = 30; - critical = 15; + warning = 30; + critical = 15; }; format = "{capacity}% {icon}"; format-icons = { @@ -296,239 +296,241 @@ in # * { font-size: 13px; } # window.eDP-1 * { font-size: 10px; } - style = '' - .blink_me { - animation: blinker 1s linear infinite; - } - - @keyframes blinker { - 50% { - color: ${nord.aurora.nord11}; + style = + '' + .blink_me { + animation: blinker 1s linear infinite; } - } - - * { - font-family: - Jetbrains Mono Nerd Font, - monospace; - font-size: 14px; - min-height: 0; - } - #waybar { - background: transparent; - color: ${nord.snowStorm.nord6}; - margin: 5px 5px; - } + @keyframes blinker { + 50% { + color: ${nord.aurora.nord11}; + } + } - #workspaces { - background-color: ${nord.polarNight.nord0}; - ${defaultBorderRadius} - ${defaultOpacity} - ${defaultCenterOptions} - margin-left: 0.6rem; - } + * { + font-family: + Jetbrains Mono Nerd Font, + monospace; + font-size: 14px; + min-height: 0; + } - #workspaces button { - color: ${nord.frost.nord10}; - ${defaultBorderRadius} - padding: 0.4rem; - } + #waybar { + background: transparent; + color: ${nord.snowStorm.nord6}; + margin: 5px 5px; + } - #workspaces button.active { - color: ${nord.frost.nord8}; - ${defaultBorderRadius} - } + #workspaces { + background-color: ${nord.polarNight.nord0}; + ${defaultBorderRadius} + ${defaultOpacity} + ${defaultCenterOptions} + margin-left: 0.6rem; + } - #workspaces button:hover { - color: ${nord.frost.nord7}; - ${defaultBorderRadius} - } + #workspaces button { + color: ${nord.frost.nord10}; + ${defaultBorderRadius} + padding: 0.4rem; + } - #workspaces button.focused { - color: ${nord.snowStorm.nord6}; - background: ${nord.aurora.nord13}; - ${defaultBorderRadius} - } + #workspaces button.active { + color: ${nord.frost.nord8}; + ${defaultBorderRadius} + } - #workspaces button.urgent { - color: ${nord.polarNight.nord0}; - background: ${nord.snowStorm.nord6}; - ${defaultBorderRadius} - } + #workspaces button:hover { + color: ${nord.frost.nord7}; + ${defaultBorderRadius} + } - #tooltip { - background: ${nord.polarNight.nord0}; - border-color: ${nord.polarNight.nord0}; - ${defaultBorderRadius} - border-width: 1rem; - border-style: solid; - } + #workspaces button.focused { + color: ${nord.snowStorm.nord6}; + background: ${nord.aurora.nord13}; + ${defaultBorderRadius} + } - #window { - color: ${nord.aurora.nord15}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${defaultBorderRadius} - ${defaultCenterOptions} - margin-left: 4rem; - margin-right: 400rem; - } + #workspaces button.urgent { + color: ${nord.polarNight.nord0}; + background: ${nord.snowStorm.nord6}; + ${defaultBorderRadius} + } - /* make window module transparent when no windows present */ - #window.empty { - background-color: transparent; - } + #tooltip { + background: ${nord.polarNight.nord0}; + border-color: ${nord.polarNight.nord0}; + ${defaultBorderRadius} + border-width: 1rem; + border-style: solid; + } - #custom-weather { - color: ${nord.frost.nord10}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${borderRight} - } + #window { + color: ${nord.aurora.nord15}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${defaultBorderRadius} + ${defaultCenterOptions} + margin-left: 4rem; + margin-right: 400rem; + } - #battery { - color: ${nord.aurora.nord15}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${defaultCenterOptions} - border-radius: 0; - min-width: 3rem; - } + /* make window module transparent when no windows present */ + #window.empty { + background-color: transparent; + } - #clock { - color: ${nord.frost.nord9}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${borderLeft} - } + #custom-weather { + color: ${nord.frost.nord10}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${borderRight} + } - /* ------------- */ + #battery { + color: ${nord.aurora.nord15}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${defaultCenterOptions} + border-radius: 0; + min-width: 3rem; + } - #idle_inhibitor { - color: ${nord.frost.nord10}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${borderRight} - padding-right: 1rem; - } + #clock { + color: ${nord.frost.nord9}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${borderLeft} + } - #idle_inhibitor:hover { - background: ${nord.polarNight.nord3}; - } + /* ------------- */ - #network { - color: ${nord.aurora.nord15}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${defaultCenterOptions} - border-radius: 0; - padding-right: 15px; - } + #idle_inhibitor { + color: ${nord.frost.nord10}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${borderRight} + padding-right: 1rem; + } - #network:hover { - background: ${nord.polarNight.nord3}; - } + #idle_inhibitor:hover { + background: ${nord.polarNight.nord3}; + } - #bluetooth { - color: ${nord.frost.nord9}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${defaultCenterOptions} - border-radius: 0; - } + #network { + color: ${nord.aurora.nord15}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${defaultCenterOptions} + border-radius: 0; + padding-right: 15px; + } - #bluetooth:hover { - background: ${nord.polarNight.nord3}; - } + #network:hover { + background: ${nord.polarNight.nord3}; + } - #wireplumber.source { - color: ${nord.frost.nord8}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${defaultCenterOptions} - border-radius: 0; - } + #bluetooth { + color: ${nord.frost.nord9}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${defaultCenterOptions} + border-radius: 0; + } - #wireplumber.source.muted { - animation-name: blinker; - animation-duration: 2s; - animation-timing-function: linear; - animation-iteration-count: infinite; - padding-right: 1rem; - } + #bluetooth:hover { + background: ${nord.polarNight.nord3}; + } - #wireplumber.source:hover { - background: ${nord.polarNight.nord3}; - } + #wireplumber.source { + color: ${nord.frost.nord8}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${defaultCenterOptions} + border-radius: 0; + } - #wireplumber.sink { - color: ${nord.frost.nord7}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${defaultCenterOptions} - border-radius: 0; - } + #wireplumber.source.muted { + animation-name: blinker; + animation-duration: 2s; + animation-timing-function: linear; + animation-iteration-count: infinite; + padding-right: 1rem; + } - #wireplumber.sink.muted { - animation-name: blinker; - animation-duration: 5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - } + #wireplumber.source:hover { + background: ${nord.polarNight.nord3}; + } - #wireplumber.sink:hover { - background: ${nord.polarNight.nord3}; - } + #wireplumber.sink { + color: ${nord.frost.nord7}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${defaultCenterOptions} + border-radius: 0; + } - #keyboard-state.numlock { - color: ${nord.frost.nord8}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${defaultCenterOptions} - border-radius: 0; - } + #wireplumber.sink.muted { + animation-name: blinker; + animation-duration: 5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + } - #keyboard-state.capslock { - color: ${nord.frost.nord9}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${defaultCenterOptions} - border-radius: 0; - } + #wireplumber.sink:hover { + background: ${nord.polarNight.nord3}; + } - #temperature.gpu { - color: ${nord.frost.nord10}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${defaultCenterOptions} - border-radius: 0; - } + #keyboard-state.numlock { + color: ${nord.frost.nord8}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${defaultCenterOptions} + border-radius: 0; + } - #temperature.gpu:hover { - background: ${nord.polarNight.nord3}; - } + #keyboard-state.capslock { + color: ${nord.frost.nord9}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${defaultCenterOptions} + border-radius: 0; + } - #temperature { - color: ${nord.frost.nord9}; - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${defaultCenterOptions} - border-radius: 0 - } + #temperature.gpu { + color: ${nord.frost.nord10}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${defaultCenterOptions} + border-radius: 0; + } - /* ------------- */ + #temperature.gpu:hover { + background: ${nord.polarNight.nord3}; + } - #tray { - background-color: ${nord.polarNight.nord0}; - ${defaultOpacity} - ${defaultCenterOptions} - ${defaultBorderRadius} - margin-right: 0.6rem; - } + #temperature { + color: ${nord.frost.nord9}; + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${defaultCenterOptions} + border-radius: 0 + } - /* ------------- */ - '' + cfg.extraModulesStyle or ''''; + /* ------------- */ + + #tray { + background-color: ${nord.polarNight.nord0}; + ${defaultOpacity} + ${defaultCenterOptions} + ${defaultBorderRadius} + margin-right: 0.6rem; + } + + /* ------------- */ + '' + + cfg.extraModulesStyle or ''''; }; }; } diff --git a/modules/home/programs/waybar/options.nix b/modules/home/programs/waybar/options.nix index 453d0b5..8571bc5 100644 --- a/modules/home/programs/waybar/options.nix +++ b/modules/home/programs/waybar/options.nix @@ -42,7 +42,7 @@ in modules-right = mkOption { type = with types; listOf str; - default = []; + default = [ ]; }; networkInterface = mkOption { @@ -92,4 +92,4 @@ in # default = { }; # }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/waybar/scripts/hass.nix b/modules/home/programs/waybar/scripts/hass.nix index 1dbe288..1bdff04 100755 --- a/modules/home/programs/waybar/scripts/hass.nix +++ b/modules/home/programs/waybar/scripts/hass.nix @@ -1,4 +1,10 @@ -{ config, lib, namespace, pkgs, ... }: +{ + config, + lib, + namespace, + pkgs, + ... +}: let cfg = config.mjallen.programs.waybar; diff --git a/modules/home/programs/waybar/scripts/weather.nix b/modules/home/programs/waybar/scripts/weather.nix index 36740f2..10ee8bb 100644 --- a/modules/home/programs/waybar/scripts/weather.nix +++ b/modules/home/programs/waybar/scripts/weather.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.mjallen.programs.waybar; diff --git a/modules/home/programs/wlogout/default.nix b/modules/home/programs/wlogout/default.nix index ad92a90..5def23d 100644 --- a/modules/home/programs/wlogout/default.nix +++ b/modules/home/programs/wlogout/default.nix @@ -5,7 +5,7 @@ let nord = import ../../desktop/theme/nord.nix; in { - imports = [ ./options.nix ]; + imports = [ ./options.nix ]; config = mkIf cfg.enable { programs.wlogout = { enable = false; @@ -101,4 +101,4 @@ in ''; }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/wlogout/options.nix b/modules/home/programs/wlogout/options.nix index fc51271..a019f74 100644 --- a/modules/home/programs/wlogout/options.nix +++ b/modules/home/programs/wlogout/options.nix @@ -9,4 +9,4 @@ with lib; default = "Deja Vu Sans"; }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/wofi/options.nix b/modules/home/programs/wofi/options.nix index 0eb6a64..8389599 100644 --- a/modules/home/programs/wofi/options.nix +++ b/modules/home/programs/wofi/options.nix @@ -9,4 +9,4 @@ with lib; default = "Deja Vu Sans"; }; }; -} \ No newline at end of file +} diff --git a/modules/home/programs/zsh/default.nix b/modules/home/programs/zsh/default.nix index 6298f16..7ac5ae8 100644 --- a/modules/home/programs/zsh/default.nix +++ b/modules/home/programs/zsh/default.nix @@ -26,4 +26,4 @@ in # fi # ''; }; -} \ No newline at end of file +} diff --git a/modules/home/sops/default.nix b/modules/home/sops/default.nix index 4473c09..34f1166 100644 --- a/modules/home/sops/default.nix +++ b/modules/home/sops/default.nix @@ -1,4 +1,9 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: let cfg = config.mjallen.sops; @@ -25,4 +30,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/modules/home/sops/options.nix b/modules/home/sops/options.nix index 7fda5ea..bd7485a 100644 --- a/modules/home/sops/options.nix +++ b/modules/home/sops/options.nix @@ -9,4 +9,4 @@ with lib; default = null; }; }; -} \ No newline at end of file +} diff --git a/modules/home/user/default.nix b/modules/home/user/default.nix index 8512ff9..d48af7b 100644 --- a/modules/home/user/default.nix +++ b/modules/home/user/default.nix @@ -34,7 +34,7 @@ in default = "Austin Horstman"; description = "The full name of the user."; }; - home = mkOption { + home = mkOption { type = (types.nullOr types.str); default = home-directory; description = "The user's home directory."; @@ -154,4 +154,4 @@ in }; } ]); -} \ No newline at end of file +} diff --git a/modules/nixos/actual/default.nix b/modules/nixos/actual/default.nix index 23ad96b..60c2c4b 100644 --- a/modules/nixos/actual/default.nix +++ b/modules/nixos/actual/default.nix @@ -1,4 +1,9 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: with lib; let cfg = config.nas-apps.actual; @@ -24,7 +29,8 @@ in }; }; - config = { lib, ... }: + config = + { lib, ... }: { services.actual = { enable = true; @@ -63,13 +69,13 @@ in ''; systemd.services = { - actual = { + actual = { environment.ACTUAL_CONFIG_PATH = lib.mkForce "${dataDir}/config.json"; serviceConfig = { ExecStart = lib.mkForce "${pkgs.actual-server}/bin/actual-server --config ${dataDir}/config.json"; WorkingDirectory = lib.mkForce dataDir; StateDirectory = lib.mkForce dataDir; - StateDirectoryMode = lib.mkForce 0700; + StateDirectoryMode = lib.mkForce 700; DynamicUser = lib.mkForce false; ProtectSystem = lib.mkForce null; }; diff --git a/modules/nixos/amd/default.nix b/modules/nixos/amd/default.nix index f7bc3f2..85b8a44 100755 --- a/modules/nixos/amd/default.nix +++ b/modules/nixos/amd/default.nix @@ -6,7 +6,7 @@ }: let cfg = config.share.hardware.amd; - pkgsVersion = pkgs;#.unstable; + pkgsVersion = pkgs; # .unstable; in { imports = [ ./options.nix ]; diff --git a/modules/nixos/appimage/default.nix b/modules/nixos/appimage/default.nix index cde074e..b9df5f6 100644 --- a/modules/nixos/appimage/default.nix +++ b/modules/nixos/appimage/default.nix @@ -11,4 +11,4 @@ magicOrExtension = "\\x7fELF....AI\\x02"; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/arrs/default.nix b/modules/nixos/arrs/default.nix index d3340ba..28fcee7 100755 --- a/modules/nixos/arrs/default.nix +++ b/modules/nixos/arrs/default.nix @@ -40,9 +40,11 @@ in { nixpkgs.config = { allowUnfree = lib.mkForce true; - allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ - "unrar" - ]; + allowUnfreePredicate = + pkg: + builtins.elem (lib.getName pkg) [ + "unrar" + ]; }; # Enable radarr service @@ -207,7 +209,7 @@ in }; networking = { - nat = { + nat = { forwardPorts = [ { destination = "${cfg.localAddress}:${toString cfg.radarr.port}"; @@ -232,8 +234,22 @@ in ]; }; firewall = { - allowedTCPPorts = [ cfg.radarr.port cfg.sonarr.port cfg.sabnzbd.port 8080 cfg.deluge.port cfg.jackett.port ]; - allowedUDPPorts = [ cfg.radarr.port cfg.sonarr.port cfg.sabnzbd.port 8080 cfg.deluge.port cfg.jackett.port ]; + allowedTCPPorts = [ + cfg.radarr.port + cfg.sonarr.port + cfg.sabnzbd.port + 8080 + cfg.deluge.port + cfg.jackett.port + ]; + allowedUDPPorts = [ + cfg.radarr.port + cfg.sonarr.port + cfg.sabnzbd.port + 8080 + cfg.deluge.port + cfg.jackett.port + ]; }; }; }; diff --git a/modules/nixos/boot/default.nix b/modules/nixos/boot/default.nix index 49d9ea2..688ebf4 100644 --- a/modules/nixos/boot/default.nix +++ b/modules/nixos/boot/default.nix @@ -1,4 +1,9 @@ -{ pkgs, system, lib, ... }: +{ + pkgs, + system, + lib, + ... +}: let isArm = ("aarch64-linux" == system); in @@ -14,7 +19,7 @@ in mask = ''\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff''; openBinary = true; interpreter = "${pkgs.box64}/bin/box64"; - preserveArgvZero = true; + preserveArgvZero = true; matchCredentials = true; fixBinary = false; }; @@ -22,4 +27,4 @@ in }; zramSwap.enable = true; -} \ No newline at end of file +} diff --git a/modules/nixos/boot/lanzaboote/default.nix b/modules/nixos/boot/lanzaboote/default.nix index 834677b..1e2c7cd 100644 --- a/modules/nixos/boot/lanzaboote/default.nix +++ b/modules/nixos/boot/lanzaboote/default.nix @@ -1,4 +1,9 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: with lib; let cfg = config.${namespace}.bootloader.lanzaboote; @@ -15,4 +20,4 @@ in configurationLimit = cfg.configLimit; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/boot/lanzaboote/options.nix b/modules/nixos/boot/lanzaboote/options.nix index dc556f6..ddde028 100644 --- a/modules/nixos/boot/lanzaboote/options.nix +++ b/modules/nixos/boot/lanzaboote/options.nix @@ -9,4 +9,4 @@ with lib; default = 10; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/boot/plymouth/default.nix b/modules/nixos/boot/plymouth/default.nix index 702105c..d7f1e9f 100644 --- a/modules/nixos/boot/plymouth/default.nix +++ b/modules/nixos/boot/plymouth/default.nix @@ -3,4 +3,4 @@ boot.plymouth = { enable = true; }; -} \ No newline at end of file +} diff --git a/modules/nixos/crowdsec/default.nix b/modules/nixos/crowdsec/default.nix index 2890097..cacc4a4 100755 --- a/modules/nixos/crowdsec/default.nix +++ b/modules/nixos/crowdsec/default.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: with lib; let cfg = config.nas-apps.crowdsec; @@ -7,23 +12,25 @@ in imports = [ ./options.nix ]; config = lib.mkIf cfg.enable { services = { - crowdsec = let - yaml = (pkgs.formats.yaml {}).generate; - acquisitions_file = yaml "acquisitions.yaml" { - source = "journalctl"; - journalctl_filter = ["_SYSTEMD_UNIT=sshd.service"]; - labels.type = "syslog"; - }; - in { - enable = true; - enrollKeyFile = "${cfg.dataDir}/enroll.key"; - settings = { - crowdsec_service.acquisition_path = acquisitions_file; - api.server = { - listen_uri = "0.0.0.0:${toString cfg.port}"; + crowdsec = + let + yaml = (pkgs.formats.yaml { }).generate; + acquisitions_file = yaml "acquisitions.yaml" { + source = "journalctl"; + journalctl_filter = [ "_SYSTEMD_UNIT=sshd.service" ]; + labels.type = "syslog"; + }; + in + { + enable = true; + enrollKeyFile = "${cfg.dataDir}/enroll.key"; + settings = { + crowdsec_service.acquisition_path = acquisitions_file; + api.server = { + listen_uri = "0.0.0.0:${toString cfg.port}"; + }; }; }; - }; crowdsec-firewall-bouncer = { enable = true; @@ -35,17 +42,19 @@ in }; systemd.services.crowdsec.serviceConfig = { - ExecStartPre = let - script = pkgs.writeScriptBin "register-bouncer" '' - #!${pkgs.runtimeShell} - set -eu - set -o pipefail + ExecStartPre = + let + script = pkgs.writeScriptBin "register-bouncer" '' + #!${pkgs.runtimeShell} + set -eu + set -o pipefail - if ! cscli bouncers list | grep -q "nas-bouncer"; then - cscli bouncers add "nas-bouncer" --key "${cfg.apiKey}" - fi - ''; - in ["${script}/bin/register-bouncer"]; + if ! cscli bouncers list | grep -q "nas-bouncer"; then + cscli bouncers add "nas-bouncer" --key "${cfg.apiKey}" + fi + ''; + in + [ "${script}/bin/register-bouncer" ]; }; networking = { @@ -55,4 +64,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/desktop/cosmic/default.nix b/modules/nixos/desktop/cosmic/default.nix index 7fa4a95..0901bf8 100755 --- a/modules/nixos/desktop/cosmic/default.nix +++ b/modules/nixos/desktop/cosmic/default.nix @@ -1,4 +1,9 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: let cfg = config.${namespace}.desktop.cosmic; in diff --git a/modules/nixos/desktop/cosmic/options.nix b/modules/nixos/desktop/cosmic/options.nix index faa07e6..1458bd8 100644 --- a/modules/nixos/desktop/cosmic/options.nix +++ b/modules/nixos/desktop/cosmic/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.desktop.cosmic = { enable = mkEnableOption "enable cosmic settings"; }; -} \ No newline at end of file +} diff --git a/modules/nixos/desktop/gnome/default.nix b/modules/nixos/desktop/gnome/default.nix index f3cb352..4479dcf 100644 --- a/modules/nixos/desktop/gnome/default.nix +++ b/modules/nixos/desktop/gnome/default.nix @@ -1,4 +1,10 @@ -{ config, lib, pkgs, namespace, ... }: +{ + config, + lib, + pkgs, + namespace, + ... +}: let cfg = config.${namespace}.desktop.gnome; in @@ -17,7 +23,7 @@ in gnome.gnome-remote-desktop.enable = true; }; - + xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; programs = { @@ -27,4 +33,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/desktop/hyprland/default.nix b/modules/nixos/desktop/hyprland/default.nix index b6f124b..ccb2bbb 100755 --- a/modules/nixos/desktop/hyprland/default.nix +++ b/modules/nixos/desktop/hyprland/default.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, namespace, ... }: +{ + config, + pkgs, + lib, + namespace, + ... +}: let cfg = config.${namespace}.desktop.hyprland; @@ -26,7 +32,10 @@ in imports = [ ../../../home/desktop/hyprland/options.nix ]; config = lib.mkIf cfg.enable { - environment.systemPackages = [ bing-wallpaper pkgs.jq ]; + environment.systemPackages = [ + bing-wallpaper + pkgs.jq + ]; services = { displayManager = { @@ -66,7 +75,7 @@ in xwayland.enable = true; portalPackage = lib.mkDefault pkgs.xdg-desktop-portal-hyprland; }; - + nm-applet.enable = true; }; @@ -121,18 +130,18 @@ in reload-bing-wallpaper = { description = "Timer for reload-bing-wallpaper"; wantedBy = [ "timers.target" ]; - + # Timer configuration timerConfig = { - OnCalendar = "daily"; # Check every day - Persistent = true; # Run immediately if last run was missed + OnCalendar = "daily"; # Check every day + Persistent = true; # Run immediately if last run was missed Unit = "reload-bing-wallpaper.service"; }; }; }; }; extraConfig = '' - DefaultTimeoutStopSec=10s + DefaultTimeoutStopSec=10s ''; }; diff --git a/modules/nixos/desktop/hyprland/settings.nix b/modules/nixos/desktop/hyprland/settings.nix index ec3cb54..c29ed5c 100644 --- a/modules/nixos/desktop/hyprland/settings.nix +++ b/modules/nixos/desktop/hyprland/settings.nix @@ -1,10 +1,10 @@ { pkgs, ... }: let nord = import ./theme.nix; - themeSize = "compact"; # [ "standard" "compact" ] - themeAccent = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] - themeVariant = "nord"; # [ "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" "black" "rimless" "normal" "float" ] - themeColor = "dark"; # [ "standard" "light" "dark" ] + themeSize = "compact"; # [ "standard" "compact" ] + themeAccent = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] + themeVariant = "nord"; # [ "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" "black" "rimless" "normal" "float" ] + themeColor = "dark"; # [ "standard" "light" "dark" ] iconThemeVariant = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ] iconScheme = "nord"; # [ "default" "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" ] @@ -105,4 +105,4 @@ in }; theme = nord; -} \ No newline at end of file +} diff --git a/modules/nixos/disko/aarch64-linux/default.nix b/modules/nixos/disko/aarch64-linux/default.nix index 5984491..9c66f36 100644 --- a/modules/nixos/disko/aarch64-linux/default.nix +++ b/modules/nixos/disko/aarch64-linux/default.nix @@ -1,4 +1,9 @@ -{ config, lib, system, ... }: +{ + config, + lib, + system, + ... +}: let isArm = builtins.match "aarch64*" system != null; rootDisk = "/dev/nvme0n1"; diff --git a/modules/nixos/disko/options.nix b/modules/nixos/disko/options.nix index ce3cd83..4889465 100644 --- a/modules/nixos/disko/options.nix +++ b/modules/nixos/disko/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.hardware.disko = { enable = mkEnableOption "enable disko"; }; -} \ No newline at end of file +} diff --git a/modules/nixos/disko/x86_64-linux/default.nix b/modules/nixos/disko/x86_64-linux/default.nix index 57cdf55..decf7ef 100644 --- a/modules/nixos/disko/x86_64-linux/default.nix +++ b/modules/nixos/disko/x86_64-linux/default.nix @@ -1,4 +1,10 @@ -{ config, lib, system, namespace, ... }: +{ + config, + lib, + system, + namespace, + ... +}: let cfg = config.${namespace}.hardware.disko; isArm = builtins.match "aarch64*" system != null; diff --git a/modules/nixos/fonts/default.nix b/modules/nixos/fonts/default.nix index 6750b14..90ba4fa 100644 --- a/modules/nixos/fonts/default.nix +++ b/modules/nixos/fonts/default.nix @@ -1,11 +1,14 @@ { lib, pkgs, ... }: { - fonts.packages = with pkgs; [ - font-awesome - noto-fonts - noto-fonts-color-emoji - meslo-lgs-nf - ] ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); + fonts.packages = + with pkgs; + [ + font-awesome + noto-fonts + noto-fonts-color-emoji + meslo-lgs-nf + ] + ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); fonts.fontconfig.defaultFonts = { emoji = [ diff --git a/modules/nixos/gaming/default.nix b/modules/nixos/gaming/default.nix index 64d1249..a552bf8 100755 --- a/modules/nixos/gaming/default.nix +++ b/modules/nixos/gaming/default.nix @@ -1,7 +1,12 @@ -{ lib, config, pkgs, ... }: +{ + lib, + config, + pkgs, + ... +}: let cfg = config.share.gaming; - pkgsVersion = pkgs; #.unstable; + pkgsVersion = pkgs; # .unstable; in { imports = [ ./options.nix ]; @@ -17,7 +22,7 @@ in remotePlay.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; - extraCompatPackages = with pkgsVersion; [ proton-ge-bin]; + extraCompatPackages = with pkgsVersion; [ proton-ge-bin ]; gamescopeSession = { enable = true; args = [ diff --git a/modules/nixos/gitea/default.nix b/modules/nixos/gitea/default.nix index 0e97053..c173537 100644 --- a/modules/nixos/gitea/default.nix +++ b/modules/nixos/gitea/default.nix @@ -34,7 +34,8 @@ in }; }; - config = { lib, ... }: + config = + { lib, ... }: { services.gitea = { enable = true; @@ -71,7 +72,10 @@ in networking = { firewall = { enable = true; - allowedTCPPorts = [ cfg.httpPort cfg.sshPort ]; + allowedTCPPorts = [ + cfg.httpPort + cfg.sshPort + ]; }; # Use systemd-resolved inside the container # Workaround for bug https://github.com/NixOS/nixpkgs/issues/162686 @@ -122,8 +126,14 @@ in ]; }; firewall = { - allowedTCPPorts = [ cfg.httpPort cfg.sshPort ]; - allowedUDPPorts = [ cfg.httpPort cfg.sshPort ]; + allowedTCPPorts = [ + cfg.httpPort + cfg.sshPort + ]; + allowedUDPPorts = [ + cfg.httpPort + cfg.sshPort + ]; }; }; }; diff --git a/modules/nixos/hardware/btrfs/default.nix b/modules/nixos/hardware/btrfs/default.nix index f5366bb..929d565 100644 --- a/modules/nixos/hardware/btrfs/default.nix +++ b/modules/nixos/hardware/btrfs/default.nix @@ -11,4 +11,4 @@ "/home" ]; }; -} \ No newline at end of file +} diff --git a/modules/nixos/hardware/default.nix b/modules/nixos/hardware/default.nix index a293ebc..3149ba0 100644 --- a/modules/nixos/hardware/default.nix +++ b/modules/nixos/hardware/default.nix @@ -1,6 +1,6 @@ { lib, system, ... }: let - isArm = "aarch64-linux" == system; + isArm = "aarch64-linux" == system; in { hardware = { diff --git a/modules/nixos/home/default.nix b/modules/nixos/home/default.nix index 52579e8..a1ec724 100644 --- a/modules/nixos/home/default.nix +++ b/modules/nixos/home/default.nix @@ -45,21 +45,26 @@ in useGlobalPkgs = true; useUserPackages = true; - # Pass inputs so external modules can access them - extraSpecialArgs = { - inherit inputs; + # Pass inputs so external modules can access them + extraSpecialArgs = { + inherit inputs; }; - - # Make ALL external HM modules available globally - sharedModules = with inputs; [ - sops-nix.homeManagerModules.sops - # Add any other external HM modules here - ] ++ (if (!isArm) then with inputs; [ steam-rom-manager.homeManagerModules.default ] else [ ]); - users.${config.${namespace}.user.name} = lib.mkAliasDefinitions options.${namespace}.home.extraOptions; + # Make ALL external HM modules available globally + sharedModules = + with inputs; + [ + sops-nix.homeManagerModules.sops + # Add any other external HM modules here + ] + ++ (if (!isArm) then with inputs; [ steam-rom-manager.homeManagerModules.default ] else [ ]); + + users.${config.${namespace}.user.name} = + lib.mkAliasDefinitions + options.${namespace}.home.extraOptions; # users.admin = lib.mkAliasDefinitions options.${namespace}.home.extraOptions; verbose = true; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/homeassistant/default.nix b/modules/nixos/homeassistant/default.nix index 89c8a2f..da09ed1 100755 --- a/modules/nixos/homeassistant/default.nix +++ b/modules/nixos/homeassistant/default.nix @@ -1,9 +1,15 @@ -{ config, lib, pkgs, namespace, ... }: +{ + config, + lib, + pkgs, + namespace, + ... +}: let cfg = config.${namespace}.services.home-assistant; mosquittoPort = 1883; zigbee2mqttPort = 8080; - + # In configuration.nix or a separate file python-steam = pkgs.python3Packages.buildPythonPackage rec { pname = "steam"; @@ -74,7 +80,7 @@ in "wyoming" "zha" ]; - + customComponents = with pkgs.home-assistant-custom-components; [ # nixpkgs auth-header @@ -106,113 +112,114 @@ in zigbee2mqtt-networkmap ]; # use postgresql instead of sqlite - extraPackages = ps: with ps; [ - # Core functionality - aiohttp - aiodns - paho-mqtt - pillow - pytz - pyyaml - sqlalchemy - - # Discovery & networking - zeroconf - netdisco - ifaddr - ssdp - - # Device protocols - pyserial # Serial communications - bluepy # Bluetooth LE - - # Smart home ecosystems - mutagen # Media file metadata - pysonos # Sonos - pywemo # Belkin WeMo - python-miio # Xiaomi devices - python-kasa # TP-Link - - # Sensors & monitoring - meteocalc # Weather calculations - speedtest-cli # Internet speed - - # Visualization & UI - matplotlib # Graphing - - # Security - bcrypt - cryptography - pyjwt - - # Media - ha-ffmpeg # Camera streams - - # Specialized integrations - python-matter-server # Matter protocol - - # System integrations - psutil # System monitoring - - psycopg2 - numpy - hassil - pyturbojpeg - paho-mqtt - pychromecast - pyatv - python-otbr-api - brother - pyipp - govee-ble - adguardhome - nextcord - aiogithubapi - jellyfin-apiclient-python - pylitterbot - dateparser - aionut - nextcloudmonitor - ollama - pynecil - aiopyarr - pysabnzbd - getmac - zigpy - bellows # For Zigbee EmberZNet-based adapters - zigpy-xbee # For XBee adapters - zigpy-deconz # For ConBee/RaspBee adapters - pyicloud # iCloud - pyatv # Apple TV - opencv-python - face-recognition - ibeacon-ble - gehomesdk - onedrive-personal-sdk - python-roborock - python-steam - apple-weatherkit + extraPackages = + ps: with ps; [ + # Core functionality + aiohttp + aiodns + paho-mqtt + pillow + pytz + pyyaml + sqlalchemy - samsungctl - samsungtvws + # Discovery & networking + zeroconf + netdisco + ifaddr + ssdp - aiohomekit + # Device protocols + pyserial # Serial communications + bluepy # Bluetooth LE + + # Smart home ecosystems + mutagen # Media file metadata + pysonos # Sonos + pywemo # Belkin WeMo + python-miio # Xiaomi devices + python-kasa # TP-Link + + # Sensors & monitoring + meteocalc # Weather calculations + speedtest-cli # Internet speed + + # Visualization & UI + matplotlib # Graphing + + # Security + bcrypt + cryptography + pyjwt + + # Media + ha-ffmpeg # Camera streams + + # Specialized integrations + python-matter-server # Matter protocol + + # System integrations + psutil # System monitoring + + psycopg2 + numpy + hassil + pyturbojpeg + paho-mqtt + pychromecast + pyatv + python-otbr-api + brother + pyipp + govee-ble + adguardhome + nextcord + aiogithubapi + jellyfin-apiclient-python + pylitterbot + dateparser + aionut + nextcloudmonitor + ollama + pynecil + aiopyarr + pysabnzbd + getmac + zigpy + bellows # For Zigbee EmberZNet-based adapters + zigpy-xbee # For XBee adapters + zigpy-deconz # For ConBee/RaspBee adapters + pyicloud # iCloud + pyatv # Apple TV + opencv-python + face-recognition + ibeacon-ble + gehomesdk + onedrive-personal-sdk + python-roborock + python-steam + apple-weatherkit + + samsungctl + samsungtvws + + aiohomekit + + icmplib + aioelectricitymaps + wyoming + pysmartthings + wakeonlan + ephem + ]; - icmplib - aioelectricitymaps - wyoming - pysmartthings - wakeonlan - ephem - ]; - config = { # Includes dependencies for a basic setup # https://www.home-assistant.io/integrations/default_config/ - default_config = {}; + default_config = { }; cloud = false; - + frontend = { themes = "!include_dir_merge_named themes"; }; @@ -262,10 +269,12 @@ in postgresql = { enable = true; ensureDatabases = [ "hass" ]; - ensureUsers = [{ - name = "hass"; - ensureDBOwnership = true; - }]; + ensureUsers = [ + { + name = "hass"; + ensureDBOwnership = true; + } + ]; }; # Enable and configure Mosquitto MQTT broker @@ -303,7 +312,7 @@ in permit_join = true; # Web interface frontend = { - port = zigbee2mqttPort; # Choose an available port + port = zigbee2mqttPort; # Choose an available port }; # MQTT configuration mqtt = { @@ -380,24 +389,24 @@ in }; # Enable required hardware support for the Zigbee adapter - hardware.bluetooth.enable = true; # Some adapters use Bluetooth - + hardware.bluetooth.enable = true; # Some adapters use Bluetooth + # Ensure proper permissions for Zigbee USB devices # services.udev.extraRules = '' # # For CC2531, CC2530, CC1352P-2, CC2538 and similar adapters # SUBSYSTEM=="tty", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="16a8", SYMLINK+="zigbee", MODE="0666" # SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="zigbee", MODE="0666" - + # # For ConBee/RaspBee by Dresden Elektronik # SUBSYSTEM=="tty", ATTRS{idVendor}=="1cf1", ATTRS{idProduct}=="0030", SYMLINK+="zigbee", MODE="0666" - + # # For Electrolama zig-a-zig-ah (zzh!) # SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="zigbee", MODE="0666" # ''; environment.systemPackages = with pkgs; [ - mosquitto # MQTT command-line tools - usbutils # For lsusb to help identify your adapter + mosquitto # MQTT command-line tools + usbutils # For lsusb to help identify your adapter ]; networking.firewall.allowedTCPPorts = [ diff --git a/modules/nixos/homeassistant/options.nix b/modules/nixos/homeassistant/options.nix index 47b1f2b..c69c4de 100644 --- a/modules/nixos/homeassistant/options.nix +++ b/modules/nixos/homeassistant/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.services.home-assistant = { enable = mkEnableOption "enable home-assistant"; }; -} \ No newline at end of file +} diff --git a/modules/nixos/immich/default.nix b/modules/nixos/immich/default.nix index 14316e0..f76a8c1 100755 --- a/modules/nixos/immich/default.nix +++ b/modules/nixos/immich/default.nix @@ -1,4 +1,9 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: with lib; let cfg = config.${namespace}.services.immich; @@ -8,7 +13,7 @@ let dbPassword = config.sops.secrets."jallen-nas/immich/db-password".path; in { - imports = [ ./options.nix ]; + imports = [ ./options.nix ]; config = mkIf cfg.enable { # Enable immich service diff --git a/modules/nixos/immich/options.nix b/modules/nixos/immich/options.nix index a003eae..e54acae 100644 --- a/modules/nixos/immich/options.nix +++ b/modules/nixos/immich/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.services.immich = { enable = mkEnableOption "enable immich"; }; -} \ No newline at end of file +} diff --git a/modules/nixos/jellyfin/default.nix b/modules/nixos/jellyfin/default.nix index 3714d6c..20e0199 100755 --- a/modules/nixos/jellyfin/default.nix +++ b/modules/nixos/jellyfin/default.nix @@ -1,10 +1,15 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: with lib; let cfg = config.${namespace}.services.jellyfin; in { - imports = [ ./options.nix ]; + imports = [ ./options.nix ]; config = mkIf cfg.enable { services.jellyfin = { diff --git a/modules/nixos/jellyfin/options.nix b/modules/nixos/jellyfin/options.nix index 6187c4d..1f4353a 100644 --- a/modules/nixos/jellyfin/options.nix +++ b/modules/nixos/jellyfin/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.services.jellyfin = { enable = mkEnableOption "enable jellyfin"; }; -} \ No newline at end of file +} diff --git a/modules/nixos/jellyseerr/default.nix b/modules/nixos/jellyseerr/default.nix index 4d61a09..411c5c0 100755 --- a/modules/nixos/jellyseerr/default.nix +++ b/modules/nixos/jellyseerr/default.nix @@ -1,4 +1,9 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: with lib; let cfg = config.${namespace}.services.jellyseerr; @@ -7,7 +12,7 @@ let dataDir = "/var/lib/private/jellyseerr"; in { - imports = [ ./options.nix ]; + imports = [ ./options.nix ]; config = mkIf cfg.enable { containers.jellyseerr = { diff --git a/modules/nixos/jellyseerr/options.nix b/modules/nixos/jellyseerr/options.nix index 8960a13..f5ebe74 100644 --- a/modules/nixos/jellyseerr/options.nix +++ b/modules/nixos/jellyseerr/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.services.jellyseerr = { enable = mkEnableOption "enable jellyseerr"; }; -} \ No newline at end of file +} diff --git a/modules/nixos/lubelogger/default.nix b/modules/nixos/lubelogger/default.nix index ea209d3..f1d833c 100644 --- a/modules/nixos/lubelogger/default.nix +++ b/modules/nixos/lubelogger/default.nix @@ -1,17 +1,22 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: with lib; let cfg = config.${namespace}.services.lubelogger; in { - imports = [ ./options.nix ]; + imports = [ ./options.nix ]; config = mkIf cfg.enable { virtualisation.oci-containers.containers.lubelogger = { autoStart = true; image = "ghcr.io/hargata/lubelogger"; ports = [ "6754:8080" ]; - volumes = [ + volumes = [ "/media/nas/ssd/nix-app-data/lubelogger:/App/data" "/media/nas/ssd/nix-app-data/lubelogger/keys:/root/.aspnet/DataProtection-Keys" ]; @@ -25,4 +30,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/lubelogger/options.nix b/modules/nixos/lubelogger/options.nix index 1b062f2..f4b73db 100644 --- a/modules/nixos/lubelogger/options.nix +++ b/modules/nixos/lubelogger/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.services.lubelogger = { enable = mkEnableOption "enable lubelogger"; }; -} \ No newline at end of file +} diff --git a/modules/nixos/network/default.nix b/modules/nixos/network/default.nix index 6df1817..903baf6 100644 --- a/modules/nixos/network/default.nix +++ b/modules/nixos/network/default.nix @@ -10,7 +10,7 @@ let in { options.${namespace}.network = with types; { - hostName = lib.mkOption { + hostName = lib.mkOption { type = str; default = "nixos"; description = "The hostname of the system."; @@ -56,8 +56,8 @@ in id = "Joey's Jungle 6G"; type = "wifi"; }; - ipv4 = if (cfg.ipv4.method == "auto") - then + ipv4 = + if (cfg.ipv4.method == "auto") then { method = "auto"; } @@ -87,8 +87,8 @@ in id = "Joey's Jungle 5G"; type = "wifi"; }; - ipv4 = if (cfg.ipv4.method == "auto") - then + ipv4 = + if (cfg.ipv4.method == "auto") then { method = "auto"; } @@ -126,4 +126,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/nextcloud/default.nix b/modules/nixos/nextcloud/default.nix index b37dae8..6ab0f0e 100755 --- a/modules/nixos/nextcloud/default.nix +++ b/modules/nixos/nextcloud/default.nix @@ -1,11 +1,17 @@ -{ config, lib, pkgs, namespace, ... }: +{ + config, + lib, + pkgs, + namespace, + ... +}: with lib; let cfg = config.${namespace}.services.nextcloud; adminpass = config.sops.secrets."jallen-nas/nextcloud/adminpassword".path; - secretsFile = config.sops.secrets."jallen-nas/nextcloud/smtp_settings".path; - jwtSecretFile = config.sops.secrets."jallen-nas/onlyoffice-key".path; + secretsFile = config.sops.secrets."jallen-nas/nextcloud/smtp_settings".path; + jwtSecretFile = config.sops.secrets."jallen-nas/onlyoffice-key".path; nextcloudUserId = config.users.users.nix-apps.uid; nextcloudGroupId = config.users.groups.jallen-nas.gid; hostAddress = "10.0.1.3"; @@ -15,7 +21,7 @@ let onlyofficePortExt = 9943; in { - imports = [ ./options.nix ]; + imports = [ ./options.nix ]; config = mkIf cfg.enable { containers.nextcloud = { @@ -33,7 +39,7 @@ in isReadOnly = true; mountPoint = "/run/secrets/jallen-nas/nextcloud"; }; - + secrets2 = { hostPath = "/run/secrets/jallen-nas/onlyoffice-key"; isReadOnly = true; @@ -60,12 +66,17 @@ in }; config = - { pkgs, lib, namespace, ... }: + { + pkgs, + lib, + namespace, + ... + }: { nixpkgs.config.allowUnfree = true; networking.extraHosts = '' - ${hostAddress} host.containers protonmail-bridge - ''; + ${hostAddress} host.containers protonmail-bridge + ''; services = { nextcloud = { diff --git a/modules/nixos/nextcloud/options.nix b/modules/nixos/nextcloud/options.nix index c34526e..bb90614 100644 --- a/modules/nixos/nextcloud/options.nix +++ b/modules/nixos/nextcloud/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.services.nextcloud = { enable = mkEnableOption "enable nextcloud"; }; -} \ No newline at end of file +} diff --git a/modules/nixos/nix/default.nix b/modules/nixos/nix/default.nix index bd28867..d55c72a 100644 --- a/modules/nixos/nix/default.nix +++ b/modules/nixos/nix/default.nix @@ -33,4 +33,4 @@ ]; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/nvidia/default.nix b/modules/nixos/nvidia/default.nix index 3c3a7f2..1028bfb 100755 --- a/modules/nixos/nvidia/default.nix +++ b/modules/nixos/nvidia/default.nix @@ -15,11 +15,11 @@ in hardware = { # Nvidia nvidia = { - package = - if cfg.enableBeta then - config.boot.kernelPackages.nvidiaPackages.beta - else - config.boot.kernelPackages.nvidiaPackages.latest; + package = + if cfg.enableBeta then + config.boot.kernelPackages.nvidiaPackages.beta + else + config.boot.kernelPackages.nvidiaPackages.latest; # Modesetting is required. modesetting.enable = true; @@ -33,9 +33,9 @@ in # Use the NVidia open source kernel module (not to be confused with the # independent third-party "nouveau" open source driver). - # Support is limited to the Turing and later architectures. Full list of - # supported GPUs is at: - # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # Support is limited to the Turing and later architectures. Full list of + # supported GPUs is at: + # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus # Only available from driver 515.43.04+ # Currently alpha-quality/buggy, so false is currently the recommended setting. open = cfg.enableOpen; diff --git a/modules/nixos/ollama/default.nix b/modules/nixos/ollama/default.nix index 2bf84fa..17cf37c 100755 --- a/modules/nixos/ollama/default.nix +++ b/modules/nixos/ollama/default.nix @@ -1,13 +1,19 @@ -{ config, lib, pkgs, namespace, ... }: +{ + config, + lib, + pkgs, + namespace, + ... +}: with lib; let cfg = config.${namespace}.services.ollama; llamaPackage = pkgs.llama-cpp.overrideAttrs (old: { src = pkgs.fetchFromGitHub { - owner = "ggml-org"; - repo = "llama.cpp"; - rev = "b4920"; + owner = "ggml-org"; + repo = "llama.cpp"; + rev = "b4920"; sha256 = "sha256-SnQIeY74JpAPRMxWcpklDH5D4CQvAgi0GYx5+ECk2J4="; }; # Optionally override other attributes if you need to @@ -16,7 +22,7 @@ let }); in { - imports = [ ./options.nix ]; + imports = [ ./options.nix ]; config = mkIf cfg.enable { services.ollama = { diff --git a/modules/nixos/ollama/options.nix b/modules/nixos/ollama/options.nix index f0400f3..1ded552 100644 --- a/modules/nixos/ollama/options.nix +++ b/modules/nixos/ollama/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.services.ollama = { enable = mkEnableOption "enable ollama"; }; -} \ No newline at end of file +} diff --git a/modules/nixos/paperless/default.nix b/modules/nixos/paperless/default.nix index dd86340..723708c 100755 --- a/modules/nixos/paperless/default.nix +++ b/modules/nixos/paperless/default.nix @@ -1,4 +1,9 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: with lib; let cfg = config.${namespace}.services.paperless; @@ -10,7 +15,7 @@ let paperlessPkg = pkgs.paperless-ngx; in { - imports = [ ./options.nix ]; + imports = [ ./options.nix ]; config = mkIf cfg.enable { containers.paperless = { diff --git a/modules/nixos/paperless/options.nix b/modules/nixos/paperless/options.nix index f3ce50e..56f29a0 100644 --- a/modules/nixos/paperless/options.nix +++ b/modules/nixos/paperless/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.services.paperless = { enable = mkEnableOption "enable paperless"; }; -} \ No newline at end of file +} diff --git a/modules/nixos/programs/default.nix b/modules/nixos/programs/default.nix index 0d9337c..f803ce2 100644 --- a/modules/nixos/programs/default.nix +++ b/modules/nixos/programs/default.nix @@ -75,4 +75,4 @@ nixd ]; }; -} \ No newline at end of file +} diff --git a/modules/nixos/security/default.nix b/modules/nixos/security/default.nix index 64e8dcd..372d702 100644 --- a/modules/nixos/security/default.nix +++ b/modules/nixos/security/default.nix @@ -28,4 +28,4 @@ ]; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/services/default.nix b/modules/nixos/services/default.nix index 29c25f1..fd7340e 100644 --- a/modules/nixos/services/default.nix +++ b/modules/nixos/services/default.nix @@ -1,7 +1,7 @@ { lib, pkgs, ... }: { services = { - + kmscon = { enable = lib.mkDefault false; hwRender = true; @@ -30,7 +30,7 @@ # Enable Avahi for .local hostname resolution avahi = { enable = lib.mkDefault true; - nssmdns4 = lib.mkDefault true; # For modern systems, use nssmdns4 instead of nssmdns + nssmdns4 = lib.mkDefault true; # For modern systems, use nssmdns4 instead of nssmdns openFirewall = lib.mkDefault true; publish = { enable = lib.mkDefault true; diff --git a/modules/nixos/shell/default.nix b/modules/nixos/shell/default.nix index 9bdba54..9d4e472 100644 --- a/modules/nixos/shell/default.nix +++ b/modules/nixos/shell/default.nix @@ -12,4 +12,4 @@ enableZshIntegration = lib.mkDefault true; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/traefik/default.nix b/modules/nixos/traefik/default.nix index 093631a..e37c03b 100755 --- a/modules/nixos/traefik/default.nix +++ b/modules/nixos/traefik/default.nix @@ -1,4 +1,9 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: with lib; let cfg = config.${namespace}.services.traefik; @@ -45,10 +50,10 @@ let metricsPort = 8082; forwardPorts = [ - httpPort - httpsPort - traefikPort - metricsPort + httpPort + httpsPort + traefikPort + metricsPort ]; # misc @@ -57,7 +62,7 @@ let authentikAddress = "http://${serverIp}:9000/outpost.goauthentik.io/auth/traefik"; in { - imports = [ ./options.nix ]; + imports = [ ./options.nix ]; config = mkIf cfg.enable { sops = { @@ -76,7 +81,9 @@ in "traefik.env" = { content = '' CLOUDFLARE_DNS_API_TOKEN = ${config.sops.placeholder."jallen-nas/traefik/cloudflare-dns-api-token"} - CLOUDFLARE_ZONE_API_TOKEN = ${config.sops.placeholder."jallen-nas/traefik/cloudflare-zone-api-token"} + CLOUDFLARE_ZONE_API_TOKEN = ${ + config.sops.placeholder."jallen-nas/traefik/cloudflare-zone-api-token" + } CLOUDFLARE_API_KEY = ${config.sops.placeholder."jallen-nas/traefik/cloudflare-api-key"} CLOUDFLARE_EMAIL = ${config.sops.placeholder."jallen-nas/traefik/cloudflare-email"} ''; @@ -95,7 +102,7 @@ in services.traefik = { enable = true; dataDir = dataDir; - group = "jallen-nas";#group; + group = "jallen-nas"; # group; environmentFiles = [ "${config.services.traefik.dataDir}/traefik.env" ]; # todo: sops staticConfigOptions = { @@ -129,7 +136,12 @@ in entryPoint = "metrics"; addEntryPointsLabels = true; addServicesLabels = true; - buckets = [0.1 0.3 1.2 5.0]; # Response time buckets + buckets = [ + 0.1 + 0.3 + 1.2 + 5.0 + ]; # Response time buckets }; }; @@ -215,8 +227,7 @@ in }; }; }; - internal-ipallowlist = - { + internal-ipallowlist = { ipAllowList = { sourceRange = [ "127.0.0.1/32" @@ -305,7 +316,10 @@ in entryPoints = [ "websecure" ]; rule = "HostRegexp(`{subdomain:[a-z]+}.mjallen.dev`) && PathPrefix(`/outpost.goauthentik.io/`)"; service = "auth"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; priority = 15; tls.certResolver = "letsencrypt"; }; @@ -314,21 +328,30 @@ in entryPoints = [ "websecure" ]; rule = "Host(`actual.${domain}`)"; service = "actual"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; tls.certResolver = "letsencrypt"; }; authentik = { entryPoints = [ "websecure" ]; rule = "Host(`authentik.${domain}`)"; service = "authentik"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; tls.certResolver = "letsencrypt"; }; cache = { entryPoints = [ "websecure" ]; rule = "Host(`cache.${domain}`)"; service = "cache"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; priority = 10; tls.certResolver = "letsencrypt"; }; @@ -336,21 +359,31 @@ in entryPoints = [ "websecure" ]; rule = "Host(`cloud.${domain}`)"; service = "cloud"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; tls.certResolver = "letsencrypt"; }; gitea = { entryPoints = [ "websecure" ]; rule = "Host(`gitea.${domain}`)"; service = "gitea"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; tls.certResolver = "letsencrypt"; }; hass = { entryPoints = [ "websecure" ]; rule = "Host(`hass.${domain}`)"; service = "hass"; - middlewares = [ "crowdsec" "whitelist-geoblock" "authentik" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + "authentik" + ]; priority = 10; tls.certResolver = "letsencrypt"; }; @@ -358,35 +391,51 @@ in entryPoints = [ "websecure" ]; rule = "Host(`immich.${domain}`)"; service = "immich"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; tls.certResolver = "letsencrypt"; }; jellyfin = { entryPoints = [ "websecure" ]; rule = "Host(`jellyfin.${domain}`)"; service = "jellyfin"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; tls.certResolver = "letsencrypt"; }; jellyseerr = { entryPoints = [ "websecure" ]; rule = "Host(`jellyseerr.${domain}`)"; service = "jellyseerr"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; tls.certResolver = "letsencrypt"; }; lubelogger = { entryPoints = [ "websecure" ]; rule = "Host(`lubelogger.${domain}`)"; service = "lubelogger"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; tls.certResolver = "letsencrypt"; }; onlyoffice = { entryPoints = [ "websecure" ]; rule = "Host(`office.${domain}`)"; service = "onlyoffice"; - middlewares = [ "crowdsec" "whitelist-geoblock" "onlyoffice-websocket" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + "onlyoffice-websocket" + ]; tls.certResolver = "letsencrypt"; }; }; diff --git a/modules/nixos/traefik/options.nix b/modules/nixos/traefik/options.nix index bb19f87..6a5e541 100644 --- a/modules/nixos/traefik/options.nix +++ b/modules/nixos/traefik/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.services.traefik = { enable = mkEnableOption "enable traefik"; }; -} \ No newline at end of file +} diff --git a/modules/nixos/user/default.nix b/modules/nixos/user/default.nix index a0ce583..5b4947a 100644 --- a/modules/nixos/user/default.nix +++ b/modules/nixos/user/default.nix @@ -11,7 +11,7 @@ let in { options.${namespace}.user = with types; { - email = lib.mkOption { + email = lib.mkOption { type = str; default = "jalle008@proton.me"; description = "The email of the user."; @@ -74,4 +74,4 @@ in hashedPasswordFile = cfg.passwordFile; } // cfg.extraOptions; }; -} \ No newline at end of file +} diff --git a/modules/nixos/wyoming/default.nix b/modules/nixos/wyoming/default.nix index 4f58725..cd5b4c7 100755 --- a/modules/nixos/wyoming/default.nix +++ b/modules/nixos/wyoming/default.nix @@ -1,10 +1,15 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: with lib; let cfg = config.${namespace}.services.wyoming; in { - imports = [ ./options.nix ]; + imports = [ ./options.nix ]; config = mkIf cfg.enable { services.wyoming = { @@ -24,4 +29,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/wyoming/options.nix b/modules/nixos/wyoming/options.nix index 46d7f0a..1388279 100644 --- a/modules/nixos/wyoming/options.nix +++ b/modules/nixos/wyoming/options.nix @@ -4,4 +4,4 @@ with lib; options.${namespace}.services.wyoming = { enable = mkEnableOption "enable wyoming"; }; -} \ No newline at end of file +} diff --git a/overlays/unstable/default.nix b/overlays/unstable/default.nix index b011ce5..385d78b 100644 --- a/overlays/unstable/default.nix +++ b/overlays/unstable/default.nix @@ -4,4 +4,4 @@ final: _prev: { system = final.system; config.allowUnfree = true; }; -} \ No newline at end of file +} diff --git a/overlays/waybar/default.nix b/overlays/waybar/default.nix index 19e3c3d..2d37704 100644 --- a/overlays/waybar/default.nix +++ b/overlays/waybar/default.nix @@ -1,6 +1,6 @@ { ... }: final: prev: { waybar = prev.waybar.overrideAttrs (old: { - mesonFlags = (old.mesonFlags or []) ++ [ "-Dexperimental=true" ]; + mesonFlags = (old.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ]; }); } diff --git a/packages/ha-anycubic/default.nix b/packages/ha-anycubic/default.nix index d230d0e..e27b313 100644 --- a/packages/ha-anycubic/default.nix +++ b/packages/ha-anycubic/default.nix @@ -1,4 +1,9 @@ -{ buildHomeAssistantComponent, pkgs, namespace, ... }: +{ + buildHomeAssistantComponent, + pkgs, + namespace, + ... +}: buildHomeAssistantComponent rec { owner = "adamoutler"; domain = "anycubic_wifi"; @@ -23,4 +28,4 @@ buildHomeAssistantComponent rec { homepage = "https://github.com/adamoutler/anycubic-homeassistant"; maintainers = [ ]; }; -} \ No newline at end of file +} diff --git a/packages/ha-bambulab/default.nix b/packages/ha-bambulab/default.nix index 2a76053..b7d86a8 100644 --- a/packages/ha-bambulab/default.nix +++ b/packages/ha-bambulab/default.nix @@ -1,4 +1,9 @@ -{ buildHomeAssistantComponent, python3Packages, fetchFromGitHub, ... }: +{ + buildHomeAssistantComponent, + python3Packages, + fetchFromGitHub, + ... +}: buildHomeAssistantComponent rec { owner = "greghesp"; domain = "bambu_lab"; @@ -21,4 +26,4 @@ buildHomeAssistantComponent rec { homepage = "https://github.com/greghesp/ha-bambulab"; maintainers = [ ]; }; -} \ No newline at end of file +} diff --git a/packages/ha-gehome/default.nix b/packages/ha-gehome/default.nix index 30d953b..24319c3 100644 --- a/packages/ha-gehome/default.nix +++ b/packages/ha-gehome/default.nix @@ -1,4 +1,10 @@ -{ buildHomeAssistantComponent, fetchFromGitHub, python3Packages, namespace, ... }: +{ + buildHomeAssistantComponent, + fetchFromGitHub, + python3Packages, + namespace, + ... +}: buildHomeAssistantComponent rec { owner = "simbaja"; domain = "ge_home"; @@ -29,4 +35,4 @@ buildHomeAssistantComponent rec { homepage = "https://github.com/simbaja/ha_gehome"; maintainers = [ ]; }; -} \ No newline at end of file +} diff --git a/packages/ha-icloud3/default.nix b/packages/ha-icloud3/default.nix index a9b3402..847c9da 100644 --- a/packages/ha-icloud3/default.nix +++ b/packages/ha-icloud3/default.nix @@ -1,4 +1,9 @@ -{ buildHomeAssistantComponent, fetchFromGitHub, python3Packages, ... }: +{ + buildHomeAssistantComponent, + fetchFromGitHub, + python3Packages, + ... +}: buildHomeAssistantComponent rec { owner = "gcobb321"; domain = "icloud3"; @@ -21,4 +26,4 @@ buildHomeAssistantComponent rec { homepage = "https://github.com/gcobb321/icloud3"; maintainers = [ ]; }; -} \ No newline at end of file +} diff --git a/packages/ha-mail-and-packages/default.nix b/packages/ha-mail-and-packages/default.nix index b4a42aa..879e24a 100644 --- a/packages/ha-mail-and-packages/default.nix +++ b/packages/ha-mail-and-packages/default.nix @@ -1,4 +1,9 @@ -{ buildHomeAssistantComponent, fetchFromGitHub, python3Packages, ... }: +{ + buildHomeAssistantComponent, + fetchFromGitHub, + python3Packages, + ... +}: buildHomeAssistantComponent rec { owner = "moralmunky"; domain = "mail_and_packages"; diff --git a/packages/ha-nanokvm/default.nix b/packages/ha-nanokvm/default.nix index c251f33..41719b3 100644 --- a/packages/ha-nanokvm/default.nix +++ b/packages/ha-nanokvm/default.nix @@ -1,4 +1,10 @@ -{ buildHomeAssistantComponent, fetchFromGitHub, pkgs, namespace, ... }: +{ + buildHomeAssistantComponent, + fetchFromGitHub, + pkgs, + namespace, + ... +}: buildHomeAssistantComponent rec { owner = "Wouter0100"; domain = "nanokvm"; diff --git a/packages/ha-overseerr/default.nix b/packages/ha-overseerr/default.nix index a8fa36a..041039a 100644 --- a/packages/ha-overseerr/default.nix +++ b/packages/ha-overseerr/default.nix @@ -1,4 +1,10 @@ -{ buildHomeAssistantComponent, fetchFromGitHub, pkgs, namespace, ... }: +{ + buildHomeAssistantComponent, + fetchFromGitHub, + pkgs, + namespace, + ... +}: buildHomeAssistantComponent rec { owner = "vaparr"; domain = "overseerr"; diff --git a/packages/ha-wyzeapi/default.nix b/packages/ha-wyzeapi/default.nix index 1eb5c01..7e6e379 100644 --- a/packages/ha-wyzeapi/default.nix +++ b/packages/ha-wyzeapi/default.nix @@ -1,4 +1,10 @@ -{ buildHomeAssistantComponent, fetchFromGitHub, pkgs, namespace, ... }: +{ + buildHomeAssistantComponent, + fetchFromGitHub, + pkgs, + namespace, + ... +}: buildHomeAssistantComponent rec { owner = "SecKatie"; domain = "wyzeapi"; diff --git a/packages/homeassistant-api/default.nix b/packages/homeassistant-api/default.nix index 1ae547f..3a30dac 100644 --- a/packages/homeassistant-api/default.nix +++ b/packages/homeassistant-api/default.nix @@ -10,7 +10,10 @@ python3Packages.buildPythonPackage rec { # do not run tests doCheck = false; - nativeBuildInputs = with python3Packages; [ poetry-core requests-cache ]; + nativeBuildInputs = with python3Packages; [ + poetry-core + requests-cache + ]; dependencies = with python3Packages; [ requests-cache pydantic diff --git a/packages/magicattr/default.nix b/packages/magicattr/default.nix index 1f539fc..0f2ac82 100644 --- a/packages/magicattr/default.nix +++ b/packages/magicattr/default.nix @@ -1,4 +1,9 @@ -{ lib, python3Packages, fetchFromGitHub, ... }: +{ + lib, + python3Packages, + fetchFromGitHub, + ... +}: python3Packages.buildPythonPackage rec { pname = "magicattr"; @@ -14,4 +19,4 @@ python3Packages.buildPythonPackage rec { buildInputs = with python3Packages; [ setuptools ]; doCheck = false; -} \ No newline at end of file +} diff --git a/packages/pyoverseerr/default.nix b/packages/pyoverseerr/default.nix index ba221f2..04c3245 100644 --- a/packages/pyoverseerr/default.nix +++ b/packages/pyoverseerr/default.nix @@ -13,4 +13,4 @@ python3Packages.buildPythonPackage rec { buildInputs = with python3Packages; [ setuptools ]; doCheck = false; # no tests in the PyPI tarball -} \ No newline at end of file +} diff --git a/packages/python-nanokvm/default.nix b/packages/python-nanokvm/default.nix index 32ef137..abd093c 100644 --- a/packages/python-nanokvm/default.nix +++ b/packages/python-nanokvm/default.nix @@ -11,7 +11,7 @@ python3Packages.buildPythonPackage rec { sha256 = "sha256-jBBd+O3S/4AlxAhrF9j9Bi5vMKZNk0M17ok9JzcI8F8="; }; - buildInputs = with python3Packages; [ + buildInputs = with python3Packages; [ setuptools setuptools-git-versioning ]; @@ -25,4 +25,4 @@ python3Packages.buildPythonPackage rec { ]; doCheck = false; -} \ No newline at end of file +} diff --git a/packages/wyzeapy/default.nix b/packages/wyzeapy/default.nix index 00d497a..f6b800f 100644 --- a/packages/wyzeapy/default.nix +++ b/packages/wyzeapy/default.nix @@ -13,7 +13,7 @@ python3Packages.buildPythonPackage rec { buildInputs = with python3Packages; [ poetry-core ]; - nativeBuildInputs = with python3Packages; [ + nativeBuildInputs = with python3Packages; [ aiodns aiohttp pycryptodome diff --git a/systems/aarch64-darwin/macbook-pro/default.nix b/systems/aarch64-darwin/macbook-pro/default.nix index 9fb2592..8166bab 100755 --- a/systems/aarch64-darwin/macbook-pro/default.nix +++ b/systems/aarch64-darwin/macbook-pro/default.nix @@ -1,4 +1,9 @@ -{ config, inputs, pkgs, ... }: +{ + config, + inputs, + pkgs, + ... +}: { imports = [ ./nix.nix diff --git a/systems/aarch64-darwin/macbook-pro/homebrew.nix b/systems/aarch64-darwin/macbook-pro/homebrew.nix index b0fb0be..112aa6c 100644 --- a/systems/aarch64-darwin/macbook-pro/homebrew.nix +++ b/systems/aarch64-darwin/macbook-pro/homebrew.nix @@ -63,4 +63,4 @@ }; # homebrew.global.autoUpdate = true; -} \ No newline at end of file +} diff --git a/systems/aarch64-darwin/macbook-pro/nix.nix b/systems/aarch64-darwin/macbook-pro/nix.nix index 70fe65a..c420d99 100644 --- a/systems/aarch64-darwin/macbook-pro/nix.nix +++ b/systems/aarch64-darwin/macbook-pro/nix.nix @@ -14,4 +14,4 @@ config.allowUnfree = true; hostPlatform = "aarch64-darwin"; }; -} \ No newline at end of file +} diff --git a/systems/aarch64-darwin/macbook-pro/programs.nix b/systems/aarch64-darwin/macbook-pro/programs.nix index 8d6fdd4..b122a8f 100644 --- a/systems/aarch64-darwin/macbook-pro/programs.nix +++ b/systems/aarch64-darwin/macbook-pro/programs.nix @@ -19,6 +19,6 @@ }; }; - zsh.enable = true; # default shell on catalina + zsh.enable = true; # default shell on catalina }; -} \ No newline at end of file +} diff --git a/systems/aarch64-linux/macbook-pro-nixos/boot.nix b/systems/aarch64-linux/macbook-pro-nixos/boot.nix index 7947750..cfdf2a4 100644 --- a/systems/aarch64-linux/macbook-pro-nixos/boot.nix +++ b/systems/aarch64-linux/macbook-pro-nixos/boot.nix @@ -20,4 +20,4 @@ ''; m1n1CustomLogo = ./NixOS.png; }; -} \ No newline at end of file +} diff --git a/systems/aarch64-linux/macbook-pro-nixos/default.nix b/systems/aarch64-linux/macbook-pro-nixos/default.nix index fe01622..4d851ed 100755 --- a/systems/aarch64-linux/macbook-pro-nixos/default.nix +++ b/systems/aarch64-linux/macbook-pro-nixos/default.nix @@ -52,7 +52,6 @@ in "name:steam, monitor:${display.input}, default:false, special, class:(.*[Ss]team.*)" ]; - windowRule = [ "size 2160 3356, tag:horizonrdp" ]; @@ -78,7 +77,7 @@ in "lp" "video" "i2c" - ]; # Enable ‘sudo’ for the user. + ]; # Enable ‘sudo’ for the user. shell = pkgs.zsh; packages = with pkgs; [ firefox diff --git a/systems/aarch64-linux/macbook-pro-nixos/hardware-configuration.nix b/systems/aarch64-linux/macbook-pro-nixos/hardware-configuration.nix index 0dfef32..92c0ac4 100644 --- a/systems/aarch64-linux/macbook-pro-nixos/hardware-configuration.nix +++ b/systems/aarch64-linux/macbook-pro-nixos/hardware-configuration.nix @@ -4,61 +4,90 @@ { lib, modulesPath, ... }: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "uas" "sdhci_pci" ]; + boot.initrd.availableKernelModules = [ + "uas" + "sdhci_pci" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "none"; - fsType = "tmpfs"; - }; + fileSystems."/" = { + device = "none"; + fsType = "tmpfs"; + }; - fileSystems."/root" = - { device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; - fsType = "btrfs"; - options = [ "compress=zstd" "noatime" "subvol=root" ]; - }; + fileSystems."/root" = { + device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; + fsType = "btrfs"; + options = [ + "compress=zstd" + "noatime" + "subvol=root" + ]; + }; - fileSystems."/etc" = - { device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; - fsType = "btrfs"; - options = [ "compress=zstd" "noatime" "subvol=etc" ]; - }; + fileSystems."/etc" = { + device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; + fsType = "btrfs"; + options = [ + "compress=zstd" + "noatime" + "subvol=etc" + ]; + }; - fileSystems."/tmp" = - { device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; - fsType = "btrfs"; - options = [ "compress=zstd" "noatime" "subvol=tmp" ]; - }; + fileSystems."/tmp" = { + device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; + fsType = "btrfs"; + options = [ + "compress=zstd" + "noatime" + "subvol=tmp" + ]; + }; - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; - fsType = "btrfs"; - options = [ "compress=zstd" "noatime" "subvol=nix" ]; - }; + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; + fsType = "btrfs"; + options = [ + "compress=zstd" + "noatime" + "subvol=nix" + ]; + }; - fileSystems."/var/log" = - { device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; - fsType = "btrfs"; - options = [ "compress=zstd" "noatime" "subvol=log" ]; - }; + fileSystems."/var/log" = { + device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; + fsType = "btrfs"; + options = [ + "compress=zstd" + "noatime" + "subvol=log" + ]; + }; - fileSystems."/home" = - { device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; - fsType = "btrfs"; - options = [ "compress=zstd" "subvol=home" ]; - }; + fileSystems."/home" = { + device = "/dev/disk/by-uuid/adcc14fa-8bf7-4b4b-a9e4-b038993b96cc"; + fsType = "btrfs"; + options = [ + "compress=zstd" + "subvol=home" + ]; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/23FA-AD3E"; - fsType = "vfat"; - options = [ "fmask=0022" "dmask=0022" ]; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/23FA-AD3E"; + fsType = "vfat"; + options = [ + "fmask=0022" + "dmask=0022" + ]; + }; # swapDevices = [ # { diff --git a/systems/aarch64-linux/macbook-pro-nixos/hyprland-settings.nix b/systems/aarch64-linux/macbook-pro-nixos/hyprland-settings.nix index 603f1e4..78aa2bc 100644 --- a/systems/aarch64-linux/macbook-pro-nixos/hyprland-settings.nix +++ b/systems/aarch64-linux/macbook-pro-nixos/hyprland-settings.nix @@ -19,7 +19,7 @@ in monitor = [ "${display.input},${display.resolution}@${display.refreshRate},0x0,1.25,bitdepth,10,cm,hdr,sdrbrightness,1.2,sdrsaturation,0.98" ]; - + # monitorv2 = { # output = "eDP-1"; # mode = "3456x2234@60.00000"; @@ -27,7 +27,7 @@ in # scale = "1.25"; # #bitdepth,10,cm,hdr,sdrbrightness,1.2,sdrsaturation,0.98" # }; - + workspace = [ "name:firefox, monitor:${display.input}, default:false, special, class:(.*firefox.*)" "name:discord, monitor:${display.input}, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)" @@ -79,4 +79,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/systems/aarch64-linux/macbook-pro-nixos/networking.nix b/systems/aarch64-linux/macbook-pro-nixos/networking.nix index 7f8c629..800ff5f 100644 --- a/systems/aarch64-linux/macbook-pro-nixos/networking.nix +++ b/systems/aarch64-linux/macbook-pro-nixos/networking.nix @@ -8,7 +8,7 @@ enable = true; settings = { General = { - EnableNetworkConfiguration = true; + EnableNetworkConfiguration = true; }; Rank = { BandModifier2_4GHz = 1.0; @@ -41,4 +41,4 @@ iptables -I INPUT -p udp -m udp --match multiport --dports 1990,2021 -j ACCEPT ''; }; -} \ No newline at end of file +} diff --git a/systems/aarch64-linux/macbook-pro-nixos/services.nix b/systems/aarch64-linux/macbook-pro-nixos/services.nix index c7d03d3..b92e589 100644 --- a/systems/aarch64-linux/macbook-pro-nixos/services.nix +++ b/systems/aarch64-linux/macbook-pro-nixos/services.nix @@ -13,7 +13,7 @@ # minimum cpu frequency (in kHz) # example: for 800 MHz = 800000 kHz --> scaling_min_freq = 800000 # Available: 912 MHz, 1284 MHz, 1752 MHz, 2004 MHz, 2256 MHz, 2424 MHz - # 702000 948000 1188000 1452000 1704000 1968000 2208000 2400000 2568000 2724000 2868000 3000000 3132000 3264000 + # 702000 948000 1188000 1452000 1704000 1968000 2208000 2400000 2568000 2724000 2868000 3000000 3132000 3264000 # see conversion info: https://www.rapidtables.com/convert/frequency/mhz-to-hz.html # to use this feature, uncomment the following line and set the value accordingly scaling_min_freq = 912000; @@ -33,7 +33,7 @@ # minimum cpu frequency (in kHz) # example: for 800 MHz = 800000 kHz --> scaling_min_freq = 800000 # Available: 912 MHz, 1284 MHz, 1752 MHz, 2004 MHz, 2256 MHz, 2424 MHz - # 702000 948000 1188000 1452000 1704000 1968000 2208000 2400000 2568000 2724000 2868000 3000000 3132000 3264000 + # 702000 948000 1188000 1452000 1704000 1968000 2208000 2400000 2568000 2724000 2868000 3000000 3132000 3264000 # see conversion info: https://www.rapidtables.com/convert/frequency/mhz-to-hz.html # to use this feature, uncomment the following line and set the value accordingly scaling_min_freq = 912000; @@ -50,7 +50,7 @@ }; }; }; - + displayManager = { sddm = { enable = lib.mkForce true; @@ -58,7 +58,7 @@ }; gdm.enable = lib.mkForce false; }; - + desktopManager = { plasma6.enable = lib.mkForce false; gnome.enable = lib.mkForce false; @@ -93,9 +93,9 @@ "`" = "A-f6"; # App shortcuts - c = "C-insert"; # Copy - v = "S-insert"; # Paste - x = "S-delete"; # Cut + c = "C-insert"; # Copy + v = "S-insert"; # Paste + x = "S-delete"; # Cut "1" = "A-1"; "2" = "A-2"; diff --git a/systems/aarch64-linux/pi4/boot.nix b/systems/aarch64-linux/pi4/boot.nix index 99c1dbf..f7c82f3 100755 --- a/systems/aarch64-linux/pi4/boot.nix +++ b/systems/aarch64-linux/pi4/boot.nix @@ -21,18 +21,25 @@ # # cp -r ${uefi_pi4}/share/uefi_rpi4/* /boot/firmware/ # # ''; # } -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let kernelBundle = pkgs.linuxAndFirmware.latest; in { - system.nixos.tags = let - cfg = config.boot.loader.raspberry-pi; - in [ - "raspberry-pi-${cfg.variant}" - cfg.bootloader - config.boot.kernelPackages.kernel.version - ]; + system.nixos.tags = + let + cfg = config.boot.loader.raspberry-pi; + in + [ + "raspberry-pi-${cfg.variant}" + cfg.bootloader + config.boot.kernelPackages.kernel.version + ]; boot = lib.mkForce { loader.raspberry-pi = { @@ -41,9 +48,10 @@ in }; kernelPackages = kernelBundle.linuxPackages_rpi4; }; - + hardware.raspberry-pi.config = { - all = { # [all] conditional filter, https://www.raspberrypi.com/documentation/computers/config_txt.html#conditional-filters + all = { + # [all] conditional filter, https://www.raspberrypi.com/documentation/computers/config_txt.html#conditional-filters base-dt-params = { i2c_arm = { @@ -63,14 +71,14 @@ in options = { # https://www.raspberrypi.com/documentation/computers/config_txt.html#enable_uart # in conjunction with `console=serial0,115200` in kernel command line (`cmdline.txt`) - # creates a serial console, accessible using GPIOs 14 and 15 (pins + # creates a serial console, accessible using GPIOs 14 and 15 (pins # 8 and 10 on the 40-pin header) enable_uart = { enable = true; value = true; }; # https://www.raspberrypi.com/documentation/computers/config_txt.html#uart_2ndstage - # enable debug logging to the UART, also automatically enables + # enable debug logging to the UART, also automatically enables # UART logging in `start.elf` uart_2ndstage = { enable = true; diff --git a/systems/aarch64-linux/pi4/default.nix b/systems/aarch64-linux/pi4/default.nix index e7952a7..8b2625f 100755 --- a/systems/aarch64-linux/pi4/default.nix +++ b/systems/aarch64-linux/pi4/default.nix @@ -2,7 +2,13 @@ # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). -{ config, lib, pkgs, namespace, ... }: +{ + config, + lib, + pkgs, + namespace, + ... +}: let user = "matt"; # password = config.sops.secrets."pi4/matt-password".path; @@ -37,7 +43,7 @@ in nixpkgs = { overlays = lib.mkAfter [ (self: super: { - # This is used in (modulesPath + "/hardware/all-firmware.nix") when at least + # This is used in (modulesPath + "/hardware/all-firmware.nix") when at least # enableRedistributableFirmware is enabled # I know no easier way to override this package inherit (kernelBundle) raspberrypiWirelessFirmware; diff --git a/systems/aarch64-linux/pi4/networking.nix b/systems/aarch64-linux/pi4/networking.nix index a3658cd..5a212ad 100755 --- a/systems/aarch64-linux/pi4/networking.nix +++ b/systems/aarch64-linux/pi4/networking.nix @@ -24,7 +24,7 @@ in settings.connectivity.uri = lib.mkDefault "http://nmcheck.gnome.org/check_network_status.txt"; ensureProfiles = { environmentFiles = [ - config.sops.secrets.wifi.path + config.sops.secrets.wifi.path ]; profiles = { diff --git a/systems/aarch64-linux/pi4/sops.nix b/systems/aarch64-linux/pi4/sops.nix index fb8cfb0..4021023 100755 --- a/systems/aarch64-linux/pi4/sops.nix +++ b/systems/aarch64-linux/pi4/sops.nix @@ -5,10 +5,10 @@ in { sops = { defaultSopsFile = lib.mkForce ../../../secrets/pi4-secrets.yaml; -# age = { -# generateKey = true; -# sshKeyPaths = [ "/etc/ssd/ssh_host_ed25519_key" ]; -# }; + # age = { + # generateKey = true; + # sshKeyPaths = [ "/etc/ssd/ssh_host_ed25519_key" ]; + # }; age.keyFile = "/home/matt/.config/sops/age/keys.txt"; validateSopsFiles = false; # ------------------------------ diff --git a/systems/aarch64-linux/pi5/boot.nix b/systems/aarch64-linux/pi5/boot.nix index 6de3571..a990c1c 100755 --- a/systems/aarch64-linux/pi5/boot.nix +++ b/systems/aarch64-linux/pi5/boot.nix @@ -7,21 +7,22 @@ in loader.raspberry-pi.firmwarePackage = kernelBundle.raspberrypifw; kernelPackages = kernelBundle.linuxPackages_rpi5; }; - + hardware.raspberry-pi.config = { - all = { # [all] conditional filter, https://www.raspberrypi.com/documentation/computers/config_txt.html#conditional-filters + all = { + # [all] conditional filter, https://www.raspberrypi.com/documentation/computers/config_txt.html#conditional-filters options = { # https://www.raspberrypi.com/documentation/computers/config_txt.html#enable_uart # in conjunction with `console=serial0,115200` in kernel command line (`cmdline.txt`) - # creates a serial console, accessible using GPIOs 14 and 15 (pins + # creates a serial console, accessible using GPIOs 14 and 15 (pins # 8 and 10 on the 40-pin header) enable_uart = { enable = true; value = true; }; # https://www.raspberrypi.com/documentation/computers/config_txt.html#uart_2ndstage - # enable debug logging to the UART, also automatically enables + # enable debug logging to the UART, also automatically enables # UART logging in `start.elf` uart_2ndstage = { enable = true; diff --git a/systems/aarch64-linux/pi5/default.nix b/systems/aarch64-linux/pi5/default.nix index bff1d5f..4af6cb0 100644 --- a/systems/aarch64-linux/pi5/default.nix +++ b/systems/aarch64-linux/pi5/default.nix @@ -2,7 +2,13 @@ # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). -{ config, lib, pkgs, namespace, ... }: +{ + config, + lib, + pkgs, + namespace, + ... +}: let user = "matt"; password = config.sops.secrets."pi5/matt-password".path; @@ -42,7 +48,7 @@ in nixpkgs = { overlays = lib.mkAfter [ (self: super: { - # This is used in (modulesPath + "/hardware/all-firmware.nix") when at least + # This is used in (modulesPath + "/hardware/all-firmware.nix") when at least # enableRedistributableFirmware is enabled # I know no easier way to override this package inherit (kernelBundle) raspberrypiWirelessFirmware; @@ -53,13 +59,15 @@ in ]; }; - system.nixos.tags = let - cfg = config.boot.loader.raspberry-pi; - in [ - "raspberry-pi-${cfg.variant}" - cfg.bootloader - config.boot.kernelPackages.kernel.version - ]; + system.nixos.tags = + let + cfg = config.boot.loader.raspberry-pi; + in + [ + "raspberry-pi-${cfg.variant}" + cfg.bootloader + config.boot.kernelPackages.kernel.version + ]; systemd.services.btattach = { before = [ "bluetooth.service" ]; @@ -90,7 +98,7 @@ in mutableUsers = false; users."${user}" = { isNormalUser = true; -# hashedPasswordFile = password; + # hashedPasswordFile = password; password = lib.mkForce "BogieDudie1"; extraGroups = [ "wheel" diff --git a/systems/aarch64-linux/pi5/networking.nix b/systems/aarch64-linux/pi5/networking.nix index a5418c4..28a39ee 100755 --- a/systems/aarch64-linux/pi5/networking.nix +++ b/systems/aarch64-linux/pi5/networking.nix @@ -15,4 +15,4 @@ in allowPing = true; }; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/desktop/boot.nix b/systems/x86_64-linux/desktop/boot.nix index 793c606..5e8fd3f 100755 --- a/systems/x86_64-linux/desktop/boot.nix +++ b/systems/x86_64-linux/desktop/boot.nix @@ -1,7 +1,7 @@ { config, pkgs, ... }: let kernel = pkgs.linuxPackages_cachyos; - pkgsVersion = pkgs; #.unstable; + pkgsVersion = pkgs; # .unstable; in { # Configure bootloader with lanzaboot and secureboot @@ -12,7 +12,7 @@ in "i2c-dev" "ddcci_backlight" ]; - extraModulePackages = [config.boot.kernelPackages.ddcci-driver]; + extraModulePackages = [ config.boot.kernelPackages.ddcci-driver ]; loader = { efi = { canTouchEfiVariables = true; diff --git a/systems/x86_64-linux/desktop/configuration.nix b/systems/x86_64-linux/desktop/configuration.nix index 9b912f4..a36fe9f 100755 --- a/systems/x86_64-linux/desktop/configuration.nix +++ b/systems/x86_64-linux/desktop/configuration.nix @@ -8,7 +8,7 @@ ... }: let - pkgsVersion = pkgs; #.unstable; + pkgsVersion = pkgs; # .unstable; environmentVariables = { STEAM_FORCE_DESKTOPUI_SCALING = "1.0"; GDK_SCALE = "1"; diff --git a/systems/x86_64-linux/desktop/default.nix b/systems/x86_64-linux/desktop/default.nix index 6eff834..0598354 100644 --- a/systems/x86_64-linux/desktop/default.nix +++ b/systems/x86_64-linux/desktop/default.nix @@ -1,22 +1,23 @@ -{ # Snowfall Lib provides a customized `lib` instance with access to your flake's library - # as well as the libraries available from your flake's inputs. - # lib, - # # An instance of `pkgs` with your overlays and packages applied is also available. - # pkgs, - # # You also have access to your flake's inputs. - # inputs, +# Snowfall Lib provides a customized `lib` instance with access to your flake's library +{ + # as well as the libraries available from your flake's inputs. + # lib, + # # An instance of `pkgs` with your overlays and packages applied is also available. + # pkgs, + # # You also have access to your flake's inputs. + # inputs, - # Additional metadata is provided by Snowfall Lib. - namespace, # The namespace used for your flake, defaulting to "internal" if not set. - # system, # The system architecture for this host (eg. `x86_64-linux`). - # target, # The Snowfall Lib target for this system (eg. `x86_64-iso`). - # format, # A normalized name for the system target (eg. `iso`). - # virtual, # A boolean to determine whether this system is a virtual target using nixos-generators. - # systems, # An attribute map of your defined hosts. + # Additional metadata is provided by Snowfall Lib. + namespace, # The namespace used for your flake, defaulting to "internal" if not set. + # system, # The system architecture for this host (eg. `x86_64-linux`). + # target, # The Snowfall Lib target for this system (eg. `x86_64-iso`). + # format, # A normalized name for the system target (eg. `iso`). + # virtual, # A boolean to determine whether this system is a virtual target using nixos-generators. + # systems, # An attribute map of your defined hosts. - # All other arguments come from the system system. - config, - ... + # All other arguments come from the system system. + config, + ... }: let passwordFile = config.sops.secrets."desktop/matt_password".path; @@ -31,7 +32,6 @@ in ./nix.nix ./sops.nix - ./specialisations/hyprland ]; @@ -45,4 +45,4 @@ in passwordFile = passwordFile; }; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/desktop/filesystems.nix b/systems/x86_64-linux/desktop/filesystems.nix index 85a11ad..d27b4db 100755 --- a/systems/x86_64-linux/desktop/filesystems.nix +++ b/systems/x86_64-linux/desktop/filesystems.nix @@ -13,10 +13,10 @@ let ]; defaultLocalOptions = [ "compress=zstd" -# "autodefrag" + # "autodefrag" "nofail" -# "x-systemd.automount" -# "auto" + # "x-systemd.automount" + # "auto" "rw" ]; in diff --git a/systems/x86_64-linux/desktop/hardware-configuration.nix b/systems/x86_64-linux/desktop/hardware-configuration.nix index e8e6155..81aaf96 100755 --- a/systems/x86_64-linux/desktop/hardware-configuration.nix +++ b/systems/x86_64-linux/desktop/hardware-configuration.nix @@ -12,7 +12,7 @@ let "compress=zstd" "autodefrag" ]; -in +in { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; diff --git a/systems/x86_64-linux/desktop/networking.nix b/systems/x86_64-linux/desktop/networking.nix index 1f904d4..35b474b 100755 --- a/systems/x86_64-linux/desktop/networking.nix +++ b/systems/x86_64-linux/desktop/networking.nix @@ -43,4 +43,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/desktop/nix.nix b/systems/x86_64-linux/desktop/nix.nix index 9fdd262..1e9faec 100644 --- a/systems/x86_64-linux/desktop/nix.nix +++ b/systems/x86_64-linux/desktop/nix.nix @@ -26,8 +26,13 @@ in system = "x86_64-linux"; maxJobs = 10; sshUser = "admin"; - supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ]; + supportedFeatures = [ + "nixos-test" + "benchmark" + "big-parallel" + "kvm" + ]; } ]; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/desktop/services/btrfs/default.nix b/systems/x86_64-linux/desktop/services/btrfs/default.nix index 6790088..f94e228 100644 --- a/systems/x86_64-linux/desktop/services/btrfs/default.nix +++ b/systems/x86_64-linux/desktop/services/btrfs/default.nix @@ -10,4 +10,4 @@ "/home" ]; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/desktop/services/keyd/default.nix b/systems/x86_64-linux/desktop/services/keyd/default.nix index be809d4..0985bb5 100644 --- a/systems/x86_64-linux/desktop/services/keyd/default.nix +++ b/systems/x86_64-linux/desktop/services/keyd/default.nix @@ -17,9 +17,9 @@ "`" = "A-f6"; # App shortcuts - c = "C-insert"; # Copy - v = "S-insert"; # Paste - x = "S-delete"; # Cut + c = "C-insert"; # Copy + v = "S-insert"; # Paste + x = "S-delete"; # Cut "1" = "A-1"; "2" = "A-2"; @@ -46,4 +46,4 @@ }; }; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/desktop/services/ratbagd/default.nix b/systems/x86_64-linux/desktop/services/ratbagd/default.nix index c2d53a6..6d5aad8 100644 --- a/systems/x86_64-linux/desktop/services/ratbagd/default.nix +++ b/systems/x86_64-linux/desktop/services/ratbagd/default.nix @@ -1,4 +1,4 @@ { lib, ... }: { services.ratbagd.enable = lib.mkDefault true; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/desktop/services/restic/default.nix b/systems/x86_64-linux/desktop/services/restic/default.nix index fe7670a..928520c 100644 --- a/systems/x86_64-linux/desktop/services/restic/default.nix +++ b/systems/x86_64-linux/desktop/services/restic/default.nix @@ -50,4 +50,4 @@ ]; }; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/desktop/sops.nix b/systems/x86_64-linux/desktop/sops.nix index 7b30e62..4680dc5 100755 --- a/systems/x86_64-linux/desktop/sops.nix +++ b/systems/x86_64-linux/desktop/sops.nix @@ -129,7 +129,7 @@ in RESTIC_REST_USER=${config.sops.placeholder."desktop/restic/user"} RESTIC_REST_PASSWORD=${config.sops.placeholder."desktop/restic/password"} ''; - restartUnits = [ + restartUnits = [ "restic-backups-jallen-nas.service" "restic-backups-proton-drive.service" ]; diff --git a/systems/x86_64-linux/desktop/specialisations/hyprland/default.nix b/systems/x86_64-linux/desktop/specialisations/hyprland/default.nix index 24e0672..e28d3cc 100755 --- a/systems/x86_64-linux/desktop/specialisations/hyprland/default.nix +++ b/systems/x86_64-linux/desktop/specialisations/hyprland/default.nix @@ -31,7 +31,7 @@ in "${displayLeft.input},${displayLeft.resolution}@${displayLeft.refreshRate},0x0,1,bitdepth,10,cm,hdr,sdrbrightness,1.2,sdrsaturation,0.98" "${displayRight.input},${displayRight.resolution}@${displayRight.refreshRate},3840x0,1,bitdepth,10,cm,hdr,sdrbrightness,1.5,sdrsaturation,0.98" ]; - + workspace = [ "name:firefox, monitor:${displayRight.input}, default:false, special, class:(.*firefox.*)" "name:discord, monitor:${displayRight.input}, default:true, special, title:(.*vesktop.*), title:(.*Apple Music.*)" diff --git a/systems/x86_64-linux/desktop/specialisations/hyprland/home/default.nix b/systems/x86_64-linux/desktop/specialisations/hyprland/home/default.nix index 09c1ff3..2cfb04d 100644 --- a/systems/x86_64-linux/desktop/specialisations/hyprland/home/default.nix +++ b/systems/x86_64-linux/desktop/specialisations/hyprland/home/default.nix @@ -6,7 +6,7 @@ let in { mjallen = { - desktop.hyprland = { + desktop.hyprland = { enable = true; defaultApps = { browser = pkgs.firefox; @@ -60,7 +60,7 @@ in tooltip = false; exec = "waybar-hass --get_light light.living_room_lights"; interval = "once"; - format = "{text}";#"󱉓"; + format = "{text}"; # "󱉓"; on-click = "waybar-hass --toggle_light light.living_room_lights"; return-type = "json"; }; @@ -83,4 +83,4 @@ in wofi.enable = true; }; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/desktop/users.nix b/systems/x86_64-linux/desktop/users.nix index 3dc5878..8df4f8a 100644 --- a/systems/x86_64-linux/desktop/users.nix +++ b/systems/x86_64-linux/desktop/users.nix @@ -1,9 +1,14 @@ -{ config, namespace, lib, ... }: +{ + config, + namespace, + lib, + ... +}: let passwordFile = config.sops.secrets."desktop/matt_password".path; -in +in { ${namespace}.user = { passwordFile = lib.mkForce passwordFile; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/desktop/wifi-fixer.nix b/systems/x86_64-linux/desktop/wifi-fixer.nix index 90bddfa..2bbece6 100644 --- a/systems/x86_64-linux/desktop/wifi-fixer.nix +++ b/systems/x86_64-linux/desktop/wifi-fixer.nix @@ -1,5 +1,5 @@ { lib, pkgs, ... }: -let +let fixWifiScript = pkgs.writeScriptBin "fix-wifi" '' #!/usr/bin/env python3 @@ -75,7 +75,7 @@ let if __name__ == "__main__": main() ''; - pkgsVersion = pkgs; #.unstable; + pkgsVersion = pkgs; # .unstable; in { systemd = { @@ -98,4 +98,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/nas/apps.nix b/systems/x86_64-linux/nas/apps.nix index 8d999fb..ce73418 100755 --- a/systems/x86_64-linux/nas/apps.nix +++ b/systems/x86_64-linux/nas/apps.nix @@ -23,7 +23,10 @@ reverseProxy = { enable = true; host = "actual.mjallen.dev"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; }; }; @@ -78,7 +81,10 @@ reverseProxy = { enable = true; host = "gitea.mjallen.dev"; - middlewares = [ "crowdsec" "whitelist-geoblock" ]; + middlewares = [ + "crowdsec" + "whitelist-geoblock" + ]; }; }; diff --git a/systems/x86_64-linux/nas/apps/options.nix b/systems/x86_64-linux/nas/apps/options.nix index 96394ce..bfa2664 100644 --- a/systems/x86_64-linux/nas/apps/options.nix +++ b/systems/x86_64-linux/nas/apps/options.nix @@ -4,43 +4,48 @@ let in { options.nas-apps = mkOption { - type = types.attrsOf (types.submodule ({ config, name, ... }: { - options = { - enable = mkOption { - type = types.bool; - default = false; - }; + type = types.attrsOf ( + types.submodule ( + { config, name, ... }: + { + options = { + enable = mkOption { + type = types.bool; + default = false; + }; - port = mkOption { - type = types.int; - default = 80; - }; + port = mkOption { + type = types.int; + default = 80; + }; - localAddress = mkOption { - type = types.str; - default = "127.0.0.1"; - }; + localAddress = mkOption { + type = types.str; + default = "127.0.0.1"; + }; - dataDir = mkOption { - type = types.str; - default = ""; - }; + dataDir = mkOption { + type = types.str; + default = ""; + }; - reverseProxy = { - enable = mkOption { - type = types.bool; - default = false; + reverseProxy = { + enable = mkOption { + type = types.bool; + default = false; + }; + host = mkOption { + type = types.str; + default = ""; + }; + middlewares = mkOption { + type = with types; listOf str; + default = [ ]; + }; + }; }; - host = mkOption { - type = types.str; - default = ""; - }; - middlewares = mkOption { - type = with types; listOf str; - default = [ ]; - }; - }; - }; - })); + } + ) + ); }; } diff --git a/systems/x86_64-linux/nas/default.nix b/systems/x86_64-linux/nas/default.nix index f5a52de..410d008 100755 --- a/systems/x86_64-linux/nas/default.nix +++ b/systems/x86_64-linux/nas/default.nix @@ -207,7 +207,9 @@ ]; }; }; - nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ - "vscode-extension-github-copilot" - ]; + nixpkgs.config.allowUnfreePredicate = + pkg: + builtins.elem (lib.getName pkg) [ + "vscode-extension-github-copilot" + ]; } diff --git a/systems/x86_64-linux/nas/grafana.nix b/systems/x86_64-linux/nas/grafana.nix index 6dcdbb5..707baf7 100755 --- a/systems/x86_64-linux/nas/grafana.nix +++ b/systems/x86_64-linux/nas/grafana.nix @@ -14,7 +14,7 @@ in "diskstats" "meminfo" "cpu" - "systemd" # Ensures systemd collector is enabled + "systemd" # Ensures systemd collector is enabled "processes" ]; extraFlags = [ @@ -40,15 +40,19 @@ in scrapeConfigs = [ { job_name = "node"; - static_configs = [{ - targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ]; - }]; + static_configs = [ + { + targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ]; + } + ]; } { job_name = "traefik"; - static_configs = [{ - targets = [ "localhost:8082" ]; - }]; + static_configs = [ + { + targets = [ "localhost:8082" ]; + } + ]; } ]; }; @@ -66,15 +70,17 @@ in provision = { enable = true; - datasources.settings.datasources = [{ - name = "Prometheus"; - type = "prometheus"; - access = "proxy"; - url = "http://localhost:${toString config.services.prometheus.port}"; - }]; + datasources.settings.datasources = [ + { + name = "Prometheus"; + type = "prometheus"; + access = "proxy"; + url = "http://localhost:${toString config.services.prometheus.port}"; + } + ]; }; }; }; # Open firewall ports for Grafana networking.firewall.allowedTCPPorts = [ 9999 ]; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/nas/nix-serve.nix b/systems/x86_64-linux/nas/nix-serve.nix index 00590fd..322882c 100755 --- a/systems/x86_64-linux/nas/nix-serve.nix +++ b/systems/x86_64-linux/nas/nix-serve.nix @@ -1,7 +1,7 @@ { config, pkgs, ... }: let nix-build-mail = pkgs.writeShellScript "echo -e \"Content-Type: text/plain\\r\\nSubject: NixOS cache rebuild failed\\r\\n\\r\\nThe nix-rebuild-cache service failed at $(date).\" | sendmail jalle008@proton.me"; -in +in { # "https://cache.mjallen.dev" # "cache.mjallen.dev-1:IzFmKCd8/gggI6lcCXsW65qQwiCLGFFN9t9s2iw7Lvc=" @@ -9,10 +9,10 @@ in enable = false; package = pkgs.nix-serve-ng; secretKeyFile = "/etc/nix/cache-priv-key.pem"; - port = 5000; # Choose your preferred port + port = 5000; # Choose your preferred port openFirewall = true; }; - + services.atticd = { enable = true; environmentFile = config.sops.secrets."jallen-nas/attic-key".path; @@ -42,11 +42,11 @@ in attic-client ]; script = '' - #!/usr/bin/env bash - attic watch-store nas-cache + #!/usr/bin/env bash + attic watch-store nas-cache ''; }; - + nix-rebuild-cache-desktop = { enable = true; description = "Rebuild desktop NixOS configurations for cache"; @@ -71,12 +71,12 @@ in ]; script = '' #!/usr/bin/env bash - + # Pull latest changes if in a git repo if [ -d .git ]; then git pull || echo "Warning: Could not pull latest changes" fi - + echo "Starting build of matt-nixos at $(date)" if nix flake update desktop-nixpkgs desktop-chaotic desktop-home-manager desktop-impermanence desktop-lanzaboote desktop-nixos-hardware desktop-sops-nix desktop-steam-rom-manager nixpkgs-unstable nixpkgs-stable nix-darwin; then echo "matt-nixos flake updated successfully at $(date)" @@ -117,12 +117,12 @@ in ]; script = '' #!/usr/bin/env bash - + # Pull latest changes if in a git repo if [ -d .git ]; then git pull || echo "Warning: Could not pull latest changes" fi - + echo "Starting build of steamdeck at $(date)" if nix flake update steamdeck-nixpkgs steamdeck-chaotic steamdeck-home-manager steamdeck-impermanence steamdeck-jovian steamdeck-lanzaboote steamdeck-nixos-hardware steamdeck-sops-nix steamdeck-steam-rom-manager; then echo "steamdeck flake updated successfully at $(date)" @@ -164,12 +164,12 @@ in ]; script = '' #!/usr/bin/env bash - + # Pull latest changes if in a git repo if [ -d .git ]; then git pull || echo "Warning: Could not pull latest changes" fi - + echo "Starting build of pi4 at $(date)" if nix flake update pi4-nixpkgs pi4-home-manager pi4-impermanence pi4-sops-nix pi4-nixos-hardware pi4-nixos-raspberrypi pi4-disko; then echo "pi4 flake updated successfully at $(date)" @@ -210,12 +210,12 @@ in ]; script = '' #!/usr/bin/env bash - + # Pull latest changes if in a git repo if [ -d .git ]; then git pull || echo "Warning: Could not pull latest changes" fi - + echo "Starting build of pi5 at $(date)" if nix flake update pi5-nixpkgs pi5-home-manager pi5-impermanence pi5-nixos-hardware pi5-sops-nix nixos-raspberrypi; then echo "pi5 flake updated successfully at $(date)" @@ -256,12 +256,12 @@ in ]; script = '' #!/usr/bin/env bash - + # Pull latest changes if in a git repo if [ -d .git ]; then git pull || echo "Warning: Could not pull latest changes" fi - + echo "Starting build of jallen-nas at $(date)" if nix flake update nas-nixpkgs nas-authentik-nix nas-cosmic nas-crowdsec nas-home-manager nas-impermanence nas-lanzaboote nas-nixos-hardware nas-sops-nix; then echo "jallen-nas flake updated successfully at $(date)" @@ -339,7 +339,12 @@ in system = "aarch64-linux"; maxJobs = 4; sshUser = "matt"; - supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ]; + supportedFeatures = [ + "nixos-test" + "benchmark" + "big-parallel" + "kvm" + ]; } ]; }; diff --git a/systems/x86_64-linux/nas/nixpkgs.nix b/systems/x86_64-linux/nas/nixpkgs.nix index 2b3df9e..3a7de92 100755 --- a/systems/x86_64-linux/nas/nixpkgs.nix +++ b/systems/x86_64-linux/nas/nixpkgs.nix @@ -8,7 +8,8 @@ # enable cuda support cudaSupport = true; - allowUnfreePredicate = p: + allowUnfreePredicate = + p: builtins.all ( license: license.free @@ -21,4 +22,4 @@ ) (if builtins.isList p.meta.license then p.meta.license else [ p.meta.license ]); }; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/nas/services.nix b/systems/x86_64-linux/nas/services.nix index 0fc6b46..f4545c7 100755 --- a/systems/x86_64-linux/nas/services.nix +++ b/systems/x86_64-linux/nas/services.nix @@ -176,7 +176,7 @@ in htpasswd-file = "/media/nas/main/backup/restic/.htpasswd"; }; }; - + systemd.user.services = { protonmail-bridge = { description = "Protonmail Bridge"; @@ -218,7 +218,7 @@ in # This ensures the service only runs when the filesystem is mounted requires = [ "local-fs.target" ]; after = [ "local-fs.target" ]; - + # The actual balance command script = '' # Start with lower usage to handle the most fragmented blocks first @@ -229,14 +229,14 @@ in serviceConfig = { Type = "oneshot"; - Nice = 19; # Lowest CPU priority - IOSchedulingClass = "idle"; # Lowest I/O priority + Nice = 19; # Lowest CPU priority + IOSchedulingClass = "idle"; # Lowest I/O priority # Prevent multiple instances from running simultaneously ExecStartPre = "${pkgs.coreutils}/bin/rm -f /var/run/btrfs-balance.stamp"; ExecStopPost = "${pkgs.coreutils}/bin/touch /var/run/btrfs-balance.stamp"; }; }; - + system-update-check = { description = "Check for system configuration updates"; @@ -342,7 +342,7 @@ in btrfs-balance = { description = "Timer for BTRFS Balance Service"; wantedBy = [ "timers.target" ]; - + timerConfig = { # Run weekly on Sunday at 2am OnCalendar = "Sun *-*-* 02:00:00"; @@ -355,11 +355,11 @@ in system-update-check = { description = "Timer for system configuration updates"; wantedBy = [ "timers.target" ]; - + # Timer configuration timerConfig = { - OnCalendar = "daily"; # Check every day - Persistent = true; # Run immediately if last run was missed + OnCalendar = "daily"; # Check every day + Persistent = true; # Run immediately if last run was missed Unit = "system-update-check.service"; }; }; diff --git a/systems/x86_64-linux/nas/settings.nix b/systems/x86_64-linux/nas/settings.nix index c626004..4c45353 100644 --- a/systems/x86_64-linux/nas/settings.nix +++ b/systems/x86_64-linux/nas/settings.nix @@ -2,4 +2,4 @@ username = "admin"; hostAddress = "10.0.1.3"; hostName = "jallen-nas"; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/nas/sops.nix b/systems/x86_64-linux/nas/sops.nix index e2cf4d2..5525aab 100755 --- a/systems/x86_64-linux/nas/sops.nix +++ b/systems/x86_64-linux/nas/sops.nix @@ -31,7 +31,7 @@ in owner = config.users.users."${user}".name; group = config.users.users."${user}".group; }; - + "wifi" = { sopsFile = ../../../secrets/secrets.yaml; }; @@ -39,7 +39,7 @@ in # ------------------------------ # ups # ------------------------------ - + "jallen-nas/ups_password" = { mode = "0777"; restartUnits = [ @@ -234,7 +234,7 @@ in mode = "0640"; }; "jallen-nas/attic-key" = { -# owner = "atticd"; + # owner = "atticd"; }; }; @@ -264,7 +264,11 @@ in PAPERLESS_SECRET = ${config.sops.placeholder."jallen-nas/paperless/secret"} PAPERLESS_ENABLE_ALLAUTH = true PAPERLESS_APPS = "allauth.socialaccount.providers.openid_connect" - PAPERLESS_SOCIALACCOUNT_PROVIDERS = {"openid_connect":{"OAUTH_PKCE_ENABLED":true,"APPS":[{"provider_id":"authentik","name":"authentik","client_id":"${config.sops.placeholder."jallen-nas/paperless/authentik-client-id"}","secret":"${config.sops.placeholder."jallen-nas/paperless/authentik-client-secret"}","settings":{"server_url":"https://authentik.mjallen.dev/application/o/paperless/.well-known/openid-configuration"}}]}} + PAPERLESS_SOCIALACCOUNT_PROVIDERS = {"openid_connect":{"OAUTH_PKCE_ENABLED":true,"APPS":[{"provider_id":"authentik","name":"authentik","client_id":"${ + config.sops.placeholder."jallen-nas/paperless/authentik-client-id" + }","secret":"${ + config.sops.placeholder."jallen-nas/paperless/authentik-client-secret" + }","settings":{"server_url":"https://authentik.mjallen.dev/application/o/paperless/.well-known/openid-configuration"}}]}} ''; mode = "0650"; owner = config.users.users."${user}".name; diff --git a/systems/x86_64-linux/nas/users.nix b/systems/x86_64-linux/nas/users.nix index 147e3ad..9ebc422 100755 --- a/systems/x86_64-linux/nas/users.nix +++ b/systems/x86_64-linux/nas/users.nix @@ -1,4 +1,9 @@ -{ pkgs, config, lib, ... }: +{ + pkgs, + config, + lib, + ... +}: let user = "admin"; passwordFile = config.sops.secrets."jallen-nas/admin_password".path; @@ -93,4 +98,4 @@ in users.root.shell = pkgs.zsh; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/nuc/sops.nix b/systems/x86_64-linux/nuc/sops.nix index 347c437..37f44b9 100755 --- a/systems/x86_64-linux/nuc/sops.nix +++ b/systems/x86_64-linux/nuc/sops.nix @@ -25,7 +25,7 @@ in # Secrets # ------------------------------ secrets = { - + "wifi" = { sopsFile = ../../../secrets/secrets.yaml; }; diff --git a/systems/x86_64-linux/nuc/users.nix b/systems/x86_64-linux/nuc/users.nix index 7c73234..13c5f75 100755 --- a/systems/x86_64-linux/nuc/users.nix +++ b/systems/x86_64-linux/nuc/users.nix @@ -43,4 +43,4 @@ in }; }; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/steamdeck/boot.nix b/systems/x86_64-linux/steamdeck/boot.nix index 8b5e7cb..719c382 100755 --- a/systems/x86_64-linux/steamdeck/boot.nix +++ b/systems/x86_64-linux/steamdeck/boot.nix @@ -28,8 +28,8 @@ in lanzaboote = { settings = { console-mode = "max"; - timeout = "0"; - }; + timeout = "0"; + }; }; plymouth = { @@ -53,10 +53,10 @@ in # Disable CPU mitigations messages "mitigations=off" ]; - + bootspec.enable = true; }; - + # Further reduce systemd output systemd = { services.systemd-udev-settle.enable = false; diff --git a/systems/x86_64-linux/steamdeck/configuration.nix b/systems/x86_64-linux/steamdeck/configuration.nix index 536dd1c..54ac6ed 100755 --- a/systems/x86_64-linux/steamdeck/configuration.nix +++ b/systems/x86_64-linux/steamdeck/configuration.nix @@ -2,7 +2,13 @@ # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). -{ config, lib, pkgs, namespace, ... }: +{ + config, + lib, + pkgs, + namespace, + ... +}: { nix = { @@ -22,7 +28,12 @@ system = "x86_64-linux"; maxJobs = 10; sshUser = "admin"; - supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ]; + supportedFeatures = [ + "nixos-test" + "benchmark" + "big-parallel" + "kvm" + ]; } ]; }; @@ -80,4 +91,3 @@ }; }; } - diff --git a/systems/x86_64-linux/steamdeck/default.nix b/systems/x86_64-linux/steamdeck/default.nix index 287e02e..ac5cc5c 100644 --- a/systems/x86_64-linux/steamdeck/default.nix +++ b/systems/x86_64-linux/steamdeck/default.nix @@ -1,24 +1,25 @@ -{ # Snowfall Lib provides a customized `lib` instance with access to your flake's library - # as well as the libraries available from your flake's inputs. - lib, - # An instance of `pkgs` with your overlays and packages applied is also available. - pkgs, - # You also have access to your flake's inputs. - inputs, +# Snowfall Lib provides a customized `lib` instance with access to your flake's library +{ + # as well as the libraries available from your flake's inputs. + lib, + # An instance of `pkgs` with your overlays and packages applied is also available. + pkgs, + # You also have access to your flake's inputs. + inputs, - # Additional metadata is provided by Snowfall Lib. - namespace, # The namespace used for your flake, defaulting to "internal" if not set. - system, # The system architecture for this host (eg. `x86_64-linux`). - target, # The Snowfall Lib target for this system (eg. `x86_64-iso`). - format, # A normalized name for the system target (eg. `iso`). - virtual, # A boolean to determine whether this system is a virtual target using nixos-generators. - systems, # An attribute map of your defined hosts. + # Additional metadata is provided by Snowfall Lib. + namespace, # The namespace used for your flake, defaulting to "internal" if not set. + system, # The system architecture for this host (eg. `x86_64-linux`). + target, # The Snowfall Lib target for this system (eg. `x86_64-iso`). + format, # A normalized name for the system target (eg. `iso`). + virtual, # A boolean to determine whether this system is a virtual target using nixos-generators. + systems, # An attribute map of your defined hosts. - # All other arguments come from the system system. - config, - ... - }: - { + # All other arguments come from the system system. + config, + ... +}: +{ imports = [ ./boot.nix ./configuration.nix @@ -26,7 +27,7 @@ ./networking.nix ./sops.nix ]; - + ${namespace} = { hardware.disko.enable = true; bootloader.lanzaboote.enable = true; @@ -36,4 +37,4 @@ }; network.hostName = "steamdeck"; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/steamdeck/jovian.nix b/systems/x86_64-linux/steamdeck/jovian.nix index 2fabf8b..6984e52 100755 --- a/systems/x86_64-linux/steamdeck/jovian.nix +++ b/systems/x86_64-linux/steamdeck/jovian.nix @@ -21,4 +21,4 @@ hardware.has.amd.gpu = true; }; -} \ No newline at end of file +} diff --git a/systems/x86_64-linux/steamdeck/sops.nix b/systems/x86_64-linux/steamdeck/sops.nix index 519bc2b..77fdf5b 100755 --- a/systems/x86_64-linux/steamdeck/sops.nix +++ b/systems/x86_64-linux/steamdeck/sops.nix @@ -1,4 +1,9 @@ -{ config, lib, namespace, ... }: +{ + config, + lib, + namespace, + ... +}: let user = config.${namespace}.user.name; in @@ -67,37 +72,37 @@ in # ------------------------------ "secureboot/GUID" = { sopsFile = (lib.snowfall.fs.get-file "secrets/secrets.yaml"); -# path = "/etc/secureboot/GUID"; + # path = "/etc/secureboot/GUID"; mode = "0600"; }; "secureboot/keys/db-key" = { sopsFile = (lib.snowfall.fs.get-file "secrets/secrets.yaml"); -# path = "/etc/secureboot/keys/db/db.key"; + # path = "/etc/secureboot/keys/db/db.key"; mode = "0600"; }; "secureboot/keys/db-pem" = { sopsFile = (lib.snowfall.fs.get-file "secrets/secrets.yaml"); -# path = "/etc/secureboot/keys/db/db.pem"; + # path = "/etc/secureboot/keys/db/db.pem"; mode = "0600"; }; "secureboot/keys/KEK-key" = { sopsFile = (lib.snowfall.fs.get-file "secrets/secrets.yaml"); -# path = "/etc/secureboot/keys/KEK/KEK.key"; + # path = "/etc/secureboot/keys/KEK/KEK.key"; mode = "0600"; }; "secureboot/keys/KEK-pem" = { sopsFile = (lib.snowfall.fs.get-file "secrets/secrets.yaml"); -# path = "/etc/secureboot/keys/KEK/KEK.pem"; + # path = "/etc/secureboot/keys/KEK/KEK.pem"; mode = "0600"; }; "secureboot/keys/PK-key" = { sopsFile = (lib.snowfall.fs.get-file "secrets/secrets.yaml"); -# path = "/etc/secureboot/keys/PK/PK.key"; + # path = "/etc/secureboot/keys/PK/PK.key"; mode = "0600"; }; "secureboot/keys/PK-pem" = { sopsFile = (lib.snowfall.fs.get-file "secrets/secrets.yaml"); -# path = "/etc/secureboot/keys/PK/PK.pem"; + # path = "/etc/secureboot/keys/PK/PK.pem"; mode = "0600"; }; }; diff --git a/treefmt.nix b/treefmt.nix index 81fd4ee..600cdb0 100644 --- a/treefmt.nix +++ b/treefmt.nix @@ -2,17 +2,17 @@ projectRootFile = "flake.nix"; programs = { - actionlint.enable = true; + actionlint.enable = false; biome = { - enable = true; + enable = false; settings.formatter.formatWithErrors = true; }; - clang-format.enable = true; + clang-format.enable = false; deadnix = { enable = true; }; deno = { - enable = true; + enable = false; # Using biome for these excludes = [ "*.ts" @@ -21,26 +21,27 @@ "*.jsonc" ]; }; - fantomas.enable = true; - fish_indent.enable = true; - gofmt.enable = true; - isort.enable = true; + fantomas.enable = false; + fish_indent.enable = false; + gofmt.enable = false; + isort.enable = false; nixfmt.enable = true; # nufmt.enable = true; - ruff-check.enable = true; - ruff-format.enable = true; - rustfmt.enable = true; + ruff-check.enable = false; + ruff-format.enable = false; + rustfmt.enable = false; shfmt = { - enable = true; + enable = false; indent_size = 4; }; - statix.enable = true; - stylua.enable = true; - taplo.enable = true; + statix.enable = false; + stylua.enable = false; + taplo.enable = false; yamlfmt.enable = true; }; settings = { + fail-on-change = false; global.excludes = [ "*.editorconfig" "*.envrc" @@ -77,6 +78,6 @@ "*makefile" ]; - formatter.ruff-format.options = [ "--isolated" ]; + #formatter.ruff-format.options = [ "--isolated" ]; }; -} \ No newline at end of file +}