From f3821f0dfa31315991d665aa9b24890422c4f9a6 Mon Sep 17 00:00:00 2001 From: cnst Date: Fri, 29 Aug 2025 15:25:40 +0200 Subject: [PATCH] fmt --- flake.nix | 30 +- fmt-hooks.nix | 5 +- hosts/bunk/default.nix | 6 +- hosts/bunk/hardware-configuration.nix | 19 +- hosts/bunk/modules.nix | 10 +- hosts/default.nix | 191 ++++---- hosts/kima/default.nix | 6 +- hosts/kima/hardware-configuration.nix | 38 +- hosts/kima/modules.nix | 12 +- hosts/sobotka/default.nix | 9 +- hosts/sobotka/hardware-configuration.nix | 28 +- hosts/sobotka/modules.nix | 21 +- hosts/sobotka/server.nix | 3 +- hosts/toothpc/default.nix | 6 +- hosts/toothpc/hardware-configuration.nix | 21 +- hosts/toothpc/modules.nix | 12 +- hosts/ziggy/default.nix | 6 +- hosts/ziggy/hardware-configuration.nix | 13 +- hosts/ziggy/modules.nix | 18 +- hosts/ziggy/server.nix | 3 +- lib/repl/default.nix | 58 +++ modules/home/programs/aerc/default.nix | 6 +- modules/home/programs/ags/default.nix | 8 +- modules/home/programs/alacritty/default.nix | 6 +- modules/home/programs/anyrun/default.nix | 6 +- modules/home/programs/bash/default.nix | 6 +- modules/home/programs/chromium/default.nix | 6 +- modules/home/programs/discord/default.nix | 38 +- modules/home/programs/eza/default.nix | 6 +- modules/home/programs/firefox/default.nix | 13 +- modules/home/programs/fish/default.nix | 14 +- modules/home/programs/floorp/default.nix | 6 +- modules/home/programs/foot/default.nix | 6 +- modules/home/programs/fuzzel/default.nix | 6 +- modules/home/programs/ghostty/default.nix | 13 +- modules/home/programs/git/default.nix | 11 +- modules/home/programs/helix/default.nix | 160 ++++--- modules/home/programs/helix/gruvbox.nix | 408 +++++++++--------- modules/home/programs/helix/languages.nix | 143 +++--- modules/home/programs/hyprlock/default.nix | 6 +- modules/home/programs/jujutsu/default.nix | 22 +- modules/home/programs/kitty/default.nix | 6 +- modules/home/programs/lutris/default.nix | 6 +- modules/home/programs/mangohud/default.nix | 6 +- modules/home/programs/mpv/default.nix | 10 +- modules/home/programs/neovim/default.nix | 10 +- modules/home/programs/neovim/keybindings.nix | 4 +- modules/home/programs/neovim/lsp.nix | 19 +- .../home/programs/neovim/plugins/alpha.nix | 7 +- .../programs/neovim/plugins/autopairs.nix | 7 +- modules/home/programs/neovim/plugins/bqf.nix | 7 +- .../programs/neovim/plugins/bufferline.nix | 7 +- .../programs/neovim/plugins/colorizer.nix | 7 +- .../home/programs/neovim/plugins/comment.nix | 7 +- .../home/programs/neovim/plugins/conform.nix | 7 +- .../home/programs/neovim/plugins/copilot.nix | 7 +- .../home/programs/neovim/plugins/default.nix | 3 +- .../home/programs/neovim/plugins/fidget.nix | 7 +- .../home/programs/neovim/plugins/fugitive.nix | 7 +- .../home/programs/neovim/plugins/gitsigns.nix | 7 +- .../home/programs/neovim/plugins/lualine.nix | 7 +- .../home/programs/neovim/plugins/none-ls.nix | 7 +- modules/home/programs/neovim/plugins/oil.nix | 7 +- .../home/programs/neovim/plugins/plenary.nix | 7 +- .../neovim/plugins/range-highlight.nix | 7 +- .../programs/neovim/plugins/treesitter.nix | 7 +- .../programs/neovim/plugins/web-devicons.nix | 7 +- .../programs/neovim/plugins/which-key.nix | 7 +- modules/home/programs/neovim/syntaxes.nix | 37 +- modules/home/programs/nvf/default.nix | 6 +- modules/home/programs/nwg-bar/default.nix | 6 +- modules/home/programs/pkgs/default.nix | 25 +- modules/home/programs/rofi/default.nix | 6 +- modules/home/programs/ssh/default.nix | 6 +- modules/home/programs/steam/default.nix | 68 +-- modules/home/programs/tuirun/default.nix | 6 +- modules/home/programs/vscode/default.nix | 6 +- modules/home/programs/waybar/default.nix | 12 +- modules/home/programs/wezterm/default.nix | 10 +- modules/home/programs/yazi/default.nix | 12 +- modules/home/programs/yazi/theme/help.nix | 12 +- modules/home/programs/yazi/theme/input.nix | 12 +- modules/home/programs/yazi/theme/manager.nix | 26 +- modules/home/programs/yazi/theme/select.nix | 10 +- modules/home/programs/yazi/theme/status.nix | 20 +- modules/home/programs/yazi/theme/tasks.nix | 10 +- modules/home/programs/yazi/theme/which.nix | 20 +- modules/home/programs/zathura/default.nix | 6 +- modules/home/programs/zed-editor/default.nix | 6 +- modules/home/programs/zellij/default.nix | 6 +- modules/home/programs/zen/default.nix | 6 +- modules/home/programs/zsh/default.nix | 6 +- .../home/services/blueman-applet/default.nix | 6 +- modules/home/services/copyq/default.nix | 6 +- modules/home/services/dconf/default.nix | 6 +- modules/home/services/dunst/default.nix | 6 +- modules/home/services/gpg/default.nix | 6 +- modules/home/services/gtk/default.nix | 6 +- modules/home/services/gtk/wip.nix | 8 +- modules/home/services/hypridle/default.nix | 6 +- modules/home/services/hyprpaper/default.nix | 6 +- modules/home/services/mako/default.nix | 52 +-- modules/home/services/nix-index/default.nix | 8 +- modules/home/services/syncthing/default.nix | 6 +- modules/home/services/udiskie/default.nix | 6 +- modules/home/services/xdg/default.nix | 70 ++- modules/nixos/boot/kernel/default.nix | 92 ++-- modules/nixos/boot/kernel/security.nix | 2 +- modules/nixos/boot/loader/default.nix | 15 +- modules/nixos/hardware/bluetooth/default.nix | 6 +- modules/nixos/hardware/graphics/default.nix | 133 +++--- modules/nixos/hardware/logitech/default.nix | 6 +- modules/nixos/hardware/network/default.nix | 49 ++- modules/nixos/programs/android/default.nix | 6 +- modules/nixos/programs/anyrun/default.nix | 6 +- modules/nixos/programs/beekeeper/default.nix | 6 +- modules/nixos/programs/blender/default.nix | 12 +- modules/nixos/programs/corectrl/default.nix | 6 +- modules/nixos/programs/fish/default.nix | 6 +- modules/nixos/programs/gamemode/default.nix | 6 +- modules/nixos/programs/gamescope/default.nix | 6 +- modules/nixos/programs/gimp/default.nix | 6 +- modules/nixos/programs/gnome/default.nix | 6 +- .../nixos/programs/hyprland/appearance.nix | 9 +- modules/nixos/programs/hyprland/default.nix | 13 +- modules/nixos/programs/hyprland/inputs.nix | 6 +- modules/nixos/programs/hyprland/keybinds.nix | 15 +- modules/nixos/programs/hyprland/layout.nix | 53 ++- modules/nixos/programs/hyprland/startup.nix | 39 +- modules/nixos/programs/inkscape/default.nix | 6 +- modules/nixos/programs/lact/default.nix | 10 +- modules/nixos/programs/lutris/default.nix | 6 +- modules/nixos/programs/microfetch/default.nix | 8 +- .../programs/mysql-workbench/default.nix | 6 +- modules/nixos/programs/nh/default.nix | 6 +- modules/nixos/programs/npm/default.nix | 6 +- modules/nixos/programs/obsidian/default.nix | 6 +- modules/nixos/programs/pkgs/default.nix | 16 +- modules/nixos/programs/steam/default.nix | 6 +- modules/nixos/programs/thunar/default.nix | 6 +- modules/nixos/programs/yubikey/default.nix | 6 +- modules/nixos/programs/zsh/default.nix | 6 +- modules/nixos/services/agenix/default.nix | 13 +- modules/nixos/services/blueman/default.nix | 6 +- modules/nixos/services/dbus/default.nix | 6 +- modules/nixos/services/dconf/default.nix | 6 +- modules/nixos/services/flatpak/default.nix | 14 +- modules/nixos/services/fwupd/default.nix | 6 +- .../nixos/services/gnome-keyring/default.nix | 6 +- modules/nixos/services/greetd/default.nix | 39 +- modules/nixos/services/gvfs/default.nix | 6 +- modules/nixos/services/kanata/default.nix | 6 +- modules/nixos/services/locate/default.nix | 6 +- modules/nixos/services/mullvad/default.nix | 6 +- modules/nixos/services/nfs/default.nix | 31 +- modules/nixos/services/nix-ld/default.nix | 6 +- modules/nixos/services/openssh/default.nix | 6 +- modules/nixos/services/pcscd/default.nix | 6 +- modules/nixos/services/pipewire/default.nix | 6 +- modules/nixos/services/polkit/default.nix | 12 +- modules/nixos/services/powerd/default.nix | 6 +- modules/nixos/services/psd/default.nix | 6 +- modules/nixos/services/samba/default.nix | 6 +- modules/nixos/services/scx/default.nix | 21 +- modules/nixos/services/udisks/default.nix | 6 +- modules/nixos/services/xserver/default.nix | 22 +- modules/nixos/services/zram/default.nix | 6 +- modules/nixos/system/devpkgs/default.nix | 6 +- modules/nixos/system/fonts/default.nix | 14 +- modules/nixos/system/locale/default.nix | 15 +- modules/nixos/system/xdg/default.nix | 22 +- modules/server/bazarr/default.nix | 6 +- modules/server/caddy/default.nix | 25 +- modules/server/default.nix | 6 +- modules/server/fail2ban/default.nix | 92 ++-- modules/server/homepage-dashboard/default.nix | 198 ++++----- modules/server/jellyfin/default.nix | 6 +- modules/server/jellyseerr/default.nix | 6 +- modules/server/lidarr/default.nix | 6 +- modules/server/podman/default.nix | 26 +- modules/server/prowlarr/default.nix | 6 +- modules/server/radarr/default.nix | 6 +- modules/server/sonarr/default.nix | 6 +- modules/server/unbound/default.nix | 6 +- modules/server/uptime-kuma/default.nix | 6 +- modules/server/vaultwarden/default.nix | 10 +- modules/settings/accounts/default.nix | 19 +- modules/settings/monitors/default.nix | 8 +- modules/settings/theme/default.nix | 6 +- nix/default.nix | 53 ++- nix/home-manager/default.nix | 3 +- nix/shell/default.nix | 5 +- pkgs/default.nix | 15 + pkgs/repl/default.nix | 26 ++ scripts/default.nix | 164 ++++--- secrets/secrets.nix | 117 ++++- users/cnst/default.nix | 8 +- users/cnst/modules/default.nix | 21 +- users/cnst/variables/default.nix | 41 +- users/default.nix | 47 +- users/toothpick/default.nix | 8 +- 201 files changed, 2461 insertions(+), 1546 deletions(-) create mode 100644 lib/repl/default.nix create mode 100644 pkgs/default.nix create mode 100644 pkgs/repl/default.nix diff --git a/flake.nix b/flake.nix index b1304291..4de035eb 100644 --- a/flake.nix +++ b/flake.nix @@ -1,23 +1,37 @@ { description = "cnix nix"; - outputs = inputs: - inputs.flake-parts.lib.mkFlake {inherit inputs;} { - systems = ["x86_64-linux" "aarch64-linux"]; + outputs = + inputs: + inputs.flake-parts.lib.mkFlake { inherit inputs; } { + systems = [ + "x86_64-linux" + "aarch64-linux" + ]; imports = [ ./users ./hosts ./modules + ./pkgs ./fmt-hooks.nix ]; - perSystem = {pkgs, ...}: { - devShells = import ./nix/shell { - inherit pkgs inputs; + perSystem = + { config, pkgs, ... }: + { + devShells.default = pkgs.mkShell { + packages = [ + pkgs.git + config.packages.repl + ]; + name = "dots"; + env.DIRENV_LOG_FORMAT = ""; + shellHook = '' + ${config.pre-commit.installationScript} + ''; + }; }; - formatter = pkgs.alejandra; - }; }; inputs = { diff --git a/fmt-hooks.nix b/fmt-hooks.nix index 1b194627..2890d357 100644 --- a/fmt-hooks.nix +++ b/fmt-hooks.nix @@ -1,4 +1,5 @@ -{inputs, ...}: { +{ inputs, ... }: +{ imports = [ inputs.git-hooks.flakeModule inputs.treefmt-nix.flakeModule @@ -6,7 +7,7 @@ perSystem = { pre-commit.settings = { - excludes = ["flake.lock"]; + excludes = [ "flake.lock" ]; hooks.treefmt.enable = true; }; diff --git a/hosts/bunk/default.nix b/hosts/bunk/default.nix index c9ef7162..b0a109ae 100644 --- a/hosts/bunk/default.nix +++ b/hosts/bunk/default.nix @@ -3,9 +3,11 @@ config, pkgs, ... -}: let +}: +let ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; -in { +in +{ users.users.cnst = { isNormalUser = true; shell = pkgs.fish; diff --git a/hosts/bunk/hardware-configuration.nix b/hosts/bunk/hardware-configuration.nix index 64de3068..9a4a89b9 100644 --- a/hosts/bunk/hardware-configuration.nix +++ b/hosts/bunk/hardware-configuration.nix @@ -6,8 +6,9 @@ lib, modulesPath, ... -}: { - imports = [(modulesPath + "/installer/scan/not-detected.nix")]; +}: +{ + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; boot = { initrd = { availableKernelModules = [ @@ -18,11 +19,11 @@ "usb_storage" "sd_mod" ]; - kernelModules = ["amdgpu"]; + kernelModules = [ "amdgpu" ]; }; - kernelModules = ["kvm-amd"]; - extraModulePackages = []; + kernelModules = [ "kvm-amd" ]; + extraModulePackages = [ ]; }; fileSystems."/" = { @@ -30,12 +31,16 @@ fsType = "ext4"; }; - boot.initrd.luks.devices."luks-e75ac560-748f-4071-bbe7-479678400be3".device = "/dev/disk/by-uuid/e75ac560-748f-4071-bbe7-479678400be3"; + boot.initrd.luks.devices."luks-e75ac560-748f-4071-bbe7-479678400be3".device = + "/dev/disk/by-uuid/e75ac560-748f-4071-bbe7-479678400be3"; fileSystems."/boot" = { device = "/dev/disk/by-uuid/7E84-D168"; fsType = "vfat"; - options = ["fmask=0022" "dmask=0022"]; + options = [ + "fmask=0022" + "dmask=0022" + ]; }; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking diff --git a/hosts/bunk/modules.nix b/hosts/bunk/modules.nix index d1adde49..aa11515e 100644 --- a/hosts/bunk/modules.nix +++ b/hosts/bunk/modules.nix @@ -3,7 +3,7 @@ boot = { kernel = { variant = "latest"; - hardware = ["amd"]; + hardware = [ "amd" ]; }; loader = { default = { @@ -20,7 +20,7 @@ }; graphics = { enable = true; - vendors = ["amd"]; + vendors = [ "amd" ]; }; logitech = { enable = false; @@ -29,7 +29,11 @@ enable = true; interfaces = { "wlp6s0" = { - allowedTCPPorts = [22 80 443]; + allowedTCPPorts = [ + 22 + 80 + 443 + ]; }; }; }; diff --git a/hosts/default.nix b/hosts/default.nix index cbce303c..a60fcec1 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -4,97 +4,112 @@ homeImports, self, ... -}: { - flake.nixosConfigurations = let - # custom paths - userConfig = "${self}/home"; - systemConfig = "${self}/system"; - hostConfig = "${self}/hosts"; +}: +{ + flake.nixosConfigurations = + let + # custom paths + userConfig = "${self}/home"; + systemConfig = "${self}/system"; + hostConfig = "${self}/hosts"; - cnstConfig = "${self}/users/cnst"; - toothpickConfig = "${self}/users/toothpick"; + cnstConfig = "${self}/users/cnst"; + toothpickConfig = "${self}/users/toothpick"; - umodPath = "${self}/modules/home"; - smodPath = "${self}/modules/system"; + umodPath = "${self}/modules/home"; + smodPath = "${self}/modules/system"; - # shorten paths - inherit (inputs.nixpkgs.lib) nixosSystem; + # shorten paths + inherit (inputs.nixpkgs.lib) nixosSystem; - # get these into the module system - specialArgs = {inherit inputs self userConfig systemConfig hostConfig cnstConfig toothpickConfig umodPath smodPath;}; - in { - kima = nixosSystem { - inherit specialArgs; - modules = [ - ./kima - "${self}/nix" - { - home-manager = { - users.cnst.imports = homeImports."cnst@kima"; - extraSpecialArgs = specialArgs; - }; - } - self.nixosModules.nixos - self.nixosModules.settings - inputs.chaotic.nixosModules.default - inputs.agenix.nixosModules.default - ]; + # get these into the module system + specialArgs = { + inherit + inputs + self + userConfig + systemConfig + hostConfig + cnstConfig + toothpickConfig + umodPath + smodPath + ; + }; + in + { + kima = nixosSystem { + inherit specialArgs; + modules = [ + ./kima + "${self}/nix" + { + home-manager = { + users.cnst.imports = homeImports."cnst@kima"; + extraSpecialArgs = specialArgs; + }; + } + self.nixosModules.nixos + self.nixosModules.settings + inputs.chaotic.nixosModules.default + inputs.agenix.nixosModules.default + ]; + }; + bunk = nixosSystem { + inherit specialArgs; + modules = [ + ./bunk + "${self}/nix" + { + home-manager = { + users.cnst.imports = homeImports."cnst@bunk"; + extraSpecialArgs = specialArgs; + }; + } + self.nixosModules.nixos + self.nixosModules.settings + inputs.chaotic.nixosModules.default + inputs.agenix.nixosModules.default + ]; + }; + sobotka = nixosSystem { + inherit specialArgs; + modules = [ + ./sobotka + "${self}/nix" + self.nixosModules.nixos + self.nixosModules.settings + self.nixosModules.server + inputs.agenix.nixosModules.default + ]; + }; + ziggy = nixosSystem { + inherit specialArgs; + modules = [ + ./ziggy + "${self}/nix" + self.nixosModules.nixos + self.nixosModules.settings + self.nixosModules.server + inputs.agenix.nixosModules.default + ]; + }; + toothpc = nixosSystem { + inherit specialArgs; + modules = [ + ./toothpc + "${self}/nix" + { + home-manager = { + users.toothpick.imports = homeImports."toothpick@toothpc"; + extraSpecialArgs = specialArgs; + }; + } + self.nixosModules.nixos + self.nixosModules.settings + inputs.chaotic.nixosModules.default + inputs.agenix.nixosModules.default + ]; + }; }; - bunk = nixosSystem { - inherit specialArgs; - modules = [ - ./bunk - "${self}/nix" - { - home-manager = { - users.cnst.imports = homeImports."cnst@bunk"; - extraSpecialArgs = specialArgs; - }; - } - self.nixosModules.nixos - self.nixosModules.settings - inputs.chaotic.nixosModules.default - inputs.agenix.nixosModules.default - ]; - }; - sobotka = nixosSystem { - inherit specialArgs; - modules = [ - ./sobotka - "${self}/nix" - self.nixosModules.nixos - self.nixosModules.settings - self.nixosModules.server - inputs.agenix.nixosModules.default - ]; - }; - ziggy = nixosSystem { - inherit specialArgs; - modules = [ - ./ziggy - "${self}/nix" - self.nixosModules.nixos - self.nixosModules.settings - self.nixosModules.server - inputs.agenix.nixosModules.default - ]; - }; - toothpc = nixosSystem { - inherit specialArgs; - modules = [ - ./toothpc - "${self}/nix" - { - home-manager = { - users.toothpick.imports = homeImports."toothpick@toothpc"; - extraSpecialArgs = specialArgs; - }; - } - self.nixosModules.nixos - self.nixosModules.settings - inputs.chaotic.nixosModules.default - inputs.agenix.nixosModules.default - ]; - }; - }; } diff --git a/hosts/kima/default.nix b/hosts/kima/default.nix index c3d22010..6f534ba9 100644 --- a/hosts/kima/default.nix +++ b/hosts/kima/default.nix @@ -3,9 +3,11 @@ config, pkgs, ... -}: let +}: +let ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; -in { +in +{ users.users.cnst = { isNormalUser = true; shell = pkgs.fish; diff --git a/hosts/kima/hardware-configuration.nix b/hosts/kima/hardware-configuration.nix index bf662adf..2e03dbce 100644 --- a/hosts/kima/hardware-configuration.nix +++ b/hosts/kima/hardware-configuration.nix @@ -7,20 +7,31 @@ pkgs, modulesPath, ... -}: { +}: +{ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"]; - boot.initrd.kernelModules = ["amdgpu"]; - boot.kernelModules = ["kvm-amd" "i2c-dev"]; - boot.extraModulePackages = []; + boot.initrd.availableKernelModules = [ + "nvme" + "xhci_pci" + "ahci" + "usb_storage" + "usbhid" + "sd_mod" + ]; + boot.initrd.kernelModules = [ "amdgpu" ]; + boot.kernelModules = [ + "kvm-amd" + "i2c-dev" + ]; + boot.extraModulePackages = [ ]; fileSystems."/" = { device = "/dev/disk/by-uuid/90eafb57-0f89-4c2a-b417-4e0f2fba5f47"; fsType = "btrfs"; - options = ["subvol=root"]; + options = [ "subvol=root" ]; }; boot.initrd.luks.devices."enc".device = "/dev/disk/by-uuid/36144799-13f2-4166-9bfe-b29c3df435ab"; @@ -28,35 +39,38 @@ fileSystems."/home" = { device = "/dev/disk/by-uuid/90eafb57-0f89-4c2a-b417-4e0f2fba5f47"; fsType = "btrfs"; - options = ["subvol=home"]; + options = [ "subvol=home" ]; }; fileSystems."/nix" = { device = "/dev/disk/by-uuid/90eafb57-0f89-4c2a-b417-4e0f2fba5f47"; fsType = "btrfs"; - options = ["subvol=nix"]; + options = [ "subvol=nix" ]; }; fileSystems."/persist" = { device = "/dev/disk/by-uuid/90eafb57-0f89-4c2a-b417-4e0f2fba5f47"; fsType = "btrfs"; - options = ["subvol=persist"]; + options = [ "subvol=persist" ]; }; fileSystems."/var/log" = { device = "/dev/disk/by-uuid/90eafb57-0f89-4c2a-b417-4e0f2fba5f47"; fsType = "btrfs"; - options = ["subvol=log"]; + options = [ "subvol=log" ]; neededForBoot = true; }; fileSystems."/boot" = { device = "/dev/disk/by-uuid/1D4A-3121"; fsType = "vfat"; - options = ["fmask=0022" "dmask=0022"]; + options = [ + "fmask=0022" + "dmask=0022" + ]; }; - swapDevices = [{device = "/dev/disk/by-uuid/91e16a5f-6a1c-4c7d-aa61-5823068fdaf0";}]; + swapDevices = [ { device = "/dev/disk/by-uuid/91e16a5f-6a1c-4c7d-aa61-5823068fdaf0"; } ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/hosts/kima/modules.nix b/hosts/kima/modules.nix index 643dc82e..92f3b5c6 100644 --- a/hosts/kima/modules.nix +++ b/hosts/kima/modules.nix @@ -3,8 +3,8 @@ boot = { kernel = { variant = "latest"; - hardware = ["amd"]; - extraKernelParams = ["amdgpu.dcdebugmask=0x10"]; + hardware = [ "amd" ]; + extraKernelParams = [ "amdgpu.dcdebugmask=0x10" ]; }; loader = { default = { @@ -21,7 +21,7 @@ }; graphics = { enable = true; - vendors = ["amd"]; + vendors = [ "amd" ]; }; logitech = { enable = true; @@ -30,7 +30,11 @@ enable = true; interfaces = { "eno1" = { - allowedTCPPorts = [22 80 443]; + allowedTCPPorts = [ + 22 + 80 + 443 + ]; }; }; }; diff --git a/hosts/sobotka/default.nix b/hosts/sobotka/default.nix index ec399b88..35be3066 100644 --- a/hosts/sobotka/default.nix +++ b/hosts/sobotka/default.nix @@ -3,9 +3,11 @@ config, pkgs, ... -}: let +}: +let ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; -in { +in +{ users.users.cnst = { isNormalUser = true; shell = pkgs.fish; @@ -49,7 +51,8 @@ in { ./server.nix ]; - boot.initrd.luks.devices."luks-47b35d4b-467a-4637-a5f9-45177da62897".device = "/dev/disk/by-uuid/47b35d4b-467a-4637-a5f9-45177da62897"; + boot.initrd.luks.devices."luks-47b35d4b-467a-4637-a5f9-45177da62897".device = + "/dev/disk/by-uuid/47b35d4b-467a-4637-a5f9-45177da62897"; networking = { hostName = "sobotka"; diff --git a/hosts/sobotka/hardware-configuration.nix b/hosts/sobotka/hardware-configuration.nix index be0b25df..5febf188 100644 --- a/hosts/sobotka/hardware-configuration.nix +++ b/hosts/sobotka/hardware-configuration.nix @@ -7,31 +7,43 @@ pkgs, modulesPath, ... -}: { +}: +{ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; - boot.initrd.kernelModules = ["amdgpu"]; - boot.kernelModules = []; - boot.extraModulePackages = []; + boot.initrd.availableKernelModules = [ + "nvme" + "xhci_pci" + "ahci" + "usbhid" + "usb_storage" + "sd_mod" + ]; + boot.initrd.kernelModules = [ "amdgpu" ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; fileSystems."/" = { device = "/dev/disk/by-uuid/a0a3595f-e61c-475c-8f4e-bfbb05582c20"; fsType = "ext4"; }; - boot.initrd.luks.devices."luks-4f289fde-55ed-4b05-a6ee-d396db2a887b".device = "/dev/disk/by-uuid/4f289fde-55ed-4b05-a6ee-d396db2a887b"; + boot.initrd.luks.devices."luks-4f289fde-55ed-4b05-a6ee-d396db2a887b".device = + "/dev/disk/by-uuid/4f289fde-55ed-4b05-a6ee-d396db2a887b"; fileSystems."/boot" = { device = "/dev/disk/by-uuid/E03E-5458"; fsType = "vfat"; - options = ["fmask=0077" "dmask=0077"]; + options = [ + "fmask=0077" + "dmask=0077" + ]; }; swapDevices = [ - {device = "/dev/disk/by-uuid/704e09db-c7dd-462b-9560-47bbf845905d";} + { device = "/dev/disk/by-uuid/704e09db-c7dd-462b-9560-47bbf845905d"; } ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking diff --git a/hosts/sobotka/modules.nix b/hosts/sobotka/modules.nix index 5bbb2bea..58f3efc1 100644 --- a/hosts/sobotka/modules.nix +++ b/hosts/sobotka/modules.nix @@ -3,8 +3,8 @@ boot = { kernel = { variant = "latest"; - hardware = ["amd"]; - extraKernelParams = []; + hardware = [ "amd" ]; + extraKernelParams = [ ]; }; loader = { default = { @@ -21,7 +21,10 @@ }; graphics = { enable = true; - vendors = ["intel" "amd"]; + vendors = [ + "intel" + "amd" + ]; }; logitech = { enable = false; @@ -30,8 +33,16 @@ enable = true; interfaces = { "enp6s0" = { - allowedTCPPorts = [22 80 443 8090]; - allowedUDPPorts = [58846 6881]; + allowedTCPPorts = [ + 22 + 80 + 443 + 8090 + ]; + allowedUDPPorts = [ + 58846 + 6881 + ]; }; }; }; diff --git a/hosts/sobotka/server.nix b/hosts/sobotka/server.nix index 4c80f9f5..cbf1eeae 100644 --- a/hosts/sobotka/server.nix +++ b/hosts/sobotka/server.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{ config, ... }: +{ server = { enable = true; email = "adam@cnst.dev"; diff --git a/hosts/toothpc/default.nix b/hosts/toothpc/default.nix index 09fb1611..420b1f7f 100644 --- a/hosts/toothpc/default.nix +++ b/hosts/toothpc/default.nix @@ -3,9 +3,11 @@ config, pkgs, ... -}: let +}: +let ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; -in { +in +{ users.users.toothpick = { isNormalUser = true; shell = pkgs.zsh; diff --git a/hosts/toothpc/hardware-configuration.nix b/hosts/toothpc/hardware-configuration.nix index e0d5b455..068d749b 100644 --- a/hosts/toothpc/hardware-configuration.nix +++ b/hosts/toothpc/hardware-configuration.nix @@ -7,8 +7,9 @@ pkgs, modulesPath, ... -}: { - imports = [(modulesPath + "/installer/scan/not-detected.nix")]; +}: +{ + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; boot = { initrd = { @@ -20,14 +21,14 @@ "usb_storage" "sd_mod" ]; - kernelModules = []; + kernelModules = [ ]; }; - kernelModules = []; + kernelModules = [ ]; kernelParams = [ "intel_pstate=active" "nvidia_drm.modeset=1" ]; - extraModulePackages = []; + extraModulePackages = [ ]; }; fileSystems."/" = { @@ -35,15 +36,19 @@ fsType = "ext4"; }; - boot.initrd.luks.devices."luks-81dcb5e4-7adb-44ee-99df-69e366f8b735".device = "/dev/disk/by-uuid/81dcb5e4-7adb-44ee-99df-69e366f8b735"; + boot.initrd.luks.devices."luks-81dcb5e4-7adb-44ee-99df-69e366f8b735".device = + "/dev/disk/by-uuid/81dcb5e4-7adb-44ee-99df-69e366f8b735"; fileSystems."/boot" = { device = "/dev/disk/by-uuid/CA19-5F2A"; fsType = "vfat"; - options = ["fmask=0022" "dmask=0022"]; + options = [ + "fmask=0022" + "dmask=0022" + ]; }; - swapDevices = []; + swapDevices = [ ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/hosts/toothpc/modules.nix b/hosts/toothpc/modules.nix index e1f7813c..ddcf7e29 100644 --- a/hosts/toothpc/modules.nix +++ b/hosts/toothpc/modules.nix @@ -3,7 +3,7 @@ boot = { kernel = { variant = "latest"; - hardware = ["nvidia"]; + hardware = [ "nvidia" ]; }; loader = { default = { @@ -20,7 +20,7 @@ }; graphics = { enable = true; - vendors = ["nvidia"]; + vendors = [ "nvidia" ]; nvidia = { package = "latest"; open = true; @@ -33,7 +33,11 @@ enable = true; interfaces = { "enp4s0" = { - allowedTCPPorts = [22 80 443]; + allowedTCPPorts = [ + 22 + 80 + 443 + ]; }; }; }; @@ -189,7 +193,7 @@ enable = true; }; xserver = { - videoDrivers = ["nvidia"]; + videoDrivers = [ "nvidia" ]; xkbLayout = "se"; }; zram = { diff --git a/hosts/ziggy/default.nix b/hosts/ziggy/default.nix index af79ea24..c3b93cc9 100644 --- a/hosts/ziggy/default.nix +++ b/hosts/ziggy/default.nix @@ -3,9 +3,11 @@ config, pkgs, ... -}: let +}: +let ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; -in { +in +{ users.users.cnst = { isNormalUser = true; shell = pkgs.fish; diff --git a/hosts/ziggy/hardware-configuration.nix b/hosts/ziggy/hardware-configuration.nix index 028f9196..bb891f7a 100644 --- a/hosts/ziggy/hardware-configuration.nix +++ b/hosts/ziggy/hardware-configuration.nix @@ -7,22 +7,23 @@ pkgs, modulesPath, ... -}: { +}: +{ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = ["usbhid"]; - boot.initrd.kernelModules = []; - boot.kernelModules = []; - boot.extraModulePackages = []; + boot.initrd.availableKernelModules = [ "usbhid" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; fileSystems."/" = { device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; fsType = "ext4"; }; - swapDevices = [{device = "/swapfile";}]; + swapDevices = [ { device = "/swapfile"; } ]; nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; } diff --git a/hosts/ziggy/modules.nix b/hosts/ziggy/modules.nix index 804cafca..c077bf68 100644 --- a/hosts/ziggy/modules.nix +++ b/hosts/ziggy/modules.nix @@ -3,8 +3,8 @@ boot = { kernel = { variant = "latest"; - hardware = []; - extraKernelParams = []; + hardware = [ ]; + extraKernelParams = [ ]; }; loader = { default = { @@ -21,7 +21,7 @@ }; graphics = { enable = false; - vendors = []; + vendors = [ ]; }; logitech = { enable = false; @@ -30,8 +30,16 @@ enable = true; interfaces = { "enu1u1" = { - allowedTCPPorts = [22 80 443 8090]; - allowedUDPPorts = [58846 6881]; + allowedTCPPorts = [ + 22 + 80 + 443 + 8090 + ]; + allowedUDPPorts = [ + 58846 + 6881 + ]; }; }; }; diff --git a/hosts/ziggy/server.nix b/hosts/ziggy/server.nix index cccfec18..ae3818a6 100644 --- a/hosts/ziggy/server.nix +++ b/hosts/ziggy/server.nix @@ -1,4 +1,5 @@ -{config, ...}: { +{ config, ... }: +{ server = { enable = true; email = "adam@cnst.dev"; diff --git a/lib/repl/default.nix b/lib/repl/default.nix new file mode 100644 index 00000000..da045b11 --- /dev/null +++ b/lib/repl/default.nix @@ -0,0 +1,58 @@ +# yanked from @fufexan +{ + flakePath ? null, + hostnamePath ? "/etc/hostname", + registryPath ? /etc/nix/registry.json, +}: +let + inherit (builtins) + getFlake + head + match + currentSystem + readFile + pathExists + filter + fromJSON + ; + + selfFlake = + if pathExists registryPath then + filter (it: it.from.id == "self") (fromJSON (readFile registryPath)).flakes + else + [ ]; + + flakePath' = toString ( + if flakePath != null then + flakePath + else if selfFlake != [ ] then + (head selfFlake).to.path + else + "/etc/nixos" + ); + + flake = if pathExists flakePath' then getFlake flakePath' else { }; + hostname = + if pathExists hostnamePath then head (match "([a-zA-Z0-9\\-]+)\n" (readFile hostnamePath)) else ""; + + nixpkgsFromInputsPath = flake.inputs.nixpkgs.outPath or ""; + nixpkgs = + flake.pkgs.${currentSystem}.nixpkgs + or (if nixpkgsFromInputsPath != "" then import nixpkgsFromInputsPath { } else { }); + + nixpkgsOutput = removeAttrs (nixpkgs // nixpkgs.lib or { }) [ + "options" + "config" + ]; +in +{ + inherit flake; +} +// flake +// builtins +// (flake.nixosConfigurations or { }) +// flake.nixosConfigurations.${hostname} or { } +// nixpkgsOutput +// { + getFlake = path: getFlake (toString path); +} diff --git a/modules/home/programs/aerc/default.nix b/modules/home/programs/aerc/default.nix index bb171ab6..a62e352c 100644 --- a/modules/home/programs/aerc/default.nix +++ b/modules/home/programs/aerc/default.nix @@ -4,10 +4,12 @@ osConfig, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.aerc; -in { +in +{ options = { home.programs.aerc.enable = mkEnableOption "Enables aerc"; }; diff --git a/modules/home/programs/ags/default.nix b/modules/home/programs/ags/default.nix index 40dd0fe5..755db9a6 100644 --- a/modules/home/programs/ags/default.nix +++ b/modules/home/programs/ags/default.nix @@ -4,11 +4,13 @@ pkgs, inputs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.ags; -in { - imports = [inputs.ags.homeManagerModules.default]; +in +{ + imports = [ inputs.ags.homeManagerModules.default ]; options = { home.programs.ags.enable = mkEnableOption "Enables ags"; }; diff --git a/modules/home/programs/alacritty/default.nix b/modules/home/programs/alacritty/default.nix index 8a93a370..f26e56b0 100644 --- a/modules/home/programs/alacritty/default.nix +++ b/modules/home/programs/alacritty/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.alacritty; -in { +in +{ options = { home.programs.alacritty.enable = mkEnableOption "Enables firefox"; }; diff --git a/modules/home/programs/anyrun/default.nix b/modules/home/programs/anyrun/default.nix index d93101aa..943d4bf4 100644 --- a/modules/home/programs/anyrun/default.nix +++ b/modules/home/programs/anyrun/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.anyrun; -in { +in +{ imports = [ inputs.anyrun.homeManagerModules.default ]; diff --git a/modules/home/programs/bash/default.nix b/modules/home/programs/bash/default.nix index cb2acb23..18f770f4 100644 --- a/modules/home/programs/bash/default.nix +++ b/modules/home/programs/bash/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.bash; -in { +in +{ options = { home.programs.bash.enable = mkEnableOption "Enables bash"; }; diff --git a/modules/home/programs/chromium/default.nix b/modules/home/programs/chromium/default.nix index dbea5db1..b1d131a1 100644 --- a/modules/home/programs/chromium/default.nix +++ b/modules/home/programs/chromium/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.chromium; -in { +in +{ options = { home.programs.chromium.enable = mkEnableOption "Enables chromium"; }; diff --git a/modules/home/programs/discord/default.nix b/modules/home/programs/discord/default.nix index 9153a557..007485ec 100644 --- a/modules/home/programs/discord/default.nix +++ b/modules/home/programs/discord/default.nix @@ -3,8 +3,14 @@ config, lib, ... -}: let - inherit (lib) mkIf mkOption mkEnableOption types; +}: +let + inherit (lib) + mkIf + mkOption + mkEnableOption + types + ; # Workaround for https://github.com/GooseMod/OpenAsar/issues/202 # Needlessly complicated, but it's dynamic! :D variantMapping = { @@ -18,24 +24,32 @@ }; canary = { dir = "discordcanary"; - package = pkgs.discord-canary.override {withOpenASAR = true;}; + package = pkgs.discord-canary.override { withOpenASAR = true; }; }; vesktop = { dir = "vesktop"; package = pkgs.vesktop; }; }; - getVariantConfig = variant: - if builtins.hasAttr variant variantMapping - then variantMapping.${variant} - else throw "Unknown package variant: ${variant}"; + getVariantConfig = + variant: + if builtins.hasAttr variant variantMapping then + variantMapping.${variant} + else + throw "Unknown package variant: ${variant}"; cfg = config.home.programs.discord; -in { +in +{ options = { home.programs.discord = { enable = mkEnableOption "Enables discord"; variant = mkOption { - type = types.enum ["stable" "ptb" "canary" "vesktop"]; + type = types.enum [ + "stable" + "ptb" + "canary" + "vesktop" + ]; default = "stable"; description = "Preferred package version to use"; }; @@ -44,13 +58,11 @@ in { config = mkIf cfg.enable { home = { sessionVariables.DISCORD_USER_DATA_DIR = "$HOME/.config/${(getVariantConfig cfg.variant).dir}"; - packages = [(getVariantConfig cfg.variant).package]; + packages = [ (getVariantConfig cfg.variant).package ]; }; xdg.configFile = mkIf (cfg.variant == "vesktop") { "vesktop/themes/base16.css".text = - /* - css - */ + # css '' /** * @name Material Gruvbox diff --git a/modules/home/programs/eza/default.nix b/modules/home/programs/eza/default.nix index 1777d443..214406be 100644 --- a/modules/home/programs/eza/default.nix +++ b/modules/home/programs/eza/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.eza; -in { +in +{ options = { home.programs.eza.enable = mkEnableOption "Enables eza"; }; diff --git a/modules/home/programs/firefox/default.nix b/modules/home/programs/firefox/default.nix index ae06edf1..b1b78f41 100644 --- a/modules/home/programs/firefox/default.nix +++ b/modules/home/programs/firefox/default.nix @@ -4,10 +4,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.firefox; -in { +in +{ imports = [ # inputs.nur.hmModules.nur ]; @@ -24,9 +26,12 @@ in { force = true; default = "ddg"; privateDefault = "ddg"; - order = ["ddg" "google"]; + order = [ + "ddg" + "google" + ]; }; - bookmarks = {}; + bookmarks = { }; # extensions = with config.nur.repos.rycee.firefox-addons; [ # ublock-origin # sponsorblock diff --git a/modules/home/programs/fish/default.nix b/modules/home/programs/fish/default.nix index 03c6ea89..d1ba5795 100644 --- a/modules/home/programs/fish/default.nix +++ b/modules/home/programs/fish/default.nix @@ -3,12 +3,14 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; inherit (lib.meta) getExe; inherit (pkgs) eza bat; cfg = config.home.programs.fish; -in { +in +{ options = { home.programs.fish.enable = mkEnableOption "Enables fish home configuration"; }; @@ -59,17 +61,13 @@ in { up-or-search = lib.readFile ./up-or-search.fish; # Check stuff in PATH nix-inspect = - /* - fish - */ + # fish '' set -s PATH | grep "PATH\[.*/nix/store" | cut -d '|' -f2 | grep -v -e "-man" -e "-terminfo" | perl -pe 's:^/nix/store/\w{32}-([^/]*)/bin$:\1:' | sort | uniq ''; }; interactiveShellInit = - /* - fish - */ + # fish '' # Open command buffer in vim when alt+e is pressed bind \ee edit_command_buffer diff --git a/modules/home/programs/floorp/default.nix b/modules/home/programs/floorp/default.nix index 072f55c4..13a3b479 100644 --- a/modules/home/programs/floorp/default.nix +++ b/modules/home/programs/floorp/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.floorp; -in { +in +{ options = { home.programs.floorp.enable = mkEnableOption "Enables floorp browser"; }; diff --git a/modules/home/programs/foot/default.nix b/modules/home/programs/foot/default.nix index 509ff485..ee620c3f 100644 --- a/modules/home/programs/foot/default.nix +++ b/modules/home/programs/foot/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.foot; -in { +in +{ options = { home.programs.foot.enable = mkEnableOption "Enables foot programs"; }; diff --git a/modules/home/programs/fuzzel/default.nix b/modules/home/programs/fuzzel/default.nix index d431c1d3..b555d298 100644 --- a/modules/home/programs/fuzzel/default.nix +++ b/modules/home/programs/fuzzel/default.nix @@ -4,11 +4,13 @@ pkgs, osConfig, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption mkMerge; cfg = config.home.programs.fuzzel; host = osConfig.networking.hostName; -in { +in +{ options = { home.programs.fuzzel.enable = mkEnableOption "Enables fuzzel"; }; diff --git a/modules/home/programs/ghostty/default.nix b/modules/home/programs/ghostty/default.nix index f350a75b..2dbd2f9f 100644 --- a/modules/home/programs/ghostty/default.nix +++ b/modules/home/programs/ghostty/default.nix @@ -4,11 +4,18 @@ osConfig, pkgs, ... -}: let - inherit (lib) mkIf mkEnableOption mkMerge getExe; +}: +let + inherit (lib) + mkIf + mkEnableOption + mkMerge + getExe + ; cfg = config.home.programs.ghostty; host = osConfig.networking.hostName; -in { +in +{ options = { home.programs.ghostty.enable = mkEnableOption "Enables ghostty"; }; diff --git a/modules/home/programs/git/default.nix b/modules/home/programs/git/default.nix index 9e5a4fc6..939579d7 100644 --- a/modules/home/programs/git/default.nix +++ b/modules/home/programs/git/default.nix @@ -4,15 +4,17 @@ lib, osConfig, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.git; -in { +in +{ options = { home.programs.git.enable = mkEnableOption "Enables git"; }; config = mkIf cfg.enable { - home.packages = [pkgs.gh]; + home.packages = [ pkgs.gh ]; programs.git = { enable = true; userName = osConfig.settings.accounts.username; @@ -31,7 +33,8 @@ in { }; gpg = { # format = lib.mkDefault "ssh"; - ssh.allowedSignersFile = config.home.homeDirectory + "/" + config.xdg.configFile."git/allowed_signers".target; + ssh.allowedSignersFile = + config.home.homeDirectory + "/" + config.xdg.configFile."git/allowed_signers".target; }; commit = { verbose = true; diff --git a/modules/home/programs/helix/default.nix b/modules/home/programs/helix/default.nix index 012eb91e..b3ab9851 100644 --- a/modules/home/programs/helix/default.nix +++ b/modules/home/programs/helix/default.nix @@ -4,10 +4,12 @@ lib, config, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.helix; -in { +in +{ imports = [ ./languages.nix ./gruvbox.nix @@ -46,7 +48,12 @@ in { display-messages = true; display-inlay-hints = true; }; - gutters = ["diagnostics" "line-numbers" "spacer" "diff"]; + gutters = [ + "diagnostics" + "line-numbers" + "spacer" + "diff" + ]; statusline = { separator = "/"; left = [ @@ -57,7 +64,7 @@ in { "spinner" "diagnostics" ]; - center = ["file-name"]; + center = [ "file-name" ]; right = [ "file-encoding" "file-line-ending" @@ -78,62 +85,103 @@ in { }; }; - keys = let - spaceMode = { - space = "file_picker"; - n = "global_search"; - f = ":format"; - c = "toggle_comments"; - t = { - d = "goto_type_definition"; - i = "goto_implementation"; - r = "goto_reference"; - t = "goto_definition"; - w = "trim_selections"; + keys = + let + spaceMode = { + space = "file_picker"; + n = "global_search"; + f = ":format"; + c = "toggle_comments"; + t = { + d = "goto_type_definition"; + i = "goto_implementation"; + r = "goto_reference"; + t = "goto_definition"; + w = "trim_selections"; + }; + x = ":buffer-close"; + w = ":w"; + q = ":q"; + y = "yank"; + p = "paste_after"; + P = "paste_before"; + R = "replace_with_yanked"; }; - x = ":buffer-close"; - w = ":w"; - q = ":q"; - y = "yank"; - p = "paste_after"; - P = "paste_before"; - R = "replace_with_yanked"; - }; - in { - normal = { - d = { - d = ["extend_to_line_bounds" "yank_main_selection_to_clipboard" "delete_selection"]; - s = ["surround_delete"]; + in + { + normal = { + d = { + d = [ + "extend_to_line_bounds" + "yank_main_selection_to_clipboard" + "delete_selection" + ]; + s = [ "surround_delete" ]; + }; + x = "delete_selection"; + y = { + y = [ + "extend_to_line_bounds" + "yank_main_selection_to_clipboard" + "normal_mode" + "collapse_selection" + ]; + d = ":yank-diagnostic"; + }; + Y = [ + "extend_to_line_end" + "yank_main_selection_to_clipboard" + "collapse_selection" + ]; + P = [ + "paste_clipboard_before" + "collapse_selection" + ]; + p = [ + "paste_clipboard_after" + "collapse_selection" + ]; + C-a = "select_all"; + del = "delete_selection"; + space = spaceMode; }; - x = "delete_selection"; - y = { - y = ["extend_to_line_bounds" "yank_main_selection_to_clipboard" "normal_mode" "collapse_selection"]; - d = ":yank-diagnostic"; + insert = { + C-v = "paste_clipboard_after"; + C-c = "yank_to_clipboard"; + C-x = "completion"; + del = "delete_selection"; + esc = [ + "collapse_selection" + "normal_mode" + ]; + }; + select = { + space = spaceMode; + d = [ + "yank_main_selection_to_clipboard" + "delete_selection" + ]; + x = [ + "yank_main_selection_to_clipboard" + "delete_selection" + ]; + y = [ + "yank_main_selection_to_clipboard" + "normal_mode" + "flip_selections" + "collapse_selection" + ]; + Y = [ + "extend_to_line_bounds" + "yank_main_selection_to_clipboard" + "goto_line_start" + "collapse_selection" + "normal_mode" + ]; + p = [ "replace_selections_with_clipboard" ]; + P = [ "paste_clipboard_before" ]; }; - Y = ["extend_to_line_end" "yank_main_selection_to_clipboard" "collapse_selection"]; - P = ["paste_clipboard_before" "collapse_selection"]; - p = ["paste_clipboard_after" "collapse_selection"]; - C-a = "select_all"; - del = "delete_selection"; - space = spaceMode; }; - insert = { - C-v = "paste_clipboard_after"; - C-c = "yank_to_clipboard"; - C-x = "completion"; - del = "delete_selection"; - esc = ["collapse_selection" "normal_mode"]; - }; - select = { - space = spaceMode; - d = ["yank_main_selection_to_clipboard" "delete_selection"]; - x = ["yank_main_selection_to_clipboard" "delete_selection"]; - y = ["yank_main_selection_to_clipboard" "normal_mode" "flip_selections" "collapse_selection"]; - Y = ["extend_to_line_bounds" "yank_main_selection_to_clipboard" "goto_line_start" "collapse_selection" "normal_mode"]; - p = ["replace_selections_with_clipboard"]; - P = ["paste_clipboard_before"]; - }; - }; }; }; }; diff --git a/modules/home/programs/helix/gruvbox.nix b/modules/home/programs/helix/gruvbox.nix index f5333300..3235f457 100644 --- a/modules/home/programs/helix/gruvbox.nix +++ b/modules/home/programs/helix/gruvbox.nix @@ -1,201 +1,225 @@ { programs.helix.themes = { - gruvbox_custom = let - bg0 = "#32302f"; - bg1 = "#3c3836"; - bg2 = "#3c3836"; - bg3 = "#504945"; - bg4 = "#504945"; - fg0 = "#d4be98"; - red = "#ea6962"; - orange = "#e78a4e"; - yellow = "#d8a657"; - bg_visual_yellow = "#574833"; - green = "#a9b665"; - aqua = "#89b482"; - blue = "#7daea3"; - purple = "#d3869b"; - grey0 = "#7c6f64"; - grey2 = "#a89984"; - in { - "type" = yellow; - "constant" = purple; - "constant.numeric" = purple; - "constant.character.escape" = orange; - "string" = green; - "string.regexp" = blue; - "comment" = grey0; - "variable" = fg0; - "variable.builtin" = blue; - "variable.parameter" = fg0; - "variable.other.member" = fg0; - "label" = aqua; - "punctuation" = grey2; - "punctuation.delimiter" = grey2; - "punctuation.bracket" = fg0; - "keyword" = red; - "keyword.directive" = aqua; - "operator" = orange; - "function" = green; - "function.builtin" = blue; - "function.macro" = aqua; - "tag" = yellow; - "namespace" = aqua; - "attribute" = aqua; - "constructor" = yellow; - "module" = blue; - "special" = orange; - "markup.heading.marker" = grey2; - "markup.heading.1" = { - fg = red; - modifiers = ["bold"]; - }; - "markup.heading.2" = { - fg = orange; - modifiers = ["bold"]; - }; - "markup.heading.3" = { - fg = yellow; - modifiers = ["bold"]; - }; - "markup.heading.4" = { - fg = green; - modifiers = ["bold"]; - }; - "markup.heading.5" = { - fg = blue; - modifiers = ["bold"]; - }; - "markup.heading.6" = { - fg = fg0; - modifiers = ["bold"]; - }; - "markup.list" = red; - "markup.bold" = {modifiers = ["bold"];}; - "markup.italic" = {modifiers = ["italic"];}; - "markup.link.url" = { - fg = blue; - modifiers = ["underlined"]; - }; - "markup.link.text" = purple; - "markup.quote" = grey2; - "markup.raw" = green; + gruvbox_custom = + let + bg0 = "#32302f"; + bg1 = "#3c3836"; + bg2 = "#3c3836"; + bg3 = "#504945"; + bg4 = "#504945"; + fg0 = "#d4be98"; + red = "#ea6962"; + orange = "#e78a4e"; + yellow = "#d8a657"; + bg_visual_yellow = "#574833"; + green = "#a9b665"; + aqua = "#89b482"; + blue = "#7daea3"; + purple = "#d3869b"; + grey0 = "#7c6f64"; + grey2 = "#a89984"; + in + { + "type" = yellow; + "constant" = purple; + "constant.numeric" = purple; + "constant.character.escape" = orange; + "string" = green; + "string.regexp" = blue; + "comment" = grey0; + "variable" = fg0; + "variable.builtin" = blue; + "variable.parameter" = fg0; + "variable.other.member" = fg0; + "label" = aqua; + "punctuation" = grey2; + "punctuation.delimiter" = grey2; + "punctuation.bracket" = fg0; + "keyword" = red; + "keyword.directive" = aqua; + "operator" = orange; + "function" = green; + "function.builtin" = blue; + "function.macro" = aqua; + "tag" = yellow; + "namespace" = aqua; + "attribute" = aqua; + "constructor" = yellow; + "module" = blue; + "special" = orange; + "markup.heading.marker" = grey2; + "markup.heading.1" = { + fg = red; + modifiers = [ "bold" ]; + }; + "markup.heading.2" = { + fg = orange; + modifiers = [ "bold" ]; + }; + "markup.heading.3" = { + fg = yellow; + modifiers = [ "bold" ]; + }; + "markup.heading.4" = { + fg = green; + modifiers = [ "bold" ]; + }; + "markup.heading.5" = { + fg = blue; + modifiers = [ "bold" ]; + }; + "markup.heading.6" = { + fg = fg0; + modifiers = [ "bold" ]; + }; + "markup.list" = red; + "markup.bold" = { + modifiers = [ "bold" ]; + }; + "markup.italic" = { + modifiers = [ "italic" ]; + }; + "markup.link.url" = { + fg = blue; + modifiers = [ "underlined" ]; + }; + "markup.link.text" = purple; + "markup.quote" = grey2; + "markup.raw" = green; - "diff.plus" = green; - "diff.delta" = orange; - "diff.minus" = red; + "diff.plus" = green; + "diff.delta" = orange; + "diff.minus" = red; - "ui.background" = {bg = bg0;}; - "ui.background.separator" = grey0; - "ui.cursor" = { - fg = bg0; - bg = fg0; - }; - "ui.cursor.match" = { - fg = orange; - bg = bg_visual_yellow; - }; - "ui.cursor.insert" = { - fg = bg0; - bg = grey2; - }; - "ui.cursor.select" = { - fg = bg0; - bg = blue; - }; - "ui.cursorline.primary" = {bg = bg1;}; - "ui.cursorline.secondary" = {bg = bg1;}; - "ui.selection" = {bg = bg3;}; - "ui.linenr" = grey0; - "ui.linenr.selected" = fg0; - "ui.statusline" = { - fg = fg0; - bg = bg3; - }; - "ui.statusline.inactive" = { - fg = grey0; - bg = bg1; - }; - "ui.statusline.normal" = { - fg = bg0; - bg = fg0; - modifiers = ["bold"]; - }; - "ui.statusline.insert" = { - fg = bg0; - bg = yellow; - modifiers = ["bold"]; - }; - "ui.statusline.select" = { - fg = bg0; - bg = blue; - modifiers = ["bold"]; - }; - "ui.bufferline" = { - fg = grey0; - bg = bg1; - }; - "ui.bufferline.active" = { - fg = fg0; - bg = bg3; - modifiers = ["bold"]; - }; - "ui.popup" = { - fg = grey2; - bg = bg2; - }; - "ui.window" = { - fg = grey0; - bg = bg0; - }; - "ui.help" = { - fg = fg0; - bg = bg2; - }; - "ui.text" = fg0; - "ui.text.focus" = fg0; - "ui.menu" = { - fg = fg0; - bg = bg3; - }; - "ui.menu.selected" = { - fg = bg0; - bg = blue; - modifiers = ["bold"]; - }; - "ui.virtual.whitespace" = {fg = bg4;}; - "ui.virtual.indent-guide" = {fg = bg4;}; - "ui.virtual.ruler" = {bg = bg3;}; + "ui.background" = { + bg = bg0; + }; + "ui.background.separator" = grey0; + "ui.cursor" = { + fg = bg0; + bg = fg0; + }; + "ui.cursor.match" = { + fg = orange; + bg = bg_visual_yellow; + }; + "ui.cursor.insert" = { + fg = bg0; + bg = grey2; + }; + "ui.cursor.select" = { + fg = bg0; + bg = blue; + }; + "ui.cursorline.primary" = { + bg = bg1; + }; + "ui.cursorline.secondary" = { + bg = bg1; + }; + "ui.selection" = { + bg = bg3; + }; + "ui.linenr" = grey0; + "ui.linenr.selected" = fg0; + "ui.statusline" = { + fg = fg0; + bg = bg3; + }; + "ui.statusline.inactive" = { + fg = grey0; + bg = bg1; + }; + "ui.statusline.normal" = { + fg = bg0; + bg = fg0; + modifiers = [ "bold" ]; + }; + "ui.statusline.insert" = { + fg = bg0; + bg = yellow; + modifiers = [ "bold" ]; + }; + "ui.statusline.select" = { + fg = bg0; + bg = blue; + modifiers = [ "bold" ]; + }; + "ui.bufferline" = { + fg = grey0; + bg = bg1; + }; + "ui.bufferline.active" = { + fg = fg0; + bg = bg3; + modifiers = [ "bold" ]; + }; + "ui.popup" = { + fg = grey2; + bg = bg2; + }; + "ui.window" = { + fg = grey0; + bg = bg0; + }; + "ui.help" = { + fg = fg0; + bg = bg2; + }; + "ui.text" = fg0; + "ui.text.focus" = fg0; + "ui.menu" = { + fg = fg0; + bg = bg3; + }; + "ui.menu.selected" = { + fg = bg0; + bg = blue; + modifiers = [ "bold" ]; + }; + "ui.virtual.whitespace" = { + fg = bg4; + }; + "ui.virtual.indent-guide" = { + fg = bg4; + }; + "ui.virtual.ruler" = { + bg = bg3; + }; - "hint" = blue; - "info" = aqua; - "warning" = yellow; - "error" = red; - "diagnostic" = {underline = {style = "curl";};}; - "diagnostic.hint" = { - underline = { - color = blue; - style = "dotted"; + "hint" = blue; + "info" = aqua; + "warning" = yellow; + "error" = red; + "diagnostic" = { + underline = { + style = "curl"; + }; + }; + "diagnostic.hint" = { + underline = { + color = blue; + style = "dotted"; + }; + }; + "diagnostic.info" = { + underline = { + color = aqua; + style = "dotted"; + }; + }; + "diagnostic.warning" = { + underline = { + color = yellow; + style = "curl"; + }; + }; + "diagnostic.error" = { + underline = { + color = red; + style = "curl"; + }; }; }; - "diagnostic.info" = { - underline = { - color = aqua; - style = "dotted"; - }; - }; - "diagnostic.warning" = { - underline = { - color = yellow; - style = "curl"; - }; - }; - "diagnostic.error" = { - underline = { - color = red; - style = "curl"; - }; - }; - }; }; } diff --git a/modules/home/programs/helix/languages.nix b/modules/home/programs/helix/languages.nix index a2b386de..f3e641da 100644 --- a/modules/home/programs/helix/languages.nix +++ b/modules/home/programs/helix/languages.nix @@ -2,31 +2,48 @@ pkgs, lib, ... -}: { +}: +{ programs.helix.languages = { - language = let - deno = lang: { - command = lib.getExe pkgs.deno; - args = ["fmt" "-" "--ext" lang]; - }; + language = + let + deno = lang: { + command = lib.getExe pkgs.deno; + args = [ + "fmt" + "-" + "--ext" + lang + ]; + }; - prettier = lang: { - command = "prettier"; - args = ["--parser" lang]; - }; - prettierLangs = map (e: { - name = e; - formatter = prettier e; - }); - langs = ["css" "scss" "html"]; - in + prettier = lang: { + command = "prettier"; + args = [ + "--parser" + lang + ]; + }; + prettierLangs = map (e: { + name = e; + formatter = prettier e; + }); + langs = [ + "css" + "scss" + "html" + ]; + in [ { name = "bash"; auto-format = true; formatter = { command = lib.getExe pkgs.shfmt; - args = ["-i" "2"]; + args = [ + "-i" + "2" + ]; }; } { @@ -36,7 +53,17 @@ { name = "clojure"; injection-regex = "(clojure|clj|edn|boot|yuck)"; - file-types = ["clj" "cljs" "cljc" "clje" "cljr" "cljx" "edn" "boot" "yuck"]; + file-types = [ + "clj" + "cljs" + "cljc" + "clje" + "cljr" + "cljx" + "edn" + "boot" + "yuck" + ]; } # { # name = "cmake"; @@ -50,7 +77,7 @@ { name = "lua"; auto-format = true; - language-servers = ["lua-language-server"]; + language-servers = [ "lua-language-server" ]; formatter = { command = lib.getExe pkgs.stylua; }; @@ -66,7 +93,7 @@ } { name = "common-lisp"; - file-types = ["kbd"]; + file-types = [ "kbd" ]; auto-format = true; } { @@ -77,10 +104,10 @@ { name = "nix"; auto-format = true; - language-servers = ["nil"]; + language-servers = [ "nil" ]; formatter = { command = "${pkgs.nixfmt}/bin/nixfmt"; - args = ["-q"]; + args = [ "-q" ]; }; } # { @@ -94,7 +121,7 @@ { name = "qml"; auto-format = true; - language-servers = ["qmlls"]; + language-servers = [ "qmlls" ]; } # { # name = "typescript"; @@ -112,13 +139,13 @@ { name = "css"; auto-format = true; - language-servers = ["vscode-css-language-server"]; + language-servers = [ "vscode-css-language-server" ]; } { name = "rust"; auto-format = true; - file-types = ["rs"]; - language-servers = ["rust-analyzer"]; + file-types = [ "rs" ]; + language-servers = [ "rust-analyzer" ]; formatter = { command = lib.getExe pkgs.rustfmt; }; @@ -129,17 +156,17 @@ language-server = { phpactor = { command = lib.getExe pkgs.phpactor; - args = ["language-server"]; + args = [ "language-server" ]; }; bash-language-server = { command = lib.getExe pkgs.bash-language-server; - args = ["start"]; + args = [ "start" ]; }; clangd = { command = "${pkgs.clang-tools}/bin/clangd"; - clangd.fallbackFlags = ["-std=c++2b"]; + clangd.fallbackFlags = [ "-std=c++2b" ]; }; # cmake-language-server = { @@ -152,7 +179,7 @@ deno-lsp = { command = lib.getExe pkgs.deno; - args = ["lsp"]; + args = [ "lsp" ]; environment.NO_COLOR = "1"; config.deno = { enable = true; @@ -160,7 +187,9 @@ unstable = true; suggest = { completeFunctionCalls = false; - imports = {hosts."https://deno.land" = true;}; + imports = { + hosts."https://deno.land" = true; + }; }; inlayHints = { enumMemberValues.enabled = true; @@ -180,7 +209,7 @@ qmlls = { command = "${pkgs.qt6.qtdeclarative}/bin/qmlls"; - args = ["-E"]; + args = [ "-E" ]; }; # pyright = { @@ -197,36 +226,38 @@ typescript-language-server = { command = lib.getExe pkgs.nodePackages.typescript-language-server; - args = ["--stdio"]; - config = let - inlayHints = { - includeInlayEnumMemberValueHints = true; - includeInlayFunctionLikeReturnTypeHints = true; - includeInlayFunctionParameterTypeHints = true; - includeInlayParameterNameHints = "all"; - includeInlayParameterNameHintsWhenArgumentMatchesName = true; - includeInlayPropertyDeclarationTypeHints = true; - includeInlayVariableTypeHints = true; - }; - in { - typescript-language-server.source = { - addMissingImports.ts = true; - fixAll.ts = true; - organizeImports.ts = true; - removeUnusedImports.ts = true; - sortImports.ts = true; - }; + args = [ "--stdio" ]; + config = + let + inlayHints = { + includeInlayEnumMemberValueHints = true; + includeInlayFunctionLikeReturnTypeHints = true; + includeInlayFunctionParameterTypeHints = true; + includeInlayParameterNameHints = "all"; + includeInlayParameterNameHintsWhenArgumentMatchesName = true; + includeInlayPropertyDeclarationTypeHints = true; + includeInlayVariableTypeHints = true; + }; + in + { + typescript-language-server.source = { + addMissingImports.ts = true; + fixAll.ts = true; + organizeImports.ts = true; + removeUnusedImports.ts = true; + sortImports.ts = true; + }; - typescript = {inherit inlayHints;}; - javascript = {inherit inlayHints;}; + typescript = { inherit inlayHints; }; + javascript = { inherit inlayHints; }; - hostInfo = "helix"; - }; + hostInfo = "helix"; + }; }; vscode-css-language-server = { command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server"; - args = ["--stdio"]; + args = [ "--stdio" ]; config = { provideFormatter = true; css.validate.enable = true; diff --git a/modules/home/programs/hyprlock/default.nix b/modules/home/programs/hyprlock/default.nix index 7a165022..afcbbc35 100644 --- a/modules/home/programs/hyprlock/default.nix +++ b/modules/home/programs/hyprlock/default.nix @@ -5,13 +5,15 @@ lib, osConfig, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.hyprlock; hyprlockFlake = inputs.hyprlock.packages.${pkgs.system}.hyprlock; # hyprlockPkg = pkgs.hyprlock; -in { +in +{ options = { home.programs.hyprlock.enable = mkEnableOption "Enables hyprlock"; }; diff --git a/modules/home/programs/jujutsu/default.nix b/modules/home/programs/jujutsu/default.nix index b5f80475..86ac7e77 100644 --- a/modules/home/programs/jujutsu/default.nix +++ b/modules/home/programs/jujutsu/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.jujutsu; -in { +in +{ options = { home.programs.jujutsu.enable = mkEnableOption "Enables jujutsu"; }; @@ -25,13 +27,15 @@ in { ]; pager = "less -FRX"; }; - signing = let - gitCfg = config.programs.git.extraConfig; - in { - backend = "ssh"; - sign-all = true; - key = gitCfg.signing.key; - }; + signing = + let + gitCfg = config.programs.git.extraConfig; + in + { + backend = "ssh"; + sign-all = true; + key = gitCfg.signing.key; + }; templates = { draft_commit_description = '' concat( diff --git a/modules/home/programs/kitty/default.nix b/modules/home/programs/kitty/default.nix index 14d12bf4..8104aaec 100644 --- a/modules/home/programs/kitty/default.nix +++ b/modules/home/programs/kitty/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.kitty; -in { +in +{ options = { home.programs.kitty.enable = mkEnableOption "Enables kitty programs"; }; diff --git a/modules/home/programs/lutris/default.nix b/modules/home/programs/lutris/default.nix index ae936548..bb38b39a 100644 --- a/modules/home/programs/lutris/default.nix +++ b/modules/home/programs/lutris/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.lutris; -in { +in +{ options = { home.programs.lutris.enable = mkEnableOption "Enables lutris"; }; diff --git a/modules/home/programs/mangohud/default.nix b/modules/home/programs/mangohud/default.nix index eed5fb0c..db616bbb 100644 --- a/modules/home/programs/mangohud/default.nix +++ b/modules/home/programs/mangohud/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.mangohud; -in { +in +{ options = { home.programs.mangohud.enable = mkEnableOption "Enables mangohud"; }; diff --git a/modules/home/programs/mpv/default.nix b/modules/home/programs/mpv/default.nix index e5e39690..f1132a41 100644 --- a/modules/home/programs/mpv/default.nix +++ b/modules/home/programs/mpv/default.nix @@ -3,18 +3,20 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.mpv; -in { +in +{ options = { home.programs.mpv.enable = mkEnableOption "Enables mpv"; }; config = mkIf cfg.enable { programs.mpv = { enable = true; - defaultProfiles = ["gpu-hq"]; - scripts = [pkgs.mpvScripts.mpris]; + defaultProfiles = [ "gpu-hq" ]; + scripts = [ pkgs.mpvScripts.mpris ]; }; }; } diff --git a/modules/home/programs/neovim/default.nix b/modules/home/programs/neovim/default.nix index 88e79d4e..f27aac9c 100644 --- a/modules/home/programs/neovim/default.nix +++ b/modules/home/programs/neovim/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.neovim; -in { +in +{ imports = [ ./plugins ./lsp.nix @@ -22,9 +24,7 @@ in { programs.neovim = { enable = true; extraLuaConfig = - /* - lua - */ + # lua '' -- Use system clipboard vim.opt.clipboard = "unnamedplus" diff --git a/modules/home/programs/neovim/keybindings.nix b/modules/home/programs/neovim/keybindings.nix index 0e2faad6..dc9f3987 100644 --- a/modules/home/programs/neovim/keybindings.nix +++ b/modules/home/programs/neovim/keybindings.nix @@ -2,9 +2,7 @@ config = { programs.neovim = { extraLuaConfig = - /* - lua - */ + # lua '' -- Key mappings for various commands and navigation vim.api.nvim_set_keymap("n", "", "", { noremap = true }) diff --git a/modules/home/programs/neovim/lsp.nix b/modules/home/programs/neovim/lsp.nix index e5a6c9a5..797c8a72 100644 --- a/modules/home/programs/neovim/lsp.nix +++ b/modules/home/programs/neovim/lsp.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ # LSP and completions for injected langs otter-nvim @@ -8,9 +9,7 @@ plugin = nvim-lspconfig; type = "lua"; config = - /* - lua - */ + # lua '' local lspconfig = require("lspconfig") @@ -56,9 +55,7 @@ plugin = ltex_extra-nvim; type = "lua"; config = - /* - lua - */ + # lua '' local ltex_extra = require("ltex_extra") add_lsp(lspconfig.ltex, { @@ -84,9 +81,7 @@ plugin = cmp-git; type = "lua"; config = - /* - lua - */ + # lua '' require("cmp_git").setup({}) ''; @@ -97,9 +92,7 @@ plugin = nvim-cmp; type = "lua"; config = - /* - lua - */ + # lua '' local cmp = require("cmp") diff --git a/modules/home/programs/neovim/plugins/alpha.nix b/modules/home/programs/neovim/plugins/alpha.nix index 413104fd..082cf52b 100644 --- a/modules/home/programs/neovim/plugins/alpha.nix +++ b/modules/home/programs/neovim/plugins/alpha.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = alpha-nvim; type = "lua"; config = - /* - lua - */ + # lua '' local alpha = require("alpha") local dashboard = require("alpha.themes.dashboard") diff --git a/modules/home/programs/neovim/plugins/autopairs.nix b/modules/home/programs/neovim/plugins/autopairs.nix index 5edaa5bd..07c77d28 100644 --- a/modules/home/programs/neovim/plugins/autopairs.nix +++ b/modules/home/programs/neovim/plugins/autopairs.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = nvim-autopairs; type = "lua"; config = - /* - lua - */ + # lua '' require("nvim-autopairs").setup({}) ''; diff --git a/modules/home/programs/neovim/plugins/bqf.nix b/modules/home/programs/neovim/plugins/bqf.nix index 34e2ecc1..3de2b099 100644 --- a/modules/home/programs/neovim/plugins/bqf.nix +++ b/modules/home/programs/neovim/plugins/bqf.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = nvim-bqf; type = "lua"; config = - /* - lua - */ + # lua '' require("bqf").setup({}) ''; diff --git a/modules/home/programs/neovim/plugins/bufferline.nix b/modules/home/programs/neovim/plugins/bufferline.nix index f649c20c..9a73baa8 100644 --- a/modules/home/programs/neovim/plugins/bufferline.nix +++ b/modules/home/programs/neovim/plugins/bufferline.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = bufferline-nvim; type = "lua"; config = - /* - lua - */ + # lua '' require("bufferline").setup({}) ''; diff --git a/modules/home/programs/neovim/plugins/colorizer.nix b/modules/home/programs/neovim/plugins/colorizer.nix index e1d2af7c..cbfae4b7 100644 --- a/modules/home/programs/neovim/plugins/colorizer.nix +++ b/modules/home/programs/neovim/plugins/colorizer.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = nvim-colorizer-lua; type = "lua"; config = - /* - lua - */ + # lua '' require("colorizer").setup({}) ''; diff --git a/modules/home/programs/neovim/plugins/comment.nix b/modules/home/programs/neovim/plugins/comment.nix index 0fb76253..ed1d1c15 100644 --- a/modules/home/programs/neovim/plugins/comment.nix +++ b/modules/home/programs/neovim/plugins/comment.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = comment-nvim; type = "lua"; config = - /* - lua - */ + # lua '' require("Comment").setup({ opleader = { diff --git a/modules/home/programs/neovim/plugins/conform.nix b/modules/home/programs/neovim/plugins/conform.nix index d8fb6af6..faccdf5c 100644 --- a/modules/home/programs/neovim/plugins/conform.nix +++ b/modules/home/programs/neovim/plugins/conform.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = conform-nvim; type = "lua"; config = - /* - lua - */ + # lua '' require("conform").setup({ default_format_opts = { diff --git a/modules/home/programs/neovim/plugins/copilot.nix b/modules/home/programs/neovim/plugins/copilot.nix index 7d7a026a..783667f6 100644 --- a/modules/home/programs/neovim/plugins/copilot.nix +++ b/modules/home/programs/neovim/plugins/copilot.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = copilot-lua; type = "lua"; config = - /* - lua - */ + # lua '' require("copilot").setup({ panel = { diff --git a/modules/home/programs/neovim/plugins/default.nix b/modules/home/programs/neovim/plugins/default.nix index 66944bc7..252fe211 100644 --- a/modules/home/programs/neovim/plugins/default.nix +++ b/modules/home/programs/neovim/plugins/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ vim-illuminate ]; diff --git a/modules/home/programs/neovim/plugins/fidget.nix b/modules/home/programs/neovim/plugins/fidget.nix index 9725cb66..b20f4bfe 100644 --- a/modules/home/programs/neovim/plugins/fidget.nix +++ b/modules/home/programs/neovim/plugins/fidget.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = fidget-nvim; type = "lua"; config = - /* - lua - */ + # lua '' require("fidget").setup({ progress = { diff --git a/modules/home/programs/neovim/plugins/fugitive.nix b/modules/home/programs/neovim/plugins/fugitive.nix index 470461a7..d141edb0 100644 --- a/modules/home/programs/neovim/plugins/fugitive.nix +++ b/modules/home/programs/neovim/plugins/fugitive.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = vim-fugitive; type = "viml"; config = - /* - vim - */ + # vim '' nmap G :Git ''; diff --git a/modules/home/programs/neovim/plugins/gitsigns.nix b/modules/home/programs/neovim/plugins/gitsigns.nix index 57e8b9c7..2de8a32d 100644 --- a/modules/home/programs/neovim/plugins/gitsigns.nix +++ b/modules/home/programs/neovim/plugins/gitsigns.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = gitsigns-nvim; type = "lua"; config = - /* - lua - */ + # lua '' require("gitsigns").setup({ signs = { diff --git a/modules/home/programs/neovim/plugins/lualine.nix b/modules/home/programs/neovim/plugins/lualine.nix index 6d7e8ada..885c3a6d 100644 --- a/modules/home/programs/neovim/plugins/lualine.nix +++ b/modules/home/programs/neovim/plugins/lualine.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = lualine-nvim; type = "lua"; config = - /* - lua - */ + # lua '' require("lualine").setup({ options = { diff --git a/modules/home/programs/neovim/plugins/none-ls.nix b/modules/home/programs/neovim/plugins/none-ls.nix index 840fb01d..a9887716 100644 --- a/modules/home/programs/neovim/plugins/none-ls.nix +++ b/modules/home/programs/neovim/plugins/none-ls.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim = { plugins = with pkgs.vimPlugins; [ none-ls-nvim @@ -6,9 +7,7 @@ nvim-treesitter.withAllGrammars ]; extraConfig = - /* - lua - */ + # lua '' -- Require necessary plugins require("plenary") diff --git a/modules/home/programs/neovim/plugins/oil.nix b/modules/home/programs/neovim/plugins/oil.nix index f3d68fc2..3643843d 100644 --- a/modules/home/programs/neovim/plugins/oil.nix +++ b/modules/home/programs/neovim/plugins/oil.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = oil-nvim; type = "lua"; config = - /* - lua - */ + # lua '' require("oil").setup({ buf_options = { diff --git a/modules/home/programs/neovim/plugins/plenary.nix b/modules/home/programs/neovim/plugins/plenary.nix index 66990499..be2e2275 100644 --- a/modules/home/programs/neovim/plugins/plenary.nix +++ b/modules/home/programs/neovim/plugins/plenary.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = plenary-nvim; type = "lua"; config = - /* - lua - */ + # lua '' require("plenary").setup({}) ''; diff --git a/modules/home/programs/neovim/plugins/range-highlight.nix b/modules/home/programs/neovim/plugins/range-highlight.nix index fd5aed62..716ac355 100644 --- a/modules/home/programs/neovim/plugins/range-highlight.nix +++ b/modules/home/programs/neovim/plugins/range-highlight.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = range-highlight-nvim; type = "lua"; config = - /* - lua - */ + # lua '' require("range-highlight").setup({}) ''; diff --git a/modules/home/programs/neovim/plugins/treesitter.nix b/modules/home/programs/neovim/plugins/treesitter.nix index d0a459ae..10267fb0 100644 --- a/modules/home/programs/neovim/plugins/treesitter.nix +++ b/modules/home/programs/neovim/plugins/treesitter.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = nvim-treesitter.withAllGrammars; type = "lua"; config = - /* - lua - */ + # lua '' require("nvim-treesitter.configs").setup({ highlight = { diff --git a/modules/home/programs/neovim/plugins/web-devicons.nix b/modules/home/programs/neovim/plugins/web-devicons.nix index 9b162729..2a131dbc 100644 --- a/modules/home/programs/neovim/plugins/web-devicons.nix +++ b/modules/home/programs/neovim/plugins/web-devicons.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = nvim-web-devicons; type = "lua"; config = - /* - lua - */ + # lua '' require("nvim-web-devicons").setup({}) ''; diff --git a/modules/home/programs/neovim/plugins/which-key.nix b/modules/home/programs/neovim/plugins/which-key.nix index dd73ca69..40803998 100644 --- a/modules/home/programs/neovim/plugins/which-key.nix +++ b/modules/home/programs/neovim/plugins/which-key.nix @@ -1,12 +1,11 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ programs.neovim.plugins = with pkgs.vimPlugins; [ { plugin = which-key-nvim; type = "lua"; config = - /* - lua - */ + # lua '' require("which-key").setup({}) ''; diff --git a/modules/home/programs/neovim/syntaxes.nix b/modules/home/programs/neovim/syntaxes.nix index 27a2a6b0..131480aa 100644 --- a/modules/home/programs/neovim/syntaxes.nix +++ b/modules/home/programs/neovim/syntaxes.nix @@ -3,21 +3,22 @@ config, lib, ... -}: { +}: +{ programs.neovim = { extraConfig = lib.mkAfter # vim - - '' - function! SetCustomKeywords() - syn match Todo /TODO/ - syn match Done /DONE/ - syn match Start /START/ - syn match End /END/ - endfunction - autocmd Syntax * call SetCustomKeywords() - ''; + '' + function! SetCustomKeywords() + syn match Todo /TODO/ + syn match Done /DONE/ + syn match Start /START/ + syn match End /END/ + endfunction + + autocmd Syntax * call SetCustomKeywords() + ''; plugins = with pkgs.vimPlugins; [ rust-vim dart-vim-plugin @@ -34,15 +35,11 @@ { plugin = vimtex; - config = let - viewMethod = - if config.programs.zathura.enable - then "zathura" - else "general"; - in - /* - vim - */ + config = + let + viewMethod = if config.programs.zathura.enable then "zathura" else "general"; + in + # vim '' let g:vimtex_view_method = '${viewMethod}' "Don't open automatically diff --git a/modules/home/programs/nvf/default.nix b/modules/home/programs/nvf/default.nix index 4c8ae3d4..efd61214 100644 --- a/modules/home/programs/nvf/default.nix +++ b/modules/home/programs/nvf/default.nix @@ -5,10 +5,12 @@ pkgs, inputs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.nvf; -in { +in +{ options = { home.programs.nvf.enable = mkEnableOption "Enables nvf (neovim)"; }; diff --git a/modules/home/programs/nwg-bar/default.nix b/modules/home/programs/nwg-bar/default.nix index d819d313..3966e8e2 100644 --- a/modules/home/programs/nwg-bar/default.nix +++ b/modules/home/programs/nwg-bar/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.nwg-bar; -in { +in +{ options = { home.programs.nwg-bar.enable = mkEnableOption "Enables nwg-bar"; }; diff --git a/modules/home/programs/pkgs/default.nix b/modules/home/programs/pkgs/default.nix index 3587463c..9eaab63d 100644 --- a/modules/home/programs/pkgs/default.nix +++ b/modules/home/programs/pkgs/default.nix @@ -3,10 +3,18 @@ config, lib, ... -}: let - inherit (lib) mkIf mkEnableOption mkOption types mkMerge; +}: +let + inherit (lib) + mkIf + mkEnableOption + mkOption + types + mkMerge + ; cfg = config.home.programs.pkgs; -in { +in +{ options = { home.programs.pkgs = { enable = mkEnableOption "Enables miscellaneous utility apps"; @@ -41,14 +49,15 @@ in { programs = { btop = { enable = true; - package = pkgs.btop.override {rocmSupport = true;}; + package = pkgs.btop.override { rocmSupport = true; }; settings = { color_theme = "gruvbox_material_dark"; }; }; }; - home.packages = with pkgs; + home.packages = + with pkgs; mkMerge [ [ cmatrix @@ -98,13 +107,13 @@ in { ]) (mkIf cfg.laptop.enable [ - ]) + ]) (mkIf cfg.server.enable [ - ]) + ]) (mkIf cfg.dev.enable [ - ]) + ]) ]; }; } diff --git a/modules/home/programs/rofi/default.nix b/modules/home/programs/rofi/default.nix index 7a185258..db9da8e7 100644 --- a/modules/home/programs/rofi/default.nix +++ b/modules/home/programs/rofi/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.rofi; -in { +in +{ options = { home.programs.rofi.enable = mkEnableOption "Enables firefox"; }; diff --git a/modules/home/programs/ssh/default.nix b/modules/home/programs/ssh/default.nix index 91dcaecd..aff7803c 100644 --- a/modules/home/programs/ssh/default.nix +++ b/modules/home/programs/ssh/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.ssh; -in { +in +{ options = { home.programs.ssh.enable = mkEnableOption "Enables ssh"; }; diff --git a/modules/home/programs/steam/default.nix b/modules/home/programs/steam/default.nix index dc6a7d69..f10901cf 100644 --- a/modules/home/programs/steam/default.nix +++ b/modules/home/programs/steam/default.nix @@ -4,12 +4,20 @@ lib, config, ... -}: let - inherit (lib) mkIf mkEnableOption concatStringsSep head filter getExe; +}: +let + inherit (lib) + mkIf + mkEnableOption + concatStringsSep + head + filter + getExe + ; cfg = config.home.programs.steam; steam-with-pkgs = pkgs.steam.override { - extraPkgs = pkgs: - with pkgs; [ + extraPkgs = + pkgs: with pkgs; [ xorg.libXcursor xorg.libXi xorg.libXinerama @@ -25,32 +33,34 @@ }; monitor = head (filter (m: m.primary) config.monitors); - steam-session = let - gamescope = concatStringsSep " " [ - (getExe pkgs.gamescope) - "--output-width ${toString monitor.width}" - "--output-height ${toString monitor.height}" - "--framerate-limit ${toString monitor.refreshRate}" - "--prefer-output ${monitor.name}" - # "--adaptive-sync" - "--expose-wayland" - "--hdr-enabled" - "--steam" - ]; - steam = concatStringsSep " " [ - "steam" - "steam://open/bigpicture" - ]; - in + steam-session = + let + gamescope = concatStringsSep " " [ + (getExe pkgs.gamescope) + "--output-width ${toString monitor.width}" + "--output-height ${toString monitor.height}" + "--framerate-limit ${toString monitor.refreshRate}" + "--prefer-output ${monitor.name}" + # "--adaptive-sync" + "--expose-wayland" + "--hdr-enabled" + "--steam" + ]; + steam = concatStringsSep " " [ + "steam" + "steam://open/bigpicture" + ]; + in pkgs.writeTextDir "share/wayland-sessions/steam-sesson.desktop" # ini - - '' - [Desktop Entry] - Name=Steam Session - Exec=${gamescope} -- ${steam} - Type=Application - ''; -in { + + '' + [Desktop Entry] + Name=Steam Session + Exec=${gamescope} -- ${steam} + Type=Application + ''; +in +{ options = { home.programs.steam.enable = mkEnableOption "Enables steam"; }; diff --git a/modules/home/programs/tuirun/default.nix b/modules/home/programs/tuirun/default.nix index e3d68bb8..c630f4d3 100644 --- a/modules/home/programs/tuirun/default.nix +++ b/modules/home/programs/tuirun/default.nix @@ -4,10 +4,12 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.tuirun; -in { +in +{ imports = [ inputs.tuirun.homeManagerModules.default ]; diff --git a/modules/home/programs/vscode/default.nix b/modules/home/programs/vscode/default.nix index 780defba..2e096fb7 100644 --- a/modules/home/programs/vscode/default.nix +++ b/modules/home/programs/vscode/default.nix @@ -3,10 +3,12 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.vscode; -in { +in +{ options = { home.programs.vscode.enable = mkEnableOption "Enables vscode"; }; diff --git a/modules/home/programs/waybar/default.nix b/modules/home/programs/waybar/default.nix index 58adf75a..cceeeb6d 100644 --- a/modules/home/programs/waybar/default.nix +++ b/modules/home/programs/waybar/default.nix @@ -3,19 +3,21 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.waybar; # uwsm = lib.getExe pkgs.uwsm; waybar = lib.getExe pkgs.waybar; - waybarAssets = pkgs.runCommand "waybar-config-assets" {} '' + waybarAssets = pkgs.runCommand "waybar-config-assets" { } '' mkdir -p $out/assets cp ${./assets/button.svg} $out/assets/button.svg cp ${./config/style.css} $out/style.css cp ${./config/config.jsonc} $out/config.jsonc ''; -in { +in +{ options = { home.programs.waybar.enable = mkEnableOption "Enables waybar"; }; @@ -23,7 +25,7 @@ in { systemd.user.services.waybar = { Unit = { Description = "Highly customizable Wayland bar for Sway and Wlroots based compositors."; - After = ["graphical-session.target"]; + After = [ "graphical-session.target" ]; }; Service = { Type = "exec"; @@ -32,7 +34,7 @@ in { Slice = "app-graphical.slice"; }; Install = { - WantedBy = ["graphical-session.target"]; + WantedBy = [ "graphical-session.target" ]; }; }; }; diff --git a/modules/home/programs/wezterm/default.nix b/modules/home/programs/wezterm/default.nix index 32c05de0..6460bcb9 100644 --- a/modules/home/programs/wezterm/default.nix +++ b/modules/home/programs/wezterm/default.nix @@ -4,13 +4,15 @@ lib, inputs, ... -}: let +}: +let enable_wayland = "true"; # weztermPkg = pkgs.wezterm; weztermFlake = inputs.wezterm.packages.${pkgs.system}.default; inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.wezterm; -in { +in +{ options = { home.programs.wezterm.enable = mkEnableOption "Enables wezterm programs"; }; @@ -19,9 +21,7 @@ in { enable = true; package = weztermFlake; extraConfig = - /* - lua - */ + # lua '' local wezterm = require 'wezterm' diff --git a/modules/home/programs/yazi/default.nix b/modules/home/programs/yazi/default.nix index 4d21d708..9c8ef64c 100644 --- a/modules/home/programs/yazi/default.nix +++ b/modules/home/programs/yazi/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.yazi; -in { +in +{ imports = [ ./theme ]; @@ -25,7 +27,11 @@ in { settings = { manager = { - layout = [1 4 3]; + layout = [ + 1 + 4 + 3 + ]; sort_by = "alphabetical"; sort_sensitive = true; sort_reverse = false; diff --git a/modules/home/programs/yazi/theme/help.nix b/modules/home/programs/yazi/theme/help.nix index 1de0a80a..1e6a0b39 100644 --- a/modules/home/programs/yazi/theme/help.nix +++ b/modules/home/programs/yazi/theme/help.nix @@ -1,8 +1,14 @@ { programs.yazi.theme.help = { - on = {fg = "#fe8019";}; - exec = {fg = "#83a598";}; - desc = {fg = "#928374";}; + on = { + fg = "#fe8019"; + }; + exec = { + fg = "#83a598"; + }; + desc = { + fg = "#928374"; + }; hovered = { bg = "#504945"; bold = true; diff --git a/modules/home/programs/yazi/theme/input.nix b/modules/home/programs/yazi/theme/input.nix index 69bec911..d08d066e 100644 --- a/modules/home/programs/yazi/theme/input.nix +++ b/modules/home/programs/yazi/theme/input.nix @@ -1,8 +1,12 @@ { programs.yazi.theme.input = { - border = {fg = "#bdae93";}; - title = {}; - value = {}; - selected = {reversed = true;}; + border = { + fg = "#bdae93"; + }; + title = { }; + value = { }; + selected = { + reversed = true; + }; }; } diff --git a/modules/home/programs/yazi/theme/manager.nix b/modules/home/programs/yazi/theme/manager.nix index d6407a76..a3766f6d 100644 --- a/modules/home/programs/yazi/theme/manager.nix +++ b/modules/home/programs/yazi/theme/manager.nix @@ -1,13 +1,17 @@ { programs.yazi.theme.manager = { - cwd = {fg = "#83a598";}; + cwd = { + fg = "#83a598"; + }; # Hovered hovered = { fg = "#282828"; bg = "#83a598"; }; - preview_hovered = {underline = true;}; + preview_hovered = { + underline = true; + }; # Find find_keyword = { @@ -47,11 +51,23 @@ # Border; border_symbol = "│"; - border_style = {fg = "#665c54";}; + border_style = { + fg = "#665c54"; + }; # Offset; - folder_offset = [1 0 1 0]; - preview_offset = [1 1 1 1]; + folder_offset = [ + 1 + 0 + 1 + 0 + ]; + preview_offset = [ + 1 + 1 + 1 + 1 + ]; # Highlighting; syntect_theme = ""; diff --git a/modules/home/programs/yazi/theme/select.nix b/modules/home/programs/yazi/theme/select.nix index e83c6cb4..f2c931ab 100644 --- a/modules/home/programs/yazi/theme/select.nix +++ b/modules/home/programs/yazi/theme/select.nix @@ -1,7 +1,11 @@ { programs.yazi.theme.select = { - border = {fg = "#504945";}; - active = {fg = "#fe8019";}; - inactive = {}; + border = { + fg = "#504945"; + }; + active = { + fg = "#fe8019"; + }; + inactive = { }; }; } diff --git a/modules/home/programs/yazi/theme/status.nix b/modules/home/programs/yazi/theme/status.nix index e3cbc152..78e654f0 100644 --- a/modules/home/programs/yazi/theme/status.nix +++ b/modules/home/programs/yazi/theme/status.nix @@ -39,10 +39,20 @@ }; # Permissions; - permissions_t = {fg = "#504945";}; - permissions_r = {fg = "#b8bb26";}; - permissions_w = {fg = "#fb4934";}; - permissions_x = {fg = "#b8bb26";}; - permissions_s = {fg = "#665c54";}; + permissions_t = { + fg = "#504945"; + }; + permissions_r = { + fg = "#b8bb26"; + }; + permissions_w = { + fg = "#fb4934"; + }; + permissions_x = { + fg = "#b8bb26"; + }; + permissions_s = { + fg = "#665c54"; + }; }; } diff --git a/modules/home/programs/yazi/theme/tasks.nix b/modules/home/programs/yazi/theme/tasks.nix index 26455427..21916713 100644 --- a/modules/home/programs/yazi/theme/tasks.nix +++ b/modules/home/programs/yazi/theme/tasks.nix @@ -1,7 +1,11 @@ { programs.yazi.theme.tasks = { - border = {fg = "#504945";}; - title = {}; - hovered = {underline = true;}; + border = { + fg = "#504945"; + }; + title = { }; + hovered = { + underline = true; + }; }; } diff --git a/modules/home/programs/yazi/theme/which.nix b/modules/home/programs/yazi/theme/which.nix index 08116513..d4483250 100644 --- a/modules/home/programs/yazi/theme/which.nix +++ b/modules/home/programs/yazi/theme/which.nix @@ -1,10 +1,20 @@ { programs.yazi.theme.which = { - mask = {bg = "#3c3836";}; - cand = {fg = "#83a598";}; - rest = {fg = "#928374";}; - desc = {fg = "#fe8019";}; + mask = { + bg = "#3c3836"; + }; + cand = { + fg = "#83a598"; + }; + rest = { + fg = "#928374"; + }; + desc = { + fg = "#fe8019"; + }; separator = "  "; - separator_style = {fg = "#504945";}; + separator_style = { + fg = "#504945"; + }; }; } diff --git a/modules/home/programs/zathura/default.nix b/modules/home/programs/zathura/default.nix index 21946b3b..ca39ef1c 100644 --- a/modules/home/programs/zathura/default.nix +++ b/modules/home/programs/zathura/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.zathura; -in { +in +{ options = { home.programs.zathura.enable = mkEnableOption "Enables zathura"; }; diff --git a/modules/home/programs/zed-editor/default.nix b/modules/home/programs/zed-editor/default.nix index 636e3081..a8a896a3 100644 --- a/modules/home/programs/zed-editor/default.nix +++ b/modules/home/programs/zed-editor/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.zed-editor; -in { +in +{ options = { home.programs.zed-editor.enable = mkEnableOption "Enables zed-editor"; }; diff --git a/modules/home/programs/zellij/default.nix b/modules/home/programs/zellij/default.nix index cb9d5fae..9ae1b591 100644 --- a/modules/home/programs/zellij/default.nix +++ b/modules/home/programs/zellij/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.zellij; -in { +in +{ options = { home.programs.zellij.enable = mkEnableOption "Enables zellij"; }; diff --git a/modules/home/programs/zen/default.nix b/modules/home/programs/zen/default.nix index 4bc35e3d..926f30ed 100644 --- a/modules/home/programs/zen/default.nix +++ b/modules/home/programs/zen/default.nix @@ -4,10 +4,12 @@ lib, inputs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.programs.zen; -in { +in +{ options = { home.programs.zen.enable = mkEnableOption "Enables zen browser"; }; diff --git a/modules/home/programs/zsh/default.nix b/modules/home/programs/zsh/default.nix index ae2be83d..798efac0 100644 --- a/modules/home/programs/zsh/default.nix +++ b/modules/home/programs/zsh/default.nix @@ -3,12 +3,14 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; inherit (lib.meta) getExe; inherit (pkgs) eza bat; cfg = config.home.programs.zsh; -in { +in +{ options = { home.programs.zsh.enable = mkEnableOption "Enables zsh home configuration"; }; diff --git a/modules/home/services/blueman-applet/default.nix b/modules/home/services/blueman-applet/default.nix index 0441350e..ffe90549 100644 --- a/modules/home/services/blueman-applet/default.nix +++ b/modules/home/services/blueman-applet/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.services.blueman-applet; -in { +in +{ options = { home.services.blueman-applet.enable = mkEnableOption "Enables blueman-applet"; }; diff --git a/modules/home/services/copyq/default.nix b/modules/home/services/copyq/default.nix index 71a1c152..c6e73a74 100644 --- a/modules/home/services/copyq/default.nix +++ b/modules/home/services/copyq/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.services.copyq; -in { +in +{ options = { home.services.copyq.enable = mkEnableOption "Enables copyq"; }; diff --git a/modules/home/services/dconf/default.nix b/modules/home/services/dconf/default.nix index 2cc076c1..0136ff72 100644 --- a/modules/home/services/dconf/default.nix +++ b/modules/home/services/dconf/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) types mkOption; cfg = config.home.services.dconf; -in { +in +{ options = { home.services.dconf.settings.color-scheme = mkOption { type = types.str; diff --git a/modules/home/services/dunst/default.nix b/modules/home/services/dunst/default.nix index e16bf1ce..83d9620d 100644 --- a/modules/home/services/dunst/default.nix +++ b/modules/home/services/dunst/default.nix @@ -3,10 +3,12 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.services.dunst; -in { +in +{ options = { home.services.dunst.enable = mkEnableOption "Enables dunst"; }; diff --git a/modules/home/services/gpg/default.nix b/modules/home/services/gpg/default.nix index bb1c58a6..14279ddf 100644 --- a/modules/home/services/gpg/default.nix +++ b/modules/home/services/gpg/default.nix @@ -3,10 +3,12 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.services.gpg; -in { +in +{ options = { home.services.gpg.enable = mkEnableOption "Enables gpg"; }; diff --git a/modules/home/services/gtk/default.nix b/modules/home/services/gtk/default.nix index e669ba5e..d5049a88 100644 --- a/modules/home/services/gtk/default.nix +++ b/modules/home/services/gtk/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.services.gtk; -in { +in +{ options = { home.services.gtk.enable = mkEnableOption "Enables miscellaneous GTK elements"; }; diff --git a/modules/home/services/gtk/wip.nix b/modules/home/services/gtk/wip.nix index 13a21e5a..cb302f96 100644 --- a/modules/home/services/gtk/wip.nix +++ b/modules/home/services/gtk/wip.nix @@ -3,10 +3,12 @@ pkgs, lib, ... -}: let +}: +let inherit (lib) types mkOption mkIf; cfg = config.home.userd.gtk; -in { +in +{ options = { home.userd.gtk.enable = mkOption { type = types.bool; @@ -60,7 +62,7 @@ in { config = mkIf cfg.enable { home = { - packages = [pkgs.glib]; + packages = [ pkgs.glib ]; pointerCursor = { package = cfg.cursorTheme.package; diff --git a/modules/home/services/hypridle/default.nix b/modules/home/services/hypridle/default.nix index 607e30b3..a6644b90 100644 --- a/modules/home/services/hypridle/default.nix +++ b/modules/home/services/hypridle/default.nix @@ -4,13 +4,15 @@ pkgs, inputs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.services.hypridle; hypridleFlake = inputs.hypridle.packages.${pkgs.system}.hypridle; # hypridlePkg = pkgs.hypridle; -in { +in +{ options = { home.services.hypridle.enable = mkEnableOption "Enables hypridle"; }; diff --git a/modules/home/services/hyprpaper/default.nix b/modules/home/services/hyprpaper/default.nix index ba3abd03..cd8c2739 100644 --- a/modules/home/services/hyprpaper/default.nix +++ b/modules/home/services/hyprpaper/default.nix @@ -5,13 +5,15 @@ inputs, osConfig, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.services.hyprpaper; hyprpaperFlake = inputs.hyprpaper.packages.${pkgs.system}.default; # hyprpaperPkg = pkgs.hyprpaper; -in { +in +{ options = { home.services.hyprpaper.enable = mkEnableOption "Enables hyprpaper"; }; diff --git a/modules/home/services/mako/default.nix b/modules/home/services/mako/default.nix index c293ef63..6d4fe444 100644 --- a/modules/home/services/mako/default.nix +++ b/modules/home/services/mako/default.nix @@ -3,10 +3,12 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.services.mako; -in { +in +{ options = { home.services.mako.enable = mkEnableOption "Enables mako"; }; @@ -26,28 +28,30 @@ in { borderColor = "#689d6add"; textColor = "#d5c4a1dd"; layer = "overlay"; - extraConfig = let - play = sound: "mpv ${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/${sound}.oga"; - in '' - max-history=50 - max-visible=4 - outer-margin=25 - icon-location=right - max-icon-size=48 - [urgency=high] - border-color=#7DAEA3dd - [urgency=critical] - border-color=#f95f32dd - on-notify=exec ${play "message"} - [app-name=yubikey-touch-detector] - on-notify=exec ${play "service-login"} - [app-name=command_complete summary~="✘.*"] - on-notify=exec ${play "dialog-warning"} - [app-name=command_complete summary~="✓.*"] - on-notify=exec ${play "bell"} - [mode=do-not-disturb] - invisible=1 - ''; + extraConfig = + let + play = sound: "mpv ${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/${sound}.oga"; + in + '' + max-history=50 + max-visible=4 + outer-margin=25 + icon-location=right + max-icon-size=48 + [urgency=high] + border-color=#7DAEA3dd + [urgency=critical] + border-color=#f95f32dd + on-notify=exec ${play "message"} + [app-name=yubikey-touch-detector] + on-notify=exec ${play "service-login"} + [app-name=command_complete summary~="✘.*"] + on-notify=exec ${play "dialog-warning"} + [app-name=command_complete summary~="✓.*"] + on-notify=exec ${play "bell"} + [mode=do-not-disturb] + invisible=1 + ''; }; }; } diff --git a/modules/home/services/nix-index/default.nix b/modules/home/services/nix-index/default.nix index 6803618d..30ec6bae 100644 --- a/modules/home/services/nix-index/default.nix +++ b/modules/home/services/nix-index/default.nix @@ -4,10 +4,12 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkEnableOption mkIf getExe; cfg = config.home.services.nix-index; -in { +in +{ options = { home.services.nix-index.enable = mkEnableOption "Enables nix-index"; }; @@ -46,7 +48,7 @@ in { OnBootSec = "10m"; OnUnitActiveSec = "24h"; }; - Install.WantedBy = ["timers.target"]; + Install.WantedBy = [ "timers.target" ]; }; }; } diff --git a/modules/home/services/syncthing/default.nix b/modules/home/services/syncthing/default.nix index df0a91fa..dd5b7fa0 100644 --- a/modules/home/services/syncthing/default.nix +++ b/modules/home/services/syncthing/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.services.syncthing; -in { +in +{ options = { home.services.syncthing.enable = mkEnableOption "Enables syncthing"; }; diff --git a/modules/home/services/udiskie/default.nix b/modules/home/services/udiskie/default.nix index 97ff6b1e..f9efaa28 100644 --- a/modules/home/services/udiskie/default.nix +++ b/modules/home/services/udiskie/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.home.services.udiskie; -in { +in +{ options = { home.services.udiskie.enable = mkEnableOption "Enables udiskie"; }; diff --git a/modules/home/services/xdg/default.nix b/modules/home/services/xdg/default.nix index 67866ed9..7e7d0692 100644 --- a/modules/home/services/xdg/default.nix +++ b/modules/home/services/xdg/default.nix @@ -3,14 +3,27 @@ lib, osConfig, ... -}: let - inherit (lib) mkIf mkEnableOption mkForce elem; +}: +let + inherit (lib) + mkIf + mkEnableOption + mkForce + elem + ; browser = - if elem osConfig.networking.hostName ["kima" "bunk"] - then "zen.desktop" - else "firefox.desktop"; + if + elem osConfig.networking.hostName [ + "kima" + "bunk" + ] + then + "zen.desktop" + else + "firefox.desktop"; cfg = config.home.services.xdg; -in { +in +{ options = { home.services.xdg.enable = mkEnableOption "Enables XDG settings"; }; @@ -81,15 +94,42 @@ in { "image/tiff" = "oculante.desktop"; "image/webp" = "oculante.desktop"; - "video/H264" = ["mpv.desktop" "vlc.desktop"]; - "video/x-msvideo" = ["mpv.desktop" "vlc.desktop"]; - "video/mp4" = ["mpv.desktop" "vlc.desktop"]; - "video/mpeg" = ["mpv.desktop" "vlc.desktop"]; - "video/ogg" = ["mpv.desktop" "vlc.desktop"]; - "video/mp2t" = ["mpv.desktop" "vlc.desktop"]; - "video/webm" = ["mpv.desktop" "vlc.desktop"]; - "video/3gpp" = ["mpv.desktop" "vlc.desktop"]; - "video/3gpp2" = ["mpv.desktop" "vlc.desktop"]; + "video/H264" = [ + "mpv.desktop" + "vlc.desktop" + ]; + "video/x-msvideo" = [ + "mpv.desktop" + "vlc.desktop" + ]; + "video/mp4" = [ + "mpv.desktop" + "vlc.desktop" + ]; + "video/mpeg" = [ + "mpv.desktop" + "vlc.desktop" + ]; + "video/ogg" = [ + "mpv.desktop" + "vlc.desktop" + ]; + "video/mp2t" = [ + "mpv.desktop" + "vlc.desktop" + ]; + "video/webm" = [ + "mpv.desktop" + "vlc.desktop" + ]; + "video/3gpp" = [ + "mpv.desktop" + "vlc.desktop" + ]; + "video/3gpp2" = [ + "mpv.desktop" + "vlc.desktop" + ]; "application/x-7z-compressed" = "org.gnome.FileRoller.desktop"; "application/zip" = "org.gnome.FileRoller.desktop"; diff --git a/modules/nixos/boot/kernel/default.nix b/modules/nixos/boot/kernel/default.nix index 1925fd18..c770eaf2 100644 --- a/modules/nixos/boot/kernel/default.nix +++ b/modules/nixos/boot/kernel/default.nix @@ -3,12 +3,14 @@ lib, config, ... -}: let +}: +let inherit (lib) mkOption types; cfg = config.nixos.boot.kernel; hasHardware = hw: builtins.elem hw cfg.hardware; -in { +in +{ imports = [ ./security.nix ]; @@ -16,26 +18,36 @@ in { options = { nixos.boot.kernel = { variant = mkOption { - type = types.enum ["stable" "latest" "cachyos"]; + type = types.enum [ + "stable" + "latest" + "cachyos" + ]; default = "latest"; description = "Kernel variant to use."; }; hardware = mkOption { - type = types.listOf (types.enum ["amd" "intel" "nvidia"]); - default = []; + type = types.listOf ( + types.enum [ + "amd" + "intel" + "nvidia" + ] + ); + default = [ ]; description = "List of hardware types (e.g. GPU and CPU vendors) to configure kernel settings for."; }; extraKernelParams = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; description = "Additional kernel parameters."; }; extraBlacklistedModules = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; description = "Additional kernel modules to blacklist."; }; }; @@ -45,52 +57,32 @@ in { boot = { consoleLogLevel = 3; - kernelPackages = let - variant = cfg.variant or "latest"; - in - if variant == "stable" - then pkgs.linuxPackages - else if variant == "latest" - then pkgs.linuxPackages_latest - else if variant == "cachyos" - then pkgs.linuxPackages_cachyos - else throw "Unknown kernel variant: ${variant}"; + kernelPackages = + let + variant = cfg.variant or "latest"; + in + if variant == "stable" then + pkgs.linuxPackages + else if variant == "latest" then + pkgs.linuxPackages_latest + else if variant == "cachyos" then + pkgs.linuxPackages_cachyos + else + throw "Unknown kernel variant: ${variant}"; - kernelParams = - ["quiet" "splash"] - ++ ( - if hasHardware "amd" - then ["amd_pstate=active"] - else [] - ) - ++ ( - if hasHardware "intel" - then [] - else [] - ) - ++ ( - if hasHardware "nvidia" - then [] - else [] - ) - ++ cfg.extraKernelParams; + kernelParams = [ + "quiet" + "splash" + ] + ++ (if hasHardware "amd" then [ "amd_pstate=active" ] else [ ]) + ++ (if hasHardware "intel" then [ ] else [ ]) + ++ (if hasHardware "nvidia" then [ ] else [ ]) + ++ cfg.extraKernelParams; blacklistedKernelModules = - ( - if hasHardware "amd" - then [] - else [] - ) - ++ ( - if hasHardware "intel" - then [] - else [] - ) - ++ ( - if hasHardware "nvidia" - then ["nouveau"] - else [] - ) + (if hasHardware "amd" then [ ] else [ ]) + ++ (if hasHardware "intel" then [ ] else [ ]) + ++ (if hasHardware "nvidia" then [ "nouveau" ] else [ ]) ++ cfg.extraBlacklistedModules; }; }; diff --git a/modules/nixos/boot/kernel/security.nix b/modules/nixos/boot/kernel/security.nix index 4c73dbc1..a1cd038d 100644 --- a/modules/nixos/boot/kernel/security.nix +++ b/modules/nixos/boot/kernel/security.nix @@ -41,7 +41,7 @@ "net.core.default_qdisc" = "cake"; }; - boot.kernelModules = ["tcp_bbr"]; + boot.kernelModules = [ "tcp_bbr" ]; security = { # pam.services.hyprlock.text = "auth include login"; diff --git a/modules/nixos/boot/loader/default.nix b/modules/nixos/boot/loader/default.nix index 11de59d9..0a901ca7 100644 --- a/modules/nixos/boot/loader/default.nix +++ b/modules/nixos/boot/loader/default.nix @@ -4,10 +4,17 @@ config, inputs, ... -}: let - inherit (lib) mkIf mkEnableOption mkMerge mkForce; +}: +let + inherit (lib) + mkIf + mkEnableOption + mkMerge + mkForce + ; cfg = config.nixos.boot.loader; -in { +in +{ options = { nixos.boot.loader = { default = { @@ -54,7 +61,7 @@ in { loader.systemd-boot.enable = mkForce false; }; - environment.systemPackages = [pkgs.sbctl]; + environment.systemPackages = [ pkgs.sbctl ]; }) ]; } diff --git a/modules/nixos/hardware/bluetooth/default.nix b/modules/nixos/hardware/bluetooth/default.nix index 08b0cf58..76493ef3 100644 --- a/modules/nixos/hardware/bluetooth/default.nix +++ b/modules/nixos/hardware/bluetooth/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.hardware.bluetooth; -in { +in +{ options = { nixos.hardware.bluetooth.enable = mkEnableOption "Enables bluetooth"; }; diff --git a/modules/nixos/hardware/graphics/default.nix b/modules/nixos/hardware/graphics/default.nix index 02dc6891..5c2b76a3 100644 --- a/modules/nixos/hardware/graphics/default.nix +++ b/modules/nixos/hardware/graphics/default.nix @@ -3,8 +3,17 @@ lib, pkgs, ... -}: let - inherit (lib) mkEnableOption mkOption types mkIf mkMerge flatten concatMap; +}: +let + inherit (lib) + mkEnableOption + mkOption + types + mkIf + mkMerge + flatten + concatMap + ; cfg = config.nixos.hardware.graphics; @@ -42,13 +51,20 @@ ''; hasVendor = vendor: builtins.elem vendor cfg.vendors; -in { +in +{ options.nixos.hardware.graphics = { enable = mkEnableOption "Enable general graphics support"; vendors = mkOption { - type = types.listOf (types.enum ["amd" "intel" "nvidia"]); - default = ["amd"]; + type = types.listOf ( + types.enum [ + "amd" + "intel" + "nvidia" + ] + ); + default = [ "amd" ]; description = "List of GPU vendors to configure support for."; }; @@ -59,7 +75,12 @@ in { description = "Use nvidia open driver"; }; package = mkOption { - type = types.enum ["stable" "beta" "production" "latest"]; + type = types.enum [ + "stable" + "beta" + "production" + "latest" + ]; default = "stable"; description = "NVidia driver package to use."; }; @@ -71,52 +92,57 @@ in { hardware.graphics = { enable = true; enable32Bit = true; - extraPackages = flatten (concatMap ( + extraPackages = flatten ( + concatMap ( vendor: - if vendor == "amd" - then commonPackages ++ mesaVulkanPackages - else if vendor == "intel" - then - commonPackages - ++ mesaVulkanPackages - ++ (with pkgs; [ - vpl-gpu-rt - intel-media-driver - intel-compute-runtime - intel-vaapi-driver - ]) - else if vendor == "nvidia" - then - commonPackages - ++ (with pkgs; [ - nvidiaOffloadScript - intel-media-driver - nvidia-vaapi-driver - vulkan-tools - ]) - else [] - ) - cfg.vendors); + if vendor == "amd" then + commonPackages ++ mesaVulkanPackages + else if vendor == "intel" then + commonPackages + ++ mesaVulkanPackages + ++ (with pkgs; [ + vpl-gpu-rt + intel-media-driver + intel-compute-runtime + intel-vaapi-driver + ]) + else if vendor == "nvidia" then + commonPackages + ++ (with pkgs; [ + nvidiaOffloadScript + intel-media-driver + nvidia-vaapi-driver + vulkan-tools + ]) + else + [ ] + ) cfg.vendors + ); extraPackages32 = flatten (concatMap (_: commonPackages32) cfg.vendors); }; - environment.systemPackages = flatten (concatMap ( + environment.systemPackages = flatten ( + concatMap ( vendor: - if vendor == "amd" - then - tools - ++ (with pkgs; [ - # rocmPackages.rpp - # rocmPackages.clr - ]) - else if vendor == "intel" - then tools - else if vendor == "nvidia" - then with pkgs; [egl-wayland libGL] - else [] - ) - cfg.vendors); + if vendor == "amd" then + tools + ++ (with pkgs; [ + # rocmPackages.rpp + # rocmPackages.clr + ]) + else if vendor == "intel" then + tools + else if vendor == "nvidia" then + with pkgs; + [ + egl-wayland + libGL + ] + else + [ ] + ) cfg.vendors + ); } (mkIf (hasVendor "amd") { @@ -126,13 +152,14 @@ in { (mkIf (hasVendor "nvidia") { hardware.nvidia = { package = - if cfg.nvidia.package == "beta" - then config.boot.kernelPackages.nvidiaPackages.beta - else if cfg.nvidia.package == "latest" - then config.boot.kernelPackages.nvidiaPackages.latest - else if cfg.nvidia.package == "production" - then config.boot.kernelPackages.nvidiaPackages.production - else config.boot.kernelPackages.nvidiaPackages.stable; + if cfg.nvidia.package == "beta" then + config.boot.kernelPackages.nvidiaPackages.beta + else if cfg.nvidia.package == "latest" then + config.boot.kernelPackages.nvidiaPackages.latest + else if cfg.nvidia.package == "production" then + config.boot.kernelPackages.nvidiaPackages.production + else + config.boot.kernelPackages.nvidiaPackages.stable; modesetting.enable = true; powerManagement.enable = false; diff --git a/modules/nixos/hardware/logitech/default.nix b/modules/nixos/hardware/logitech/default.nix index 1cc003fd..c7c7dcab 100644 --- a/modules/nixos/hardware/logitech/default.nix +++ b/modules/nixos/hardware/logitech/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.hardware.logitech; -in { +in +{ options = { nixos.hardware.logitech.enable = mkEnableOption "Enables logitech"; }; diff --git a/modules/nixos/hardware/network/default.nix b/modules/nixos/hardware/network/default.nix index 7d4508ee..29a02ccf 100644 --- a/modules/nixos/hardware/network/default.nix +++ b/modules/nixos/hardware/network/default.nix @@ -2,29 +2,38 @@ config, lib, ... -}: let - inherit (lib) mkIf mkEnableOption mkOption types; +}: +let + inherit (lib) + mkIf + mkEnableOption + mkOption + types + ; cfg = config.nixos.hardware.network; -in { +in +{ options = { nixos.hardware.network = { enable = mkEnableOption "Enable the custom networking module"; interfaces = mkOption { - type = types.attrsOf (types.submodule { - options = { - allowedTCPPorts = mkOption { - type = types.listOf types.int; - default = []; - description = "List of allowed TCP ports for this interface."; + type = types.attrsOf ( + types.submodule { + options = { + allowedTCPPorts = mkOption { + type = types.listOf types.int; + default = [ ]; + description = "List of allowed TCP ports for this interface."; + }; + allowedUDPPorts = mkOption { + type = types.listOf types.int; + default = [ ]; + description = "List of allowed UDP ports for this interface."; + }; }; - allowedUDPPorts = mkOption { - type = types.listOf types.int; - default = []; - description = "List of allowed UDP ports for this interface."; - }; - }; - }); - default = {}; + } + ); + default = { }; description = "Network interface configurations."; }; extraHosts = mkOption { @@ -38,7 +47,7 @@ in { config = mkIf cfg.enable { assertions = [ { - assertion = cfg.interfaces != {} -> config.networking.networkmanager.enable; + assertion = cfg.interfaces != { } -> config.networking.networkmanager.enable; message = "Network interfaces configured but NetworkManager is not enabled"; } ]; @@ -54,8 +63,8 @@ in { }; systemd.services.NetworkManager = { - wants = ["nftables.service"]; - after = ["nftables.service"]; + wants = [ "nftables.service" ]; + after = [ "nftables.service" ]; }; }; } diff --git a/modules/nixos/programs/android/default.nix b/modules/nixos/programs/android/default.nix index 97d089f0..b3f7768c 100644 --- a/modules/nixos/programs/android/default.nix +++ b/modules/nixos/programs/android/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.android; -in { +in +{ options = { nixos.programs.android.enable = mkEnableOption "Enables android tools"; }; diff --git a/modules/nixos/programs/anyrun/default.nix b/modules/nixos/programs/anyrun/default.nix index c4bbfe3a..95a135dc 100644 --- a/modules/nixos/programs/anyrun/default.nix +++ b/modules/nixos/programs/anyrun/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.anyrun; -in { +in +{ options = { nixos.programs.anyrun.enable = mkEnableOption "Enables anyrun"; }; diff --git a/modules/nixos/programs/beekeeper/default.nix b/modules/nixos/programs/beekeeper/default.nix index 4e1e63f2..ee4b5ed6 100644 --- a/modules/nixos/programs/beekeeper/default.nix +++ b/modules/nixos/programs/beekeeper/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.beekeeper; -in { +in +{ options = { nixos.programs.beekeeper.enable = mkEnableOption "Enables Beekeeper Studio"; }; diff --git a/modules/nixos/programs/blender/default.nix b/modules/nixos/programs/blender/default.nix index 63a0cdbc..fbd7bdab 100644 --- a/modules/nixos/programs/blender/default.nix +++ b/modules/nixos/programs/blender/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption mkOption; cfg = config.nixos.programs.blender; -in { +in +{ options = { nixos.programs.blender = { enable = mkEnableOption "Enables Blender"; @@ -19,11 +21,7 @@ in { }; config = mkIf cfg.enable { environment.systemPackages = [ - ( - if cfg.hip.enable - then pkgs.blender-hip - else pkgs.blender - ) + (if cfg.hip.enable then pkgs.blender-hip else pkgs.blender) ]; }; } diff --git a/modules/nixos/programs/corectrl/default.nix b/modules/nixos/programs/corectrl/default.nix index e8d91ece..3a3296eb 100644 --- a/modules/nixos/programs/corectrl/default.nix +++ b/modules/nixos/programs/corectrl/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.corectrl; -in { +in +{ options = { nixos.programs.corectrl.enable = mkEnableOption "Enables CoreCtrl"; }; diff --git a/modules/nixos/programs/fish/default.nix b/modules/nixos/programs/fish/default.nix index 653a6a05..d8c063f6 100644 --- a/modules/nixos/programs/fish/default.nix +++ b/modules/nixos/programs/fish/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.fish; -in { +in +{ options = { nixos.programs.fish.enable = mkEnableOption "Enables fish shell"; }; diff --git a/modules/nixos/programs/gamemode/default.nix b/modules/nixos/programs/gamemode/default.nix index 96b32c12..4792c9c0 100644 --- a/modules/nixos/programs/gamemode/default.nix +++ b/modules/nixos/programs/gamemode/default.nix @@ -4,11 +4,13 @@ pkgs, inputs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption mkOption; cfg = config.nixos.programs.gamemode; pipewireLowLatencyModule = inputs.nix-gaming.nixosModules.pipewireLowLatency; -in { +in +{ imports = [ pipewireLowLatencyModule ]; diff --git a/modules/nixos/programs/gamescope/default.nix b/modules/nixos/programs/gamescope/default.nix index 8e54566f..41f02c56 100644 --- a/modules/nixos/programs/gamescope/default.nix +++ b/modules/nixos/programs/gamescope/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.gamescope; -in { +in +{ options = { nixos.programs.gamescope.enable = mkEnableOption "Enables gamescope"; }; diff --git a/modules/nixos/programs/gimp/default.nix b/modules/nixos/programs/gimp/default.nix index d510eb40..393acd57 100644 --- a/modules/nixos/programs/gimp/default.nix +++ b/modules/nixos/programs/gimp/default.nix @@ -3,10 +3,12 @@ pkgs, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.gimp; -in { +in +{ options = { nixos.programs.gimp.enable = mkEnableOption "Enables gimp"; }; diff --git a/modules/nixos/programs/gnome/default.nix b/modules/nixos/programs/gnome/default.nix index 8950ca4a..7c9128a8 100644 --- a/modules/nixos/programs/gnome/default.nix +++ b/modules/nixos/programs/gnome/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.gnome; -in { +in +{ options = { nixos.programs.gnome.enable = mkEnableOption "Enables gnome"; }; diff --git a/modules/nixos/programs/hyprland/appearance.nix b/modules/nixos/programs/hyprland/appearance.nix index 02c3ee3d..ee939054 100644 --- a/modules/nixos/programs/hyprland/appearance.nix +++ b/modules/nixos/programs/hyprland/appearance.nix @@ -2,12 +2,15 @@ lib, config, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.hyprland; -in { +in +{ options = { - nixos.programs.hyprland.appearance.enable = mkEnableOption "Enables appearance settings in Hyprland"; + nixos.programs.hyprland.appearance.enable = + mkEnableOption "Enables appearance settings in Hyprland"; }; config = mkIf cfg.appearance.enable { programs.hyprland.settings = { diff --git a/modules/nixos/programs/hyprland/default.nix b/modules/nixos/programs/hyprland/default.nix index 9b6a55aa..04a0a4b1 100644 --- a/modules/nixos/programs/hyprland/default.nix +++ b/modules/nixos/programs/hyprland/default.nix @@ -4,10 +4,17 @@ inputs, pkgs, ... -}: let - inherit (lib) mkIf mkEnableOption mkOption mkDefault; +}: +let + inherit (lib) + mkIf + mkEnableOption + mkOption + mkDefault + ; cfg = config.nixos.programs.hyprland; -in { +in +{ imports = [ inputs.hyprland.nixosModules.default ./appearance.nix diff --git a/modules/nixos/programs/hyprland/inputs.nix b/modules/nixos/programs/hyprland/inputs.nix index bd611302..82c17481 100644 --- a/modules/nixos/programs/hyprland/inputs.nix +++ b/modules/nixos/programs/hyprland/inputs.nix @@ -2,11 +2,13 @@ lib, config, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption mkMerge; cfg = config.nixos.programs.hyprland; host = config.networking.hostName; -in { +in +{ options = { nixos.programs.hyprland.inputs.enable = mkEnableOption "Enables input settings in Hyprland"; }; diff --git a/modules/nixos/programs/hyprland/keybinds.nix b/modules/nixos/programs/hyprland/keybinds.nix index 077e6fd1..3a616088 100644 --- a/modules/nixos/programs/hyprland/keybinds.nix +++ b/modules/nixos/programs/hyprland/keybinds.nix @@ -3,17 +3,22 @@ config, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption mkMerge; cfg = config.nixos.programs.hyprland; host = config.networking.hostName; - toggle = program: let - prog = builtins.substring 0 14 program; - in "pkill ${prog} || uwsm app -- ${program}"; + toggle = + program: + let + prog = builtins.substring 0 14 program; + in + "pkill ${prog} || uwsm app -- ${program}"; runOnce = program: "pgrep ${program} || uwsm app -- ${program}"; -in { +in +{ options = { nixos.programs.hyprland.keybinds.enable = mkEnableOption "Enables keybind settings in Hyprland"; }; diff --git a/modules/nixos/programs/hyprland/layout.nix b/modules/nixos/programs/hyprland/layout.nix index 1691b4a5..492bd0fa 100644 --- a/modules/nixos/programs/hyprland/layout.nix +++ b/modules/nixos/programs/hyprland/layout.nix @@ -2,11 +2,13 @@ lib, config, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption mkMerge; host = config.networking.hostName; cfg = config.nixos.programs.hyprland.rules; -in { +in +{ options = { nixos.programs.hyprland.rules.enable = mkEnableOption "Enables window rule settings in Hyprland"; }; @@ -14,37 +16,30 @@ in { config = mkIf cfg.enable (mkMerge [ { programs.hyprland.settings = { - monitor = - map ( - m: let - resolution = - if m.width != null && m.height != null - then "${toString m.width}x${toString m.height}@${toString m.refreshRate}" - else "preferred"; + monitor = map ( + m: + let + resolution = + if m.width != null && m.height != null then + "${toString m.width}x${toString m.height}@${toString m.refreshRate}" + else + "preferred"; - position = m.position or "auto"; - scale = m.scale; + position = m.position or "auto"; + scale = m.scale; - transformStr = - if m.transform != 0 - then ",transform,${toString m.transform}" - else ""; + transformStr = if m.transform != 0 then ",transform,${toString m.transform}" else ""; - bitdepthStr = - if m.bitDepth != null - then ",bitdepth,${toString m.bitDepth}" - else ""; - in "${m.name},${ - if m.enable - then "${resolution},${position},${scale}${transformStr}${bitdepthStr}" - else "disable" - }" - ) - config.settings.monitors; + bitdepthStr = if m.bitDepth != null then ",bitdepth,${toString m.bitDepth}" else ""; + in + "${m.name},${ + if m.enable then "${resolution},${position},${scale}${transformStr}${bitdepthStr}" else "disable" + }" + ) config.settings.monitors; - workspace = map ( - m: "${m.workspace},monitor:${m.name}" - ) (lib.filter (m: m.enable && m.workspace != null) config.settings.monitors); + workspace = map (m: "${m.workspace},monitor:${m.name}") ( + lib.filter (m: m.enable && m.workspace != null) config.settings.monitors + ); windowrule = [ "size 843 650, initialTitle:^(floatcal)$" diff --git a/modules/nixos/programs/hyprland/startup.nix b/modules/nixos/programs/hyprland/startup.nix index add9e637..34b0b887 100644 --- a/modules/nixos/programs/hyprland/startup.nix +++ b/modules/nixos/programs/hyprland/startup.nix @@ -2,7 +2,8 @@ lib, config, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption mkMerge; cfg = config.nixos.programs.hyprland; host = config.networking.hostName; @@ -12,7 +13,8 @@ "uwsm app -- keepassxc" "uwsm app -- nm-applet --indicator" ]; -in { +in +{ options = { nixos.programs.hyprland.startup.enable = mkEnableOption "Enables startup settings in Hyprland"; }; @@ -28,30 +30,27 @@ in { } (mkIf (host == "kima") { - programs.hyprland.settings.exec-once = - [ - "uwsm app -- mullvad-vpn" - "uwsm app -- solaar -w hide -b regular" - "uwsm app -- blueman-applet" - ] - ++ commonExecOnce; + programs.hyprland.settings.exec-once = [ + "uwsm app -- mullvad-vpn" + "uwsm app -- solaar -w hide -b regular" + "uwsm app -- blueman-applet" + ] + ++ commonExecOnce; }) (mkIf (host == "bunk") { - programs.hyprland.settings.exec-once = - [ - "uwsm app -- blueman-applet" - ] - ++ commonExecOnce; + programs.hyprland.settings.exec-once = [ + "uwsm app -- blueman-applet" + ] + ++ commonExecOnce; }) (mkIf (host == "toothpc") { - programs.hyprland.settings.exec-once = - [ - "uwsm app -- mullvad-vpn" - "uwsm app -- solaar -w hide -b regular" - ] - ++ commonExecOnce; + programs.hyprland.settings.exec-once = [ + "uwsm app -- mullvad-vpn" + "uwsm app -- solaar -w hide -b regular" + ] + ++ commonExecOnce; }) ]); } diff --git a/modules/nixos/programs/inkscape/default.nix b/modules/nixos/programs/inkscape/default.nix index 9e6ec056..aa8c5551 100644 --- a/modules/nixos/programs/inkscape/default.nix +++ b/modules/nixos/programs/inkscape/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.inkscape; -in { +in +{ options = { nixos.programs.inkscape.enable = mkEnableOption "Enables inkscape"; }; diff --git a/modules/nixos/programs/lact/default.nix b/modules/nixos/programs/lact/default.nix index 33f747c6..1fc48179 100644 --- a/modules/nixos/programs/lact/default.nix +++ b/modules/nixos/programs/lact/default.nix @@ -3,10 +3,12 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.lact; -in { +in +{ options = { nixos.programs.lact.enable = mkEnableOption "Enables lact for GPU monitoring and tweaking"; }; @@ -18,8 +20,8 @@ in { systemd.services.lact = { enable = cfg.enable; description = "GPU Control Daemon"; - after = ["multi-user.target"]; - wantedBy = ["multi-user.target"]; + after = [ "multi-user.target" ]; + wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = "${pkgs.lact}/bin/lact daemon"; }; diff --git a/modules/nixos/programs/lutris/default.nix b/modules/nixos/programs/lutris/default.nix index 9a7b186d..08cdaf48 100644 --- a/modules/nixos/programs/lutris/default.nix +++ b/modules/nixos/programs/lutris/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.lutris; -in { +in +{ options = { nixos.programs.lutris.enable = mkEnableOption "Enables lutris"; }; diff --git a/modules/nixos/programs/microfetch/default.nix b/modules/nixos/programs/microfetch/default.nix index 9034bd20..f029c139 100644 --- a/modules/nixos/programs/microfetch/default.nix +++ b/modules/nixos/programs/microfetch/default.nix @@ -3,14 +3,16 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.microfetch; -in { +in +{ options = { nixos.programs.microfetch.enable = mkEnableOption "Enables microfetch"; }; config = mkIf cfg.enable { - environment.systemPackages = [pkgs.microfetch]; + environment.systemPackages = [ pkgs.microfetch ]; }; } diff --git a/modules/nixos/programs/mysql-workbench/default.nix b/modules/nixos/programs/mysql-workbench/default.nix index 50e6cdac..d17bab13 100644 --- a/modules/nixos/programs/mysql-workbench/default.nix +++ b/modules/nixos/programs/mysql-workbench/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.mysql-workbench; -in { +in +{ options = { nixos.programs.mysql-workbench.enable = mkEnableOption "Enables MySQL Workbench"; }; diff --git a/modules/nixos/programs/nh/default.nix b/modules/nixos/programs/nh/default.nix index cf1b937c..5e5dd5aa 100644 --- a/modules/nixos/programs/nh/default.nix +++ b/modules/nixos/programs/nh/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption mkOption; cfg = config.nixos.programs.nh; -in { +in +{ options = { nixos.programs.nh = { enable = mkEnableOption "Enables nix helper"; diff --git a/modules/nixos/programs/npm/default.nix b/modules/nixos/programs/npm/default.nix index edbf6731..de20842e 100644 --- a/modules/nixos/programs/npm/default.nix +++ b/modules/nixos/programs/npm/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.npm; -in { +in +{ options = { nixos.programs.npm.enable = mkEnableOption "Enables npm"; }; diff --git a/modules/nixos/programs/obsidian/default.nix b/modules/nixos/programs/obsidian/default.nix index 2507b74f..62884b33 100644 --- a/modules/nixos/programs/obsidian/default.nix +++ b/modules/nixos/programs/obsidian/default.nix @@ -3,10 +3,12 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.obsidian; -in { +in +{ options = { nixos.programs.obsidian.enable = mkEnableOption "Enables obsidian"; }; diff --git a/modules/nixos/programs/pkgs/default.nix b/modules/nixos/programs/pkgs/default.nix index 92ed38e5..b68a745a 100644 --- a/modules/nixos/programs/pkgs/default.nix +++ b/modules/nixos/programs/pkgs/default.nix @@ -3,10 +3,17 @@ config, lib, ... -}: let - inherit (lib) mkIf mkOption mkMerge types; +}: +let + inherit (lib) + mkIf + mkOption + mkMerge + types + ; cfg = config.nixos.programs.pkgs; -in { +in +{ options = { nixos.programs.pkgs = { enable = mkOption { @@ -44,7 +51,8 @@ in { }; config = mkIf cfg.enable { - environment.systemPackages = with pkgs; + environment.systemPackages = + with pkgs; mkMerge [ [ pciutils diff --git a/modules/nixos/programs/steam/default.nix b/modules/nixos/programs/steam/default.nix index e5d42d25..8e047522 100644 --- a/modules/nixos/programs/steam/default.nix +++ b/modules/nixos/programs/steam/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.steam; -in { +in +{ options = { nixos.programs.steam.enable = mkEnableOption "Enables steam"; }; diff --git a/modules/nixos/programs/thunar/default.nix b/modules/nixos/programs/thunar/default.nix index f70e7c15..3d779463 100644 --- a/modules/nixos/programs/thunar/default.nix +++ b/modules/nixos/programs/thunar/default.nix @@ -3,10 +3,12 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.thunar; -in { +in +{ options = { nixos.programs.thunar.enable = mkEnableOption "Enables thunar file manager"; }; diff --git a/modules/nixos/programs/yubikey/default.nix b/modules/nixos/programs/yubikey/default.nix index 6fb78cfc..0d3b9721 100644 --- a/modules/nixos/programs/yubikey/default.nix +++ b/modules/nixos/programs/yubikey/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.yubikey; -in { +in +{ options = { nixos.programs.yubikey.enable = mkEnableOption "Enables yubikey utilities"; }; diff --git a/modules/nixos/programs/zsh/default.nix b/modules/nixos/programs/zsh/default.nix index ef719e32..a50b1ab8 100644 --- a/modules/nixos/programs/zsh/default.nix +++ b/modules/nixos/programs/zsh/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.programs.zsh; -in { +in +{ options = { nixos.programs.zsh.enable = mkEnableOption "Enables zsh shell"; }; diff --git a/modules/nixos/services/agenix/default.nix b/modules/nixos/services/agenix/default.nix index eb0eff90..aad95182 100644 --- a/modules/nixos/services/agenix/default.nix +++ b/modules/nixos/services/agenix/default.nix @@ -5,10 +5,17 @@ pkgs, self, ... -}: let - inherit (lib) mkIf mkEnableOption mkOption mkMerge; +}: +let + inherit (lib) + mkIf + mkEnableOption + mkOption + mkMerge + ; cfg = config.nixos.services.agenix; -in { +in +{ options = { nixos.services.agenix = { enable = mkEnableOption "Enables agenix system environment"; diff --git a/modules/nixos/services/blueman/default.nix b/modules/nixos/services/blueman/default.nix index 65ed181d..99d6e47a 100644 --- a/modules/nixos/services/blueman/default.nix +++ b/modules/nixos/services/blueman/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.blueman; -in { +in +{ options = { nixos.services.blueman.enable = mkEnableOption "Enables blueman"; }; diff --git a/modules/nixos/services/dbus/default.nix b/modules/nixos/services/dbus/default.nix index ad156956..36015e9b 100644 --- a/modules/nixos/services/dbus/default.nix +++ b/modules/nixos/services/dbus/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.dbus; -in { +in +{ options = { nixos.services.dbus.enable = mkEnableOption "Enables dbus"; }; diff --git a/modules/nixos/services/dconf/default.nix b/modules/nixos/services/dconf/default.nix index bc03c386..1679f35c 100644 --- a/modules/nixos/services/dconf/default.nix +++ b/modules/nixos/services/dconf/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.dconf; -in { +in +{ options = { nixos.services.dconf.enable = mkEnableOption "Enables dconf"; }; diff --git a/modules/nixos/services/flatpak/default.nix b/modules/nixos/services/flatpak/default.nix index 0a19b3d6..3007bf3c 100644 --- a/modules/nixos/services/flatpak/default.nix +++ b/modules/nixos/services/flatpak/default.nix @@ -3,10 +3,12 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.flatpak; -in { +in +{ options = { nixos.services.flatpak.enable = mkEnableOption "Enables flatpaks and gnome software"; }; @@ -17,9 +19,9 @@ in { ]; systemd.services.flatpak-repo = { description = "Add flathub repository"; - after = ["network-online.target"]; - wants = ["network-online.target"]; - path = [pkgs.flatpak]; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + path = [ pkgs.flatpak ]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; @@ -27,7 +29,7 @@ in { Restart = "on-failure"; RestartSec = "5s"; }; - wantedBy = ["multi-user.target"]; + wantedBy = [ "multi-user.target" ]; }; }; } diff --git a/modules/nixos/services/fwupd/default.nix b/modules/nixos/services/fwupd/default.nix index 4b406b15..e407d50b 100644 --- a/modules/nixos/services/fwupd/default.nix +++ b/modules/nixos/services/fwupd/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.fwupd; -in { +in +{ options = { nixos.services.fwupd.enable = mkEnableOption "Enables fwupd"; }; diff --git a/modules/nixos/services/gnome-keyring/default.nix b/modules/nixos/services/gnome-keyring/default.nix index 2faa7857..bcc925e9 100644 --- a/modules/nixos/services/gnome-keyring/default.nix +++ b/modules/nixos/services/gnome-keyring/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.gnome-keyring; -in { +in +{ options = { nixos.services.gnome-keyring.enable = mkEnableOption "Enables gnome-keyring"; }; diff --git a/modules/nixos/services/greetd/default.nix b/modules/nixos/services/greetd/default.nix index 9ad928b5..129a0e6a 100644 --- a/modules/nixos/services/greetd/default.nix +++ b/modules/nixos/services/greetd/default.nix @@ -2,10 +2,17 @@ config, lib, ... -}: let - inherit (lib) mkIf mkEnableOption mkOption types; +}: +let + inherit (lib) + mkIf + mkEnableOption + mkOption + types + ; cfg = config.nixos.services.greetd; -in { +in +{ options = { nixos.services.greetd = { enable = mkEnableOption { @@ -22,18 +29,20 @@ in { }; config = mkIf cfg.enable { - services.greetd = let - session = { - command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop"; - user = cfg.user; + services.greetd = + let + session = { + command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop"; + user = cfg.user; + }; + in + { + enable = true; + settings = { + terminal.vt = 1; + default_session = session; + initial_session = session; + }; }; - in { - enable = true; - settings = { - terminal.vt = 1; - default_session = session; - initial_session = session; - }; - }; }; } diff --git a/modules/nixos/services/gvfs/default.nix b/modules/nixos/services/gvfs/default.nix index 527ccebf..dca23169 100644 --- a/modules/nixos/services/gvfs/default.nix +++ b/modules/nixos/services/gvfs/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.gvfs; -in { +in +{ options = { nixos.services.gvfs.enable = mkEnableOption "Enables gvfs"; }; diff --git a/modules/nixos/services/kanata/default.nix b/modules/nixos/services/kanata/default.nix index 1f3051cf..260a5a9d 100644 --- a/modules/nixos/services/kanata/default.nix +++ b/modules/nixos/services/kanata/default.nix @@ -3,10 +3,12 @@ lib, pkgs, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.kanata; -in { +in +{ options = { nixos.services.kanata.enable = mkEnableOption "Enables kanata keyboard remapping"; }; diff --git a/modules/nixos/services/locate/default.nix b/modules/nixos/services/locate/default.nix index aeb8b647..0c53ab1b 100644 --- a/modules/nixos/services/locate/default.nix +++ b/modules/nixos/services/locate/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.locate; -in { +in +{ options = { nixos.services.locate.enable = mkEnableOption "Enables plocate"; }; diff --git a/modules/nixos/services/mullvad/default.nix b/modules/nixos/services/mullvad/default.nix index b6f5e1eb..7c4c3dd1 100644 --- a/modules/nixos/services/mullvad/default.nix +++ b/modules/nixos/services/mullvad/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.mullvad; -in { +in +{ options = { nixos.services.mullvad.enable = mkEnableOption "Enables mullvad"; }; diff --git a/modules/nixos/services/nfs/default.nix b/modules/nixos/services/nfs/default.nix index 35870b5b..cf6e25a8 100644 --- a/modules/nixos/services/nfs/default.nix +++ b/modules/nixos/services/nfs/default.nix @@ -2,10 +2,17 @@ config, lib, ... -}: let - inherit (lib) mkIf mkEnableOption mkOption types; +}: +let + inherit (lib) + mkIf + mkEnableOption + mkOption + types + ; cfg = config.nixos.services.nfs; -in { +in +{ options.nixos.services.nfs = { enable = mkEnableOption "Enable NFS support"; @@ -37,18 +44,28 @@ in { }; options = mkOption { type = types.listOf types.str; - default = ["x-systemd.automount"]; + default = [ "x-systemd.automount" ]; description = "Mount options"; }; }; }; config = mkIf cfg.enable { - boot.supportedFilesystems = ["nfs"]; + boot.supportedFilesystems = [ "nfs" ]; services.rpcbind.enable = true; networking.firewall = { - allowedTCPPorts = [2049 4000 4001 4002]; - allowedUDPPorts = [2049 4000 4001 4002]; + allowedTCPPorts = [ + 2049 + 4000 + 4001 + 4002 + ]; + allowedUDPPorts = [ + 2049 + 4000 + 4001 + 4002 + ]; }; services.nfs.server = mkIf cfg.server.enable { diff --git a/modules/nixos/services/nix-ld/default.nix b/modules/nixos/services/nix-ld/default.nix index 2469b528..726246f7 100644 --- a/modules/nixos/services/nix-ld/default.nix +++ b/modules/nixos/services/nix-ld/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.nix-ld; -in { +in +{ options = { nixos.services.nix-ld.enable = mkEnableOption "Enables nix-ld"; }; diff --git a/modules/nixos/services/openssh/default.nix b/modules/nixos/services/openssh/default.nix index 98e392b0..c7604411 100644 --- a/modules/nixos/services/openssh/default.nix +++ b/modules/nixos/services/openssh/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.openssh; -in { +in +{ options = { nixos.services.openssh.enable = mkEnableOption "Enables openssh"; }; diff --git a/modules/nixos/services/pcscd/default.nix b/modules/nixos/services/pcscd/default.nix index 7acaec1e..5c93fa8d 100644 --- a/modules/nixos/services/pcscd/default.nix +++ b/modules/nixos/services/pcscd/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.pcscd; -in { +in +{ options = { nixos.services.pcscd.enable = mkEnableOption "Enables pcscd"; }; diff --git a/modules/nixos/services/pipewire/default.nix b/modules/nixos/services/pipewire/default.nix index ecb1399b..9c734a9f 100644 --- a/modules/nixos/services/pipewire/default.nix +++ b/modules/nixos/services/pipewire/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.pipewire; -in { +in +{ options = { nixos.services.pipewire.enable = mkEnableOption "Enables pipewire"; }; diff --git a/modules/nixos/services/polkit/default.nix b/modules/nixos/services/polkit/default.nix index 3177180f..82e20aa9 100644 --- a/modules/nixos/services/polkit/default.nix +++ b/modules/nixos/services/polkit/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.polkit; -in { +in +{ options = { nixos.services.polkit.enable = mkEnableOption "Enables polkit"; }; @@ -21,9 +23,9 @@ in { TimeoutStopSec = 10; }; - wantedBy = ["graphical-session.target"]; - wants = ["graphical-session.target"]; - after = ["graphical-session.target"]; + wantedBy = [ "graphical-session.target" ]; + wants = [ "graphical-session.target" ]; + after = [ "graphical-session.target" ]; }; }; } diff --git a/modules/nixos/services/powerd/default.nix b/modules/nixos/services/powerd/default.nix index 634b603a..7ba853e6 100644 --- a/modules/nixos/services/powerd/default.nix +++ b/modules/nixos/services/powerd/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.powerd; -in { +in +{ options = { nixos.services.powerd.enable = mkEnableOption "Enables power-profiles-daemon"; }; diff --git a/modules/nixos/services/psd/default.nix b/modules/nixos/services/psd/default.nix index 0b405e72..8e214ab0 100644 --- a/modules/nixos/services/psd/default.nix +++ b/modules/nixos/services/psd/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.psd; -in { +in +{ options = { nixos.services.psd.enable = mkEnableOption "Enables Profile Sync Daemon"; }; diff --git a/modules/nixos/services/samba/default.nix b/modules/nixos/services/samba/default.nix index 45c056c3..1331c3cd 100644 --- a/modules/nixos/services/samba/default.nix +++ b/modules/nixos/services/samba/default.nix @@ -3,10 +3,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.samba; -in { +in +{ options = { nixos.services.samba.enable = mkEnableOption "Enables samba"; }; diff --git a/modules/nixos/services/scx/default.nix b/modules/nixos/services/scx/default.nix index 3c6cfd2c..98da9c14 100644 --- a/modules/nixos/services/scx/default.nix +++ b/modules/nixos/services/scx/default.nix @@ -3,15 +3,26 @@ lib, pkgs, ... -}: let - inherit (lib) mkIf mkEnableOption mkOption types; +}: +let + inherit (lib) + mkIf + mkEnableOption + mkOption + types + ; cfg = config.nixos.services.scx; -in { +in +{ options = { nixos.services.scx = { enable = mkEnableOption "Enables scx scheduler"; scheduler = mkOption { - type = types.enum ["scx_lavd" "scx_rusty" "scx_bpfland"]; + type = types.enum [ + "scx_lavd" + "scx_rusty" + "scx_bpfland" + ]; description = "Selects the scheduler for scx"; default = "scx_lavd"; }; @@ -28,7 +39,7 @@ in { ]; systemd.services.scx = { enable = true; - wantedBy = ["multi-user.target"]; + wantedBy = [ "multi-user.target" ]; unitConfig = { Description = "Start scx_scheduler"; ConditionPathIsDirectory = "/sys/kernel/sched_ext"; diff --git a/modules/nixos/services/udisks/default.nix b/modules/nixos/services/udisks/default.nix index 566208a4..f0d4006a 100644 --- a/modules/nixos/services/udisks/default.nix +++ b/modules/nixos/services/udisks/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.udisks; -in { +in +{ options = { nixos.services.udisks.enable = mkEnableOption "Enables udisks"; }; diff --git a/modules/nixos/services/xserver/default.nix b/modules/nixos/services/xserver/default.nix index bfd647f8..23160aef 100644 --- a/modules/nixos/services/xserver/default.nix +++ b/modules/nixos/services/xserver/default.nix @@ -2,16 +2,28 @@ config, lib, ... -}: let - inherit (lib) mkIf mkOption types mkEnableOption; +}: +let + inherit (lib) + mkIf + mkOption + types + mkEnableOption + ; cfg = config.nixos.services.xserver; -in { +in +{ options = { nixos.services.xserver = { enable = mkEnableOption "Enables xserver"; videoDrivers = mkOption { - type = types.listOf (types.enum ["amdgpu" "nvidia"]); - default = ["amdgpu"]; + type = types.listOf ( + types.enum [ + "amdgpu" + "nvidia" + ] + ); + default = [ "amdgpu" ]; description = "The names of the video drivers the configuration supports"; }; xkbLayout = mkOption { diff --git a/modules/nixos/services/zram/default.nix b/modules/nixos/services/zram/default.nix index fb93831f..c0331e4b 100644 --- a/modules/nixos/services/zram/default.nix +++ b/modules/nixos/services/zram/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.nixos.services.zram; -in { +in +{ options = { nixos.services.zram.enable = mkEnableOption "Enables zram"; }; diff --git a/modules/nixos/system/devpkgs/default.nix b/modules/nixos/system/devpkgs/default.nix index eff6c490..c9a83fe6 100644 --- a/modules/nixos/system/devpkgs/default.nix +++ b/modules/nixos/system/devpkgs/default.nix @@ -4,10 +4,12 @@ config, inputs, ... -}: let +}: +let inherit (lib) mkIf mkOption types; cfg = config.nixos.system.devpkgs; -in { +in +{ options = { nixos.system.devpkgs = { enable = mkOption { diff --git a/modules/nixos/system/fonts/default.nix b/modules/nixos/system/fonts/default.nix index b3dc6b0e..aa849818 100644 --- a/modules/nixos/system/fonts/default.nix +++ b/modules/nixos/system/fonts/default.nix @@ -4,10 +4,12 @@ config, inputs, ... -}: let +}: +let inherit (lib) mkIf mkOption types; cfg = config.nixos.system.fonts; -in { +in +{ options = { nixos.system.fonts = { enable = mkOption { @@ -49,10 +51,10 @@ in { ]; fontconfig.defaultFonts = { - serif = ["Tinos"]; - sansSerif = ["Inter"]; - monospace = ["Input Mono Narrow Light"]; - emoji = ["Noto Color Emoji"]; + serif = [ "Tinos" ]; + sansSerif = [ "Inter" ]; + monospace = [ "Input Mono Narrow Light" ]; + emoji = [ "Noto Color Emoji" ]; }; }; }; diff --git a/modules/nixos/system/locale/default.nix b/modules/nixos/system/locale/default.nix index 124a279f..1327e2e1 100644 --- a/modules/nixos/system/locale/default.nix +++ b/modules/nixos/system/locale/default.nix @@ -2,8 +2,14 @@ config, lib, ... -}: let - inherit (lib) mkIf mkOption mkDefault types; +}: +let + inherit (lib) + mkIf + mkOption + mkDefault + types + ; cfg = config.nixos.system.locale; defaultCategories = [ "LC_ADDRESS" @@ -16,7 +22,8 @@ "LC_TELEPHONE" "LC_TIME" ]; -in { +in +{ options = { nixos.system.locale = { enable = mkOption { @@ -58,7 +65,7 @@ in { time.timeZone = mkDefault cfg.timeZone; i18n.defaultLocale = mkDefault cfg.defaultLocale; i18n.extraLocaleSettings = mkIf (cfg.extraLocale != null) ( - lib.foldl' (attrs: lc: attrs // {"${lc}" = cfg.extraLocale;}) {} cfg.categories + lib.foldl' (attrs: lc: attrs // { "${lc}" = cfg.extraLocale; }) { } cfg.categories ); }; } diff --git a/modules/nixos/system/xdg/default.nix b/modules/nixos/system/xdg/default.nix index aab739b0..ae8e5e70 100644 --- a/modules/nixos/system/xdg/default.nix +++ b/modules/nixos/system/xdg/default.nix @@ -3,10 +3,17 @@ config, pkgs, ... -}: let - inherit (lib) mkIf mkOption mkEnableOption types; +}: +let + inherit (lib) + mkIf + mkOption + mkEnableOption + types + ; cfg = config.nixos.system.xdg; -in { +in +{ options = { nixos.system.xdg = { enable = mkEnableOption "Enable XDG portal."; @@ -23,10 +30,13 @@ in { enable = true; xdgOpenUsePortal = cfg.xdgOpenUsePortal; config = { - common.default = ["gtk"]; - hyprland.default = ["gtk" "hyprland"]; + common.default = [ "gtk" ]; + hyprland.default = [ + "gtk" + "hyprland" + ]; }; - extraPortals = [pkgs.xdg-desktop-portal-gtk]; + extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; }; }; } diff --git a/modules/server/bazarr/default.nix b/modules/server/bazarr/default.nix index 889241fc..f257f559 100644 --- a/modules/server/bazarr/default.nix +++ b/modules/server/bazarr/default.nix @@ -2,11 +2,13 @@ config, lib, ... -}: let +}: +let unit = "bazarr"; srv = config.server; cfg = config.server.${unit}; -in { +in +{ options.server.${unit} = { enable = lib.mkEnableOption { description = "Enable ${unit}"; diff --git a/modules/server/caddy/default.nix b/modules/server/caddy/default.nix index 4ea4a7db..784c6f1d 100644 --- a/modules/server/caddy/default.nix +++ b/modules/server/caddy/default.nix @@ -2,27 +2,34 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; cfg = config.server.caddy; -in { +in +{ options = { server.caddy.enable = mkEnableOption "Enables caddy"; }; config = mkIf cfg.enable { - networking.firewall = let - ports = [80 443]; - in { - allowedTCPPorts = ports; - }; + networking.firewall = + let + ports = [ + 80 + 443 + ]; + in + { + allowedTCPPorts = ports; + }; security.acme = { acceptTerms = true; defaults.email = config.server.email; certs.${config.server.domain} = { - reloadServices = ["caddy.service"]; + reloadServices = [ "caddy.service" ]; domain = "${config.server.domain}"; - extraDomainNames = ["*.${config.server.domain}"]; + extraDomainNames = [ "*.${config.server.domain}" ]; dnsProvider = "cloudflare"; dnsResolver = "1.1.1.1:53"; dnsPropagationCheck = true; diff --git a/modules/server/default.nix b/modules/server/default.nix index a624d4e1..41fdcbf4 100644 --- a/modules/server/default.nix +++ b/modules/server/default.nix @@ -2,11 +2,13 @@ lib, config, ... -}: let +}: +let inherit (lib) mkOption types; cfg = config.server; ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; -in { +in +{ options.server = { enable = lib.mkEnableOption "The server services and configuration variables"; email = mkOption { diff --git a/modules/server/fail2ban/default.nix b/modules/server/fail2ban/default.nix index e931fdff..f50112d3 100644 --- a/modules/server/fail2ban/default.nix +++ b/modules/server/fail2ban/default.nix @@ -4,9 +4,11 @@ config, pkgs, ... -}: let +}: +let cfg = config.server.fail2ban; -in { +in +{ options.server.fail2ban = { enable = lib.mkEnableOption { description = "Enable cloudflare fail2ban"; @@ -55,54 +57,54 @@ in { pkgs.jq ]; - jails = - lib.attrsets.mapAttrs (name: value: { - settings = { - bantime = "30d"; - findtime = "1h"; - enabled = true; - backend = "systemd"; - journalmatch = "_SYSTEMD_UNIT=${value.serviceName}.service"; - port = "http,https"; - filter = "${name}"; - maxretry = 3; - action = "cloudflare-token-agenix"; - }; - }) - cfg.jails; + jails = lib.attrsets.mapAttrs (name: value: { + settings = { + bantime = "30d"; + findtime = "1h"; + enabled = true; + backend = "systemd"; + journalmatch = "_SYSTEMD_UNIT=${value.serviceName}.service"; + port = "http,https"; + filter = "${name}"; + maxretry = 3; + action = "cloudflare-token-agenix"; + }; + }) cfg.jails; }; environment.etc = lib.attrsets.mergeAttrsList [ (lib.attrsets.mapAttrs' ( - name: value: (lib.nameValuePair "fail2ban/filter.d/${name}.conf" { - text = '' - [Definition] - failregex = ${value.failRegex} - ignoreregex = ${value.ignoreRegex} - ''; - }) - ) - cfg.jails) + name: value: + (lib.nameValuePair "fail2ban/filter.d/${name}.conf" { + text = '' + [Definition] + failregex = ${value.failRegex} + ignoreregex = ${value.ignoreRegex} + ''; + }) + ) cfg.jails) { - "fail2ban/action.d/cloudflare-token-agenix.conf".text = let - notes = "Fail2Ban on ${config.networking.hostName}"; - cfapi = "https://api.cloudflare.com/client/v4/zones/${cfg.zoneId}/firewall/access_rules/rules"; - in '' - [Definition] - actionstart = - actionstop = - actioncheck = - actionunban = id=$(curl -s -X GET "${cfapi}" \ - -H @${cfg.apiKeyFile} -H "Content-Type: application/json" \ - | jq -r '.result[] | select(.notes == "${notes}" and .configuration.target == "ip" and .configuration.value == "") | .id') - if [ -z "$id" ]; then echo "id for cannot be found"; exit 0; fi; \ - curl -s -X DELETE "${cfapi}/$id" \ - -H @${cfg.apiKeyFile} -H "Content-Type: application/json" \ - --data '{"cascade": "none"}' - actionban = curl -X POST "${cfapi}" -H @${cfg.apiKeyFile} -H "Content-Type: application/json" --data '{"mode":"block","configuration":{"target":"ip","value":""},"notes":"${notes}"}' - [Init] - name = cloudflare-token-agenix - ''; + "fail2ban/action.d/cloudflare-token-agenix.conf".text = + let + notes = "Fail2Ban on ${config.networking.hostName}"; + cfapi = "https://api.cloudflare.com/client/v4/zones/${cfg.zoneId}/firewall/access_rules/rules"; + in + '' + [Definition] + actionstart = + actionstop = + actioncheck = + actionunban = id=$(curl -s -X GET "${cfapi}" \ + -H @${cfg.apiKeyFile} -H "Content-Type: application/json" \ + | jq -r '.result[] | select(.notes == "${notes}" and .configuration.target == "ip" and .configuration.value == "") | .id') + if [ -z "$id" ]; then echo "id for cannot be found"; exit 0; fi; \ + curl -s -X DELETE "${cfapi}/$id" \ + -H @${cfg.apiKeyFile} -H "Content-Type: application/json" \ + --data '{"cascade": "none"}' + actionban = curl -X POST "${cfapi}" -H @${cfg.apiKeyFile} -H "Content-Type: application/json" --data '{"mode":"block","configuration":{"target":"ip","value":""},"notes":"${notes}"}' + [Init] + name = cloudflare-token-agenix + ''; } ]; }; diff --git a/modules/server/homepage-dashboard/default.nix b/modules/server/homepage-dashboard/default.nix index b51c3c93..062fe601 100644 --- a/modules/server/homepage-dashboard/default.nix +++ b/modules/server/homepage-dashboard/default.nix @@ -2,17 +2,19 @@ config, lib, ... -}: let +}: +let unit = "homepage-dashboard"; cfg = config.server.homepage-dashboard; srv = config.server; -in { +in +{ options.server.homepage-dashboard = { enable = lib.mkEnableOption { description = "Enable ${unit}"; }; misc = lib.mkOption { - default = []; + default = [ ]; type = lib.types.listOf ( lib.types.attrsOf ( lib.types.submodule { @@ -156,111 +158,115 @@ in { } ]; - services = let - homepageCategories = [ - "Arr" - "Media" - "Downloads" - "Services" - "Smart Home" - ]; - hl = config.server; - mergedServices = hl // hl.podman; - homepageServices = x: (lib.attrsets.filterAttrs ( - name: value: value ? homepage && value.homepage.category == x - ) - mergedServices); - in + services = + let + homepageCategories = [ + "Arr" + "Media" + "Downloads" + "Services" + "Smart Home" + ]; + hl = config.server; + mergedServices = hl // hl.podman; + homepageServices = + x: + (lib.attrsets.filterAttrs ( + name: value: value ? homepage && value.homepage.category == x + ) mergedServices); + in lib.lists.forEach homepageCategories (cat: { "${cat}" = lib.lists.forEach - (lib.attrsets.mapAttrsToList (name: value: { - inherit name; - url = value.url; - homepage = value.homepage; - }) (homepageServices "${cat}")) - (x: { - "${x.homepage.name}" = { - icon = x.homepage.icon; - description = x.homepage.description; - href = "https://${x.url}${x.homepage.path or ""}"; - siteMonitor = "https://${x.url}${x.homepage.path or ""}"; - }; - }); + (lib.attrsets.mapAttrsToList (name: value: { + inherit name; + url = value.url; + homepage = value.homepage; + }) (homepageServices "${cat}")) + (x: { + "${x.homepage.name}" = { + icon = x.homepage.icon; + description = x.homepage.description; + href = "https://${x.url}${x.homepage.path or ""}"; + siteMonitor = "https://${x.url}${x.homepage.path or ""}"; + }; + }); }) - ++ [{Misc = cfg.misc;}] + ++ [ { Misc = cfg.misc; } ] ++ [ { - Glances = let - port = toString config.services.glances.port; - in [ - { - Info = { - widget = { - type = "glances"; - url = "http://localhost:${port}"; - metric = "info"; - chart = false; - version = 4; + Glances = + let + port = toString config.services.glances.port; + in + [ + { + Info = { + widget = { + type = "glances"; + url = "http://localhost:${port}"; + metric = "info"; + chart = false; + version = 4; + }; }; - }; - } - { - "CPU Temp" = { - widget = { - type = "glances"; - url = "http://localhost:${port}"; - metric = "sensor:Tctl"; - chart = false; - version = 4; + } + { + "CPU Temp" = { + widget = { + type = "glances"; + url = "http://localhost:${port}"; + metric = "sensor:Tctl"; + chart = false; + version = 4; + }; }; - }; - } - { - "GPU Radeon" = { - widget = { - type = "glances"; - url = "http://localhost:${port}"; - metric = "sensor:junction"; - chart = false; - version = 4; + } + { + "GPU Radeon" = { + widget = { + type = "glances"; + url = "http://localhost:${port}"; + metric = "sensor:junction"; + chart = false; + version = 4; + }; }; - }; - } - { - "GPU Intel" = { - widget = { - type = "glances"; - url = "http://localhost:${port}"; - metric = "sensor:Composite"; - chart = false; - version = 4; + } + { + "GPU Intel" = { + widget = { + type = "glances"; + url = "http://localhost:${port}"; + metric = "sensor:Composite"; + chart = false; + version = 4; + }; }; - }; - } - { - Processes = { - widget = { - type = "glances"; - url = "http://localhost:${port}"; - metric = "process"; - chart = false; - version = 4; + } + { + Processes = { + widget = { + type = "glances"; + url = "http://localhost:${port}"; + metric = "process"; + chart = false; + version = 4; + }; }; - }; - } - { - Network = { - widget = { - type = "glances"; - url = "http://localhost:${port}"; - metric = "network:enp6s0"; - chart = false; - version = 4; + } + { + Network = { + widget = { + type = "glances"; + url = "http://localhost:${port}"; + metric = "network:enp6s0"; + chart = false; + version = 4; + }; }; - }; - } - ]; + } + ]; } ]; }; diff --git a/modules/server/jellyfin/default.nix b/modules/server/jellyfin/default.nix index c9a1f544..63534d8f 100644 --- a/modules/server/jellyfin/default.nix +++ b/modules/server/jellyfin/default.nix @@ -3,11 +3,13 @@ lib, pkgs, ... -}: let +}: +let service = "jellyfin"; cfg = config.server.${service}; srv = config.server; -in { +in +{ options.server.${service} = { enable = lib.mkEnableOption { description = "Enable ${service}"; diff --git a/modules/server/jellyseerr/default.nix b/modules/server/jellyseerr/default.nix index 46fbf56b..98a44eec 100644 --- a/modules/server/jellyseerr/default.nix +++ b/modules/server/jellyseerr/default.nix @@ -2,11 +2,13 @@ config, lib, ... -}: let +}: +let service = "jellyseerr"; srv = config.server; cfg = config.server.${service}; -in { +in +{ options.server.${service} = { enable = lib.mkEnableOption { description = "Enable ${service}"; diff --git a/modules/server/lidarr/default.nix b/modules/server/lidarr/default.nix index 25faedbf..4dad1c23 100644 --- a/modules/server/lidarr/default.nix +++ b/modules/server/lidarr/default.nix @@ -2,11 +2,13 @@ config, lib, ... -}: let +}: +let unit = "lidarr"; srv = config.server; cfg = config.server.${unit}; -in { +in +{ options.server.${unit} = { enable = lib.mkEnableOption { description = "Enable ${unit}"; diff --git a/modules/server/podman/default.nix b/modules/server/podman/default.nix index fcf7df16..5ce0d0d3 100644 --- a/modules/server/podman/default.nix +++ b/modules/server/podman/default.nix @@ -2,10 +2,12 @@ config, lib, ... -}: let +}: +let srv = config.server; cfg = config.server.podman; -in { +in +{ options.server.podman = { enable = lib.mkEnableOption "Enables Podman"; qbittorrent = { @@ -110,8 +112,14 @@ in { }; networking.firewall = lib.mkIf cfg.pihole.enable { - allowedTCPPorts = [53 5335]; - allowedUDPPorts = [53 5335]; + allowedTCPPorts = [ + 53 + 5335 + ]; + allowedUDPPorts = [ + 53 + 5335 + ]; }; services.caddy.virtualHosts = lib.mkMerge [ @@ -155,12 +163,12 @@ in { "5031:5031" "50300:50300" ]; - devices = ["/dev/net/tun:/dev/net/tun"]; + devices = [ "/dev/net/tun:/dev/net/tun" ]; autoStart = true; extraOptions = [ "--cap-add=NET_ADMIN" ]; - volumes = ["/var:/gluetun"]; + volumes = [ "/var:/gluetun" ]; environmentFiles = [ config.age.secrets.gluetunEnvironment.path ]; @@ -177,7 +185,7 @@ in { qbittorrent = { image = "ghcr.io/hotio/qbittorrent:latest"; autoStart = true; - dependsOn = ["gluetun"]; + dependsOn = [ "gluetun" ]; ports = [ "8080:8080" "58846:58846" @@ -205,7 +213,7 @@ in { slskd = { image = "slskd/slskd:latest"; autoStart = true; - dependsOn = ["gluetun"]; + dependsOn = [ "gluetun" ]; ports = [ "5030:5030" "5031:5031" @@ -250,7 +258,7 @@ in { # REV_SERVER = "true"; WEBTHEME = "default-darker"; }; - environmentFiles = [config.age.secrets.pihole.path]; + environmentFiles = [ config.age.secrets.pihole.path ]; ports = [ "53:53/tcp" "53:53/udp" diff --git a/modules/server/prowlarr/default.nix b/modules/server/prowlarr/default.nix index 828adb15..0ddfd610 100644 --- a/modules/server/prowlarr/default.nix +++ b/modules/server/prowlarr/default.nix @@ -2,11 +2,13 @@ config, lib, ... -}: let +}: +let unit = "prowlarr"; srv = config.server; cfg = config.server.${unit}; -in { +in +{ options.server.${unit} = { enable = lib.mkEnableOption { description = "Enable ${unit}"; diff --git a/modules/server/radarr/default.nix b/modules/server/radarr/default.nix index 56cde7cd..1f62d614 100644 --- a/modules/server/radarr/default.nix +++ b/modules/server/radarr/default.nix @@ -2,11 +2,13 @@ config, lib, ... -}: let +}: +let unit = "radarr"; srv = config.server; cfg = config.server.${unit}; -in { +in +{ options.server.${unit} = { enable = lib.mkEnableOption { description = "Enable ${unit}"; diff --git a/modules/server/sonarr/default.nix b/modules/server/sonarr/default.nix index 2efc9fdc..b433b6dc 100644 --- a/modules/server/sonarr/default.nix +++ b/modules/server/sonarr/default.nix @@ -2,11 +2,13 @@ config, lib, ... -}: let +}: +let unit = "sonarr"; srv = config.server; cfg = config.server.${unit}; -in { +in +{ options.server.${unit} = { enable = lib.mkEnableOption { description = "Enable ${unit}"; diff --git a/modules/server/unbound/default.nix b/modules/server/unbound/default.nix index a5635ce1..a174ba6c 100644 --- a/modules/server/unbound/default.nix +++ b/modules/server/unbound/default.nix @@ -3,10 +3,12 @@ pkgs, config, ... -}: let +}: +let unit = "unbound"; cfg = config.server.${unit}; -in { +in +{ options.server.${unit} = { enable = lib.mkEnableOption { description = "Enable ${unit}"; diff --git a/modules/server/uptime-kuma/default.nix b/modules/server/uptime-kuma/default.nix index cf7600a3..7f0fb8db 100644 --- a/modules/server/uptime-kuma/default.nix +++ b/modules/server/uptime-kuma/default.nix @@ -2,11 +2,13 @@ config, lib, ... -}: let +}: +let unit = "uptime-kuma"; cfg = config.server.${unit}; srv = config.server; -in { +in +{ options.server.${unit} = { enable = lib.mkEnableOption { description = "Enable ${unit}"; diff --git a/modules/server/vaultwarden/default.nix b/modules/server/vaultwarden/default.nix index 2f77dbc1..7c5cb551 100644 --- a/modules/server/vaultwarden/default.nix +++ b/modules/server/vaultwarden/default.nix @@ -3,11 +3,13 @@ config, lib, ... -}: let +}: +let inherit (lib) mkIf mkEnableOption; vcfg = config.services.vaultwarden.config; cfg = config.server.vaultwarden; -in { +in +{ options = { server.vaultwarden = { enable = mkEnableOption "Enables vaultwarden"; @@ -75,9 +77,7 @@ in { tunnels.${cfg.cloudflared.tunnelId} = { credentialsFile = cfg.cloudflared.credentialsFile; default = "http_status:404"; - ingress."${cfg.url}".service = "http://${vcfg.ROCKET_ADDRESS}:${ - toString vcfg.ROCKET_PORT - }"; + ingress."${cfg.url}".service = "http://${vcfg.ROCKET_ADDRESS}:${toString vcfg.ROCKET_PORT}"; }; }; }; diff --git a/modules/settings/accounts/default.nix b/modules/settings/accounts/default.nix index fbd59e9d..3602fe11 100644 --- a/modules/settings/accounts/default.nix +++ b/modules/settings/accounts/default.nix @@ -2,7 +2,8 @@ lib, config, ... -}: let +}: +let inherit (lib) mkOption types; sshKeys = { @@ -15,14 +16,14 @@ keyName = config.settings.accounts.sshUser or null; selectedKey = - if keyName != null - then - lib.attrByPath [keyName] ( - builtins.abort "No SSH key defined for hostname/key '${toString keyName}'" - ) - sshKeys - else builtins.abort "No accounts.sshUser provided, cannot select SSH key."; -in { + if keyName != null then + lib.attrByPath [ + keyName + ] (builtins.abort "No SSH key defined for hostname/key '${toString keyName}'") sshKeys + else + builtins.abort "No accounts.sshUser provided, cannot select SSH key."; +in +{ options.settings.accounts = { username = mkOption { type = types.str; diff --git a/modules/settings/monitors/default.nix b/modules/settings/monitors/default.nix index 55b80031..d5306ca1 100644 --- a/modules/settings/monitors/default.nix +++ b/modules/settings/monitors/default.nix @@ -1,7 +1,9 @@ # Yanked from Misterio77 -{lib, ...}: let +{ lib, ... }: +let inherit (lib) mkOption types; -in { +in +{ options.settings.monitors = mkOption { type = types.listOf ( types.submodule { @@ -50,6 +52,6 @@ in { }; } ); - default = []; + default = [ ]; }; } diff --git a/modules/settings/theme/default.nix b/modules/settings/theme/default.nix index 95467879..4e7c2dcf 100644 --- a/modules/settings/theme/default.nix +++ b/modules/settings/theme/default.nix @@ -1,4 +1,5 @@ -{lib, ...}: let +{ lib, ... }: +let inherit (lib) mkOption types; bgs = { wallpaper_1 = "~/media/images/bg_1.jpg"; @@ -8,7 +9,8 @@ wallpaper_5 = "~/media/images/barngreet.png"; }; bgList = builtins.attrNames bgs; -in { +in +{ options.settings.theme = { background = { lockscreen = mkOption { diff --git a/nix/default.nix b/nix/default.nix index 7c7afed5..edfd45e6 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -5,7 +5,8 @@ config, pkgs, ... -}: { +}: +{ imports = [ ./nixpkgs ./home-manager @@ -16,31 +17,39 @@ console.useXkbConfig = true; - nix = let - flakeInputs = lib.filterAttrs (_: v: lib.isType "flake" v) inputs; - in { - package = pkgs.lix; + nix = + let + flakeInputs = lib.filterAttrs (_: v: lib.isType "flake" v) inputs; + in + { + package = pkgs.lix; - # pin the registry to avoid downloading and evaling a new nixpkgs version every time - registry = lib.mapAttrs (_: v: {flake = v;}) flakeInputs; + # pin the registry to avoid downloading and evaling a new nixpkgs version every time + registry = lib.mapAttrs (_: v: { flake = v; }) flakeInputs; - # set the path for channels compat - nixPath = lib.mapAttrsToList (key: _: "${key}=flake:${key}") config.nix.registry; + # set the path for channels compat + nixPath = lib.mapAttrsToList (key: _: "${key}=flake:${key}") config.nix.registry; - settings = { - auto-optimise-store = true; - builders-use-substitutes = true; - warn-dirty = false; - accept-flake-config = false; - # allow-import-from-derivation = true; - experimental-features = ["nix-command" "flakes"]; - flake-registry = "/etc/nix/registry.json"; + settings = { + auto-optimise-store = true; + builders-use-substitutes = true; + warn-dirty = false; + accept-flake-config = false; + # allow-import-from-derivation = true; + experimental-features = [ + "nix-command" + "flakes" + ]; + flake-registry = "/etc/nix/registry.json"; - # # for direnv GC roots - keep-derivations = true; - keep-outputs = true; + # # for direnv GC roots + keep-derivations = true; + keep-outputs = true; - trusted-users = ["root" "@wheel"]; + trusted-users = [ + "root" + "@wheel" + ]; + }; }; - }; } diff --git a/nix/home-manager/default.nix b/nix/home-manager/default.nix index 0c861d94..89e953c2 100644 --- a/nix/home-manager/default.nix +++ b/nix/home-manager/default.nix @@ -1,4 +1,5 @@ -{inputs, ...}: { +{ inputs, ... }: +{ imports = [ inputs.hm.nixosModules.default ]; diff --git a/nix/shell/default.nix b/nix/shell/default.nix index 6dd55494..d1fae9cd 100644 --- a/nix/shell/default.nix +++ b/nix/shell/default.nix @@ -1,8 +1,9 @@ { inputs, - pkgs ? import {}, + pkgs ? import { }, ... -}: { +}: +{ default = pkgs.mkShell { # Add Rust toolchain from Fenix and rust-analyzer-nightly packages = [ diff --git a/pkgs/default.nix b/pkgs/default.nix new file mode 100644 index 00000000..0460444a --- /dev/null +++ b/pkgs/default.nix @@ -0,0 +1,15 @@ +# yanked from @fufexan +{ + systems = [ + "x86_64-linux" + ]; + + perSystem = + { pkgs, ... }: + { + packages = { + # instant repl with automatic flake loading + repl = pkgs.callPackage ./repl { }; + }; + }; +} diff --git a/pkgs/repl/default.nix b/pkgs/repl/default.nix new file mode 100644 index 00000000..e2f44b88 --- /dev/null +++ b/pkgs/repl/default.nix @@ -0,0 +1,26 @@ +# yanked from @fufexan +{ + coreutils, + gnused, + writeShellScriptBin, +}: +let + repl = ../../lib/repl; + example = command: desc: ''\n\u001b[33m ${command}\u001b[0m - ${desc}''; +in +writeShellScriptBin "repl" '' + case "$1" in + "-h"|"--help"|"help") + printf "%b\n\e[4mUsage\e[0m: \ + ${example "repl" "Loads system flake if available."} \ + ${example "repl /path/to/flake.nix" "Loads specified flake."}\n" + ;; + *) + if [ -z "$1" ]; then + nix repl ${repl} + else + nix repl --arg flakePath $(${coreutils}/bin/readlink -f $1 | ${gnused}/bin/sed 's|/flake.nix||') ${repl} + fi + ;; + esac +'' diff --git a/scripts/default.nix b/scripts/default.nix index cfadf26f..b56fe70b 100644 --- a/scripts/default.nix +++ b/scripts/default.nix @@ -4,102 +4,140 @@ pkgs, lib, ... -}: let +}: +let inherit (lib) getExe; inherit (builtins) readFile; -in { +in +{ home = { - sessionPath = ["${config.home.homeDirectory}/.local/bin"]; + sessionPath = [ "${config.home.homeDirectory}/.local/bin" ]; file = { ".local/bin/pavucontrol-toggle.sh" = { - source = getExe (pkgs.writeShellApplication { - name = "pavucontrol-toggle"; - runtimeInputs = with pkgs; [hyprland]; - text = readFile ./bin/pavucontrol-toggle.sh; - }); + source = getExe ( + pkgs.writeShellApplication { + name = "pavucontrol-toggle"; + runtimeInputs = with pkgs; [ hyprland ]; + text = readFile ./bin/pavucontrol-toggle.sh; + } + ); }; ".local/bin/tuirun-toggle.sh" = { - source = getExe (pkgs.writeShellApplication { - name = "tuirun-toggle"; - runtimeInputs = with pkgs; [hyprland uwsm]; - text = readFile ./bin/tuirun-toggle.sh; - }); + source = getExe ( + pkgs.writeShellApplication { + name = "tuirun-toggle"; + runtimeInputs = with pkgs; [ + hyprland + uwsm + ]; + text = readFile ./bin/tuirun-toggle.sh; + } + ); }; ".local/bin/tuirun-debugger.sh" = { - source = getExe (pkgs.writeShellApplication { - name = "tuirun-debugger"; - runtimeInputs = with pkgs; [hyprland]; - text = '' - # Save environment to file - env > /tmp/tuirun-env.txt - # Run tuirun - /etc/profiles/per-user/cnst/bin/tuirun - ''; - }); + source = getExe ( + pkgs.writeShellApplication { + name = "tuirun-debugger"; + runtimeInputs = with pkgs; [ hyprland ]; + text = '' + # Save environment to file + env > /tmp/tuirun-env.txt + # Run tuirun + /etc/profiles/per-user/cnst/bin/tuirun + ''; + } + ); }; ".local/bin/calcurse-toggle.sh" = { - source = getExe (pkgs.writeShellApplication { - name = "calcurse-toggle"; - runtimeInputs = with pkgs; [hyprland]; - text = readFile ./bin/calcurse-toggle.sh; - }); + source = getExe ( + pkgs.writeShellApplication { + name = "calcurse-toggle"; + runtimeInputs = with pkgs; [ hyprland ]; + text = readFile ./bin/calcurse-toggle.sh; + } + ); }; ".local/bin/volume-control.sh" = { - source = getExe (pkgs.writeShellApplication { - name = "volume-control"; - runtimeInputs = with pkgs; [pamixer libnotify]; - text = readFile ./bin/volume-control.sh; - }); + source = getExe ( + pkgs.writeShellApplication { + name = "volume-control"; + runtimeInputs = with pkgs; [ + pamixer + libnotify + ]; + text = readFile ./bin/volume-control.sh; + } + ); }; ".local/bin/extract.sh" = { - source = getExe (pkgs.writeShellApplication { - name = "extract"; - runtimeInputs = with pkgs; [zip unzip gnutar p7zip]; - text = readFile ./bin/extract.sh; - }); + source = getExe ( + pkgs.writeShellApplication { + name = "extract"; + runtimeInputs = with pkgs; [ + zip + unzip + gnutar + p7zip + ]; + text = readFile ./bin/extract.sh; + } + ); }; # WAYBAR ".local/bin/waybar-systemd.sh" = { - source = getExe (pkgs.writeShellApplication { - name = "waybar-systemd"; - runtimeInputs = with pkgs; [hyprland]; - text = readFile ./bin/waybar-systemd.sh; - }); + source = getExe ( + pkgs.writeShellApplication { + name = "waybar-systemd"; + runtimeInputs = with pkgs; [ hyprland ]; + text = readFile ./bin/waybar-systemd.sh; + } + ); }; ".local/bin/waybar-progress.sh" = { - source = getExe (pkgs.writeShellApplication { - name = "waybar-progress"; - runtimeInputs = with pkgs; [hyprland]; - text = readFile ./bin/waybar-progress.sh; - }); + source = getExe ( + pkgs.writeShellApplication { + name = "waybar-progress"; + runtimeInputs = with pkgs; [ hyprland ]; + text = readFile ./bin/waybar-progress.sh; + } + ); }; ".local/bin/dunst.sh" = { - source = getExe (pkgs.writeShellApplication { - name = "dunst"; - runtimeInputs = with pkgs; [hyprland dbus]; - text = readFile ./bin/dunst.sh; - }); + source = getExe ( + pkgs.writeShellApplication { + name = "dunst"; + runtimeInputs = with pkgs; [ + hyprland + dbus + ]; + text = readFile ./bin/dunst.sh; + } + ); }; ".local/bin/mako.sh" = { - source = getExe (pkgs.writeShellApplication { - name = "mako"; - runtimeInputs = with pkgs; [hyprland]; - text = readFile ./bin/mako.sh; - }); + source = getExe ( + pkgs.writeShellApplication { + name = "mako"; + runtimeInputs = with pkgs; [ hyprland ]; + text = readFile ./bin/mako.sh; + } + ); }; ".local/bin/mako-toggle.sh" = { - source = getExe (pkgs.writeShellApplication { - name = "mako-toggle"; - runtimeInputs = with pkgs; [hyprland]; - text = readFile ./bin/mako-toggle.sh; - }); + source = getExe ( + pkgs.writeShellApplication { + name = "mako-toggle"; + runtimeInputs = with pkgs; [ hyprland ]; + text = readFile ./bin/mako-toggle.sh; + } + ); }; }; }; diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 732ff960..9f925410 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -3,23 +3,102 @@ let kima = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJjoPdpiF8pjKN3ZEHeLEwVxoqwcCdzpVVlZkxJohFdg root@cnix"; usobotka = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG5ydTeaWcowmNXdDNqIa/lb5l9w5CAzyF2Kg6U5PSSu cnst@sobotka"; rsobotka = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJWLTYWowtpGmGolmkCE7+l9jr5QEnDqRxoezNqAIe+j root@nixos"; -in { - "cnstssh.age".publicKeys = [cnst kima]; - "cnixssh.age".publicKeys = [cnst kima]; - "certpem.age".publicKeys = [cnst kima]; - "keypem.age".publicKeys = [cnst kima]; - "mailpwd.age".publicKeys = [cnst kima]; - "gcapi.age".publicKeys = [cnst kima]; - "cloudflareEnvironment.age".publicKeys = [cnst kima usobotka rsobotka]; - "vaultwardenEnvironment.age".publicKeys = [cnst kima usobotka rsobotka]; - "homepageEnvironment.age".publicKeys = [cnst kima usobotka rsobotka]; - "cloudflareFirewallApiKey.age".publicKeys = [cnst kima usobotka rsobotka]; - "vaultwardenCloudflared.age".publicKeys = [cnst kima usobotka rsobotka]; - "cloudflareDnsApiToken.age".publicKeys = [cnst kima usobotka rsobotka]; - "cloudflareDnsCredentials.age".publicKeys = [cnst kima usobotka rsobotka]; - "wgCredentials.age".publicKeys = [cnst kima usobotka rsobotka]; - "wgSobotkaPrivateKey.age".publicKeys = [cnst kima usobotka rsobotka]; - "gluetunEnvironment.age".publicKeys = [cnst kima usobotka rsobotka]; - "pihole.age".publicKeys = [cnst kima usobotka rsobotka]; - "slskd.age".publicKeys = [cnst kima usobotka rsobotka]; +in +{ + "cnstssh.age".publicKeys = [ + cnst + kima + ]; + "cnixssh.age".publicKeys = [ + cnst + kima + ]; + "certpem.age".publicKeys = [ + cnst + kima + ]; + "keypem.age".publicKeys = [ + cnst + kima + ]; + "mailpwd.age".publicKeys = [ + cnst + kima + ]; + "gcapi.age".publicKeys = [ + cnst + kima + ]; + "cloudflareEnvironment.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; + "vaultwardenEnvironment.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; + "homepageEnvironment.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; + "cloudflareFirewallApiKey.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; + "vaultwardenCloudflared.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; + "cloudflareDnsApiToken.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; + "cloudflareDnsCredentials.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; + "wgCredentials.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; + "wgSobotkaPrivateKey.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; + "gluetunEnvironment.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; + "pihole.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; + "slskd.age".publicKeys = [ + cnst + kima + usobotka + rsobotka + ]; } diff --git a/users/cnst/default.nix b/users/cnst/default.nix index ba2d2b55..0aa2f0a5 100644 --- a/users/cnst/default.nix +++ b/users/cnst/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ imports = [ ./modules ./variables @@ -8,7 +9,10 @@ username = "cnst"; homeDirectory = "/home/cnst"; stateVersion = "23.11"; - extraOutputsToInstall = ["doc" "devdoc"]; + extraOutputsToInstall = [ + "doc" + "devdoc" + ]; packages = with pkgs; [ bun ]; diff --git a/users/cnst/modules/default.nix b/users/cnst/modules/default.nix index 2180179b..5e6c1569 100644 --- a/users/cnst/modules/default.nix +++ b/users/cnst/modules/default.nix @@ -1,12 +1,15 @@ -{osConfig, ...}: let +{ osConfig, ... }: +let hostSpecificImports = - if osConfig.networking.hostName == "bunk" - then [ - ./bunkmod.nix - ] - else [ - ./kimamod.nix - ]; -in { + if osConfig.networking.hostName == "bunk" then + [ + ./bunkmod.nix + ] + else + [ + ./kimamod.nix + ]; +in +{ imports = hostSpecificImports; } diff --git a/users/cnst/variables/default.nix b/users/cnst/variables/default.nix index 68266565..05799b5e 100644 --- a/users/cnst/variables/default.nix +++ b/users/cnst/variables/default.nix @@ -1,22 +1,25 @@ -{osConfig, ...}: let +{ osConfig, ... }: +let hostSpecificVariables = - if osConfig.networking.hostName == "bunk" - then { - BROWSER = "zen"; - EDITOR = "hx"; - TERM = "xterm-256color"; - QT_QPA_PLATFORM = "wayland"; - XDG_SESSION_TYPE = "wayland"; - } - else { - BROWSER = "zen"; - EDITOR = "hx"; - TERM = "xterm-256color"; - VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json"; - STEAM_EXTRA_COMPAT_TOOLS_PATHS = "/home/cnst/.steam/root/compatibilitytools.d"; - QT_QPA_PLATFORM = "wayland"; - XDG_SESSION_TYPE = "wayland"; - }; -in { + if osConfig.networking.hostName == "bunk" then + { + BROWSER = "zen"; + EDITOR = "hx"; + TERM = "xterm-256color"; + QT_QPA_PLATFORM = "wayland"; + XDG_SESSION_TYPE = "wayland"; + } + else + { + BROWSER = "zen"; + EDITOR = "hx"; + TERM = "xterm-256color"; + VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json"; + STEAM_EXTRA_COMPAT_TOOLS_PATHS = "/home/cnst/.steam/root/compatibilitytools.d"; + QT_QPA_PLATFORM = "wayland"; + XDG_SESSION_TYPE = "wayland"; + }; +in +{ home.sessionVariables = hostSpecificVariables; } diff --git a/users/default.nix b/users/default.nix index 9e436b1b..aa3ef03d 100644 --- a/users/default.nix +++ b/users/default.nix @@ -2,8 +2,9 @@ self, inputs, ... -}: let - extraSpecialArgs = {inherit inputs self;}; +}: +let + extraSpecialArgs = { inherit inputs self; }; sharedImports = [ "${self}/scripts" @@ -12,16 +13,12 @@ ]; homeImports = { - "cnst@kima" = - sharedImports - ++ [ - ./cnst - ]; - "cnst@bunk" = - sharedImports - ++ [ - ./cnst - ]; + "cnst@kima" = sharedImports ++ [ + ./cnst + ]; + "cnst@bunk" = sharedImports ++ [ + ./cnst + ]; # "cnst@sobotka" = # sharedImports # ++ [ @@ -32,30 +29,30 @@ # ++ [ # ./cnst # ]; - "toothpick@toothpc" = - sharedImports - ++ [ - ./toothpick - ]; + "toothpick@toothpc" = sharedImports ++ [ + ./toothpick + ]; }; inherit (inputs.hm.lib) homeManagerConfiguration; pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; - makeHomeConfiguration = modules: + makeHomeConfiguration = + modules: homeManagerConfiguration { inherit pkgs extraSpecialArgs modules; }; -in { - _module.args = {inherit homeImports;}; +in +{ + _module.args = { inherit homeImports; }; flake = { - homeConfigurations = builtins.listToAttrs (map - (name: { - name = builtins.replaceStrings ["@"] ["_"] name; + homeConfigurations = builtins.listToAttrs ( + map (name: { + name = builtins.replaceStrings [ "@" ] [ "_" ] name; value = makeHomeConfiguration homeImports.${name}; - }) - (builtins.attrNames homeImports)); + }) (builtins.attrNames homeImports) + ); }; } diff --git a/users/toothpick/default.nix b/users/toothpick/default.nix index d7484eb6..e2f342cd 100644 --- a/users/toothpick/default.nix +++ b/users/toothpick/default.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ imports = [ ./modules ]; @@ -7,7 +8,10 @@ username = "toothpick"; homeDirectory = "/home/toothpick"; stateVersion = "23.11"; - extraOutputsToInstall = ["doc" "devdoc"]; + extraOutputsToInstall = [ + "doc" + "devdoc" + ]; packages = with pkgs; [ filezilla