diff --git a/Makefile b/Makefile index 8ce9179..2db8702 100644 --- a/Makefile +++ b/Makefile @@ -24,4 +24,4 @@ update: @./nix-flake-update.sh fmt: - alejandra . + nixpkgs-fmt . diff --git a/darwin.nix b/darwin.nix index 33dc946..36447d4 100644 --- a/darwin.nix +++ b/darwin.nix @@ -1,11 +1,12 @@ -{ - config, - lib, - pkgs, - ... -}: let +{ config +, lib +, pkgs +, ... +}: +let checkBrew = "command -v brew > /dev/null"; -in { +in +{ users.users."dave.gallant".home = "/Users/dave.gallant"; environment = { extraInit = '' diff --git a/default.nix b/default.nix index f0c9d0b..2bbccc6 100644 --- a/default.nix +++ b/default.nix @@ -2,12 +2,13 @@ let nix-pre-commit-hooks = import (builtins.fetchTarball "https://github.com/cachix/pre-commit-hooks.nix/tarball/master"); -in { +in +{ pre-commit-check = nix-pre-commit-hooks.run { src = ./.; hooks = { shellcheck.enable = true; - alejandra.enable = true; + nixpkgs-fmt.enable = true; }; }; } diff --git a/flake.nix b/flake.nix index c706b34..5af0b11 100644 --- a/flake.nix +++ b/flake.nix @@ -23,5 +23,5 @@ }; }; - outputs = {...} @ args: import ./outputs.nix args; + outputs = { ... } @ args: import ./outputs.nix args; } diff --git a/fonts.nix b/fonts.nix index 415d4b0..292c426 100644 --- a/fonts.nix +++ b/fonts.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{ pkgs, ... }: { fonts.packages = with pkgs; [ dejavu_fonts fira-code @@ -14,9 +14,9 @@ ]; fonts.fontconfig.defaultFonts = { - sansSerif = ["Noto Sans"]; - serif = ["Noto Serif"]; - monospace = ["Noto Sans Mono"]; - emoji = ["Noto Color Emoji"]; + sansSerif = [ "Noto Sans" ]; + serif = [ "Noto Serif" ]; + monospace = [ "Noto Sans Mono" ]; + emoji = [ "Noto Color Emoji" ]; }; } diff --git a/home/default.nix b/home/default.nix index b0890a3..e0ade26 100644 --- a/home/default.nix +++ b/home/default.nix @@ -1,11 +1,12 @@ -{ - lib, - pkgs, - unstable, - ... -}: let +{ lib +, pkgs +, unstable +, ... +}: +let inherit (pkgs) stdenv; -in { +in +{ home.stateVersion = "23.11"; services = { @@ -53,7 +54,7 @@ in { wip = "for-each-ref --sort='authordate:iso8601' --format=' %(color:green)%(authordate:relative)%09%(color:white)%(refname:short)' refs/heads"; }; - includes = [{path = "~/.gitconfig-work";}]; + includes = [{ path = "~/.gitconfig-work"; }]; delta = { enable = true; @@ -71,8 +72,8 @@ in { }; extraConfig = { - push = {default = "current";}; - pull = {rebase = true;}; + push = { default = "current"; }; + pull = { rebase = true; }; }; }; @@ -83,7 +84,7 @@ in { settings = { add_newline = false; scan_timeout = 10; - character = {error_symbol = "[✖](bold red)";}; + character = { error_symbol = "[✖](bold red)"; }; gcloud = { format = "[$symbol($project) ~ $region]($style)"; }; @@ -212,7 +213,7 @@ in { shell = { program = "zsh"; - args = ["-l" "-c" "tmux" "u"]; + args = [ "-l" "-c" "tmux" "u" ]; }; colors = { @@ -347,7 +348,7 @@ in { rofi = { enable = stdenv.isLinux; - plugins = [pkgs.rofi-emoji]; + plugins = [ pkgs.rofi-emoji ]; terminal = "${pkgs.alacritty}/bin/alacritty"; font = "Fira Font Mono 24"; theme = "gruvbox-dark"; @@ -369,7 +370,7 @@ in { keymaps = [ { key = ""; - mode = ["n"]; + mode = [ "n" ]; action = "tabnew"; options = { silent = true; @@ -378,22 +379,22 @@ in { # copy to OS clipboard { key = "y"; - mode = ["v"]; + mode = [ "v" ]; action = "\"+y"; } { key = "gD"; - mode = ["n"]; + mode = [ "n" ]; action = "lua vim.lsp.buf.declaration()"; } { key = "gd"; - mode = ["n"]; + mode = [ "n" ]; action = "lua vim.lsp.buf.definition()"; } { key = "gr"; - mode = ["n"]; + mode = [ "n" ]; action = "lua vim.lsp.buf.references()"; } ]; @@ -424,9 +425,9 @@ in { lsp-format = { enable = true; setup = { - terraform = {}; - nix = {}; - go = {}; + terraform = { }; + nix = { }; + go = { }; }; }; nvim-cmp.enable = true; diff --git a/machines/hephaestus/configuration.nix b/machines/hephaestus/configuration.nix index 7d60ba3..668f19e 100644 --- a/machines/hephaestus/configuration.nix +++ b/machines/hephaestus/configuration.nix @@ -1,9 +1,9 @@ -{ - config, - pkgs, - unstable, - ... -}: let +{ config +, pkgs +, unstable +, ... +}: +let gnomeExtensions = with pkgs.gnomeExtensions; [ appindicator bluetooth-quick-connect @@ -17,8 +17,9 @@ tailscale-status tray-icons-reloaded ]; -in { - imports = [./hardware.nix]; +in +{ + imports = [ ./hardware.nix ]; hardware.opengl.enable = true; @@ -34,14 +35,14 @@ in { allowPing = false; enable = true; checkReversePath = "loose"; - trustedInterfaces = ["tailscale0"]; + trustedInterfaces = [ "tailscale0" ]; }; }; systemd.services.NetworkManager-wait-online.enable = false; boot.kernelPackages = pkgs.linuxPackages; - boot.supportedFilesystems = ["ntfs"]; + boot.supportedFilesystems = [ "ntfs" ]; system = { autoUpgrade.enable = true; @@ -55,7 +56,7 @@ in { users.users.dave = { isNormalUser = true; - extraGroups = ["docker" "wheel" "libvirtd" "corectrl"]; + extraGroups = [ "docker" "wheel" "libvirtd" "corectrl" ]; shell = pkgs.zsh; }; @@ -74,7 +75,7 @@ in { hardware.opengl.driSupport32Bit = true; # Steam - hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [libva]; + hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ]; hardware.pulseaudio.support32Bit = true; programs.steam = { enable = true; @@ -116,7 +117,7 @@ in { resolved.enable = true; sshd.enable = true; tailscale.enable = true; - xserver.videoDrivers = ["amdgpu"]; + xserver.videoDrivers = [ "amdgpu" ]; xserver = { enable = true; displayManager = { diff --git a/machines/hephaestus/hardware.nix b/machines/hephaestus/hardware.nix index 124f1ea..62ac533 100644 --- a/machines/hephaestus/hardware.nix +++ b/machines/hephaestus/hardware.nix @@ -1,11 +1,10 @@ -{ - config, - lib, - pkgs, - modulesPath, - ... +{ config +, lib +, pkgs +, modulesPath +, ... }: { - imports = [(modulesPath + "/installer/scan/not-detected.nix")]; + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; nixpkgs.hostPlatform = "x86_64-linux"; @@ -17,8 +16,8 @@ "usbhid" "xhci_pci" ]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-amd"]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = with config.boot.kernelPackages; [ xpadneo ]; @@ -73,6 +72,6 @@ }; swapDevices = [ - {device = "/dev/disk/by-uuid/5d6d0388-2b15-4ff1-9f0f-391818a76090";} + { device = "/dev/disk/by-uuid/5d6d0388-2b15-4ff1-9f0f-391818a76090"; } ]; } diff --git a/machines/zelus/configuration.nix b/machines/zelus/configuration.nix index 508ddca..76d31b5 100644 --- a/machines/zelus/configuration.nix +++ b/machines/zelus/configuration.nix @@ -1,9 +1,9 @@ -{pkgs, ...}: { +{ pkgs, ... }: { nixpkgs.config.allowUnfree = true; - environment = {variables = {LANG = "en_US.UTF-8";};}; + environment = { variables = { LANG = "en_US.UTF-8"; }; }; - networking = {hostName = "zelus";}; + networking = { hostName = "zelus"; }; services.nix-daemon.enable = true; diff --git a/outputs.nix b/outputs.nix index 4c6b5f6..9a5b658 100644 --- a/outputs.nix +++ b/outputs.nix @@ -1,115 +1,64 @@ -{ - self, - darwin, - home-manager, - nixpkgs, - nixpkgs-unstable, - nixos-hardware, - nix-ld, - ... +{ self +, darwin +, home-manager +, nixpkgs +, nixpkgs-unstable +, nixos-hardware +, nix-ld +, ... } @ inputs: { - nixosConfigurations = let - modulesDir = ./modules; - unstable = import nixpkgs-unstable { - system = "x86_64-linux"; - config.allowUnfree = true; - config.permittedInsecurePackages = [ - "electron-25.9.0" # caused by obsidian - ]; - }; - defaultModules = [ - home-manager.nixosModules.home-manager - ./fonts.nix - ./packages.nix - ./upgrade-diff.nix - - ({ - config, - lib, - lib', - ... - }: { - config = { - _module.args = { - lib' = lib // import ./lib {inherit config lib;}; - }; - - nix = { - settings = { - auto-optimise-store = true; - sandbox = false; - substituters = ["https://davegallant.cachix.org"]; - trusted-users = ["root" "dave"]; - trusted-public-keys = [ - "davegallant.cachix.org-1:SsUMqL4+tF2R3/G6X903E9laLlY1rES2QKFfePegF08=" - ]; - }; - registry = {nixpkgs.flake = nixpkgs;}; - gc = { - automatic = true; - dates = "daily"; - options = "--delete-older-than 14d"; - }; - }; - - nixpkgs.overlays = [ - (import ./overlays) - ]; - - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - users.dave.imports = [ - ./home/default.nix - inputs.nixvim.homeManagerModules.nixvim - ]; - extraSpecialArgs = { - inherit unstable; - }; - }; - }; - }) - ]; - in { - hephaestus = nixpkgs.lib.nixosSystem { - specialArgs = {inherit unstable;}; - modules = - [ - ./machines/hephaestus/configuration.nix - ./machines/hephaestus/hardware.nix - ./services/netdata/default.nix - ] - ++ defaultModules; - }; - }; - - darwinConfigurations = let - system = "aarch64-darwin"; - unstable = import nixpkgs-unstable { - config.allowUnfree = true; - inherit system; - }; - in { - zelus = darwin.lib.darwinSystem { - inherit system; - specialArgs = {inherit unstable;}; - - modules = [ - home-manager.darwinModules.home-manager - ./darwin.nix - ./machines/zelus/configuration.nix + nixosConfigurations = + let + modulesDir = ./modules; + unstable = import nixpkgs-unstable { + system = "x86_64-linux"; + config.allowUnfree = true; + config.permittedInsecurePackages = [ + "electron-25.9.0" # caused by obsidian + ]; + }; + defaultModules = [ + home-manager.nixosModules.home-manager + ./fonts.nix ./packages.nix ./upgrade-diff.nix - ({config, ...}: { + ({ config + , lib + , lib' + , ... + }: { config = { + _module.args = { + lib' = lib // import ./lib { inherit config lib; }; + }; + + nix = { + settings = { + auto-optimise-store = true; + sandbox = false; + substituters = [ "https://davegallant.cachix.org" ]; + trusted-users = [ "root" "dave" ]; + trusted-public-keys = [ + "davegallant.cachix.org-1:SsUMqL4+tF2R3/G6X903E9laLlY1rES2QKFfePegF08=" + ]; + }; + registry = { nixpkgs.flake = nixpkgs; }; + gc = { + automatic = true; + dates = "daily"; + options = "--delete-older-than 14d"; + }; + }; + nixpkgs.overlays = [ (import ./overlays) ]; + home-manager = { useGlobalPkgs = true; useUserPackages = true; - users."dave.gallant".imports = [ + users.dave.imports = [ ./home/default.nix inputs.nixvim.homeManagerModules.nixvim ]; @@ -120,6 +69,59 @@ }; }) ]; + in + { + hephaestus = nixpkgs.lib.nixosSystem { + specialArgs = { inherit unstable; }; + modules = + [ + ./machines/hephaestus/configuration.nix + ./machines/hephaestus/hardware.nix + ./services/netdata/default.nix + ] + ++ defaultModules; + }; + }; + + darwinConfigurations = + let + system = "aarch64-darwin"; + unstable = import nixpkgs-unstable { + config.allowUnfree = true; + inherit system; + }; + in + { + zelus = darwin.lib.darwinSystem { + inherit system; + specialArgs = { inherit unstable; }; + + modules = [ + home-manager.darwinModules.home-manager + ./darwin.nix + ./machines/zelus/configuration.nix + ./packages.nix + ./upgrade-diff.nix + + ({ config, ... }: { + config = { + nixpkgs.overlays = [ + (import ./overlays) + ]; + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + users."dave.gallant".imports = [ + ./home/default.nix + inputs.nixvim.homeManagerModules.nixvim + ]; + extraSpecialArgs = { + inherit unstable; + }; + }; + }; + }) + ]; + }; }; - }; } diff --git a/overlays/default.nix b/overlays/default.nix index 14b8c4e..cc90161 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,4 +1,4 @@ final: prev: { - tmux-sessionizer = prev.callPackage ./tmux-sessionizer {}; - vpngate = prev.callPackage ./vpngate {}; + tmux-sessionizer = prev.callPackage ./tmux-sessionizer { }; + vpngate = prev.callPackage ./vpngate { }; } diff --git a/overlays/tmux-sessionizer/default.nix b/overlays/tmux-sessionizer/default.nix index 385295a..852f3b3 100644 --- a/overlays/tmux-sessionizer/default.nix +++ b/overlays/tmux-sessionizer/default.nix @@ -1,7 +1,7 @@ -{ - stdenv, - lib, - fetchurl, +{ stdenv +, lib +, fetchurl +, }: stdenv.mkDerivation rec { pname = "tmux-sessionizer"; @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { executable = ./tmux-sessionizer; - phases = ["unpackPhase"]; # Remove all other phases + phases = [ "unpackPhase" ]; # Remove all other phases unpackPhase = '' mkdir -p $out/bin diff --git a/overlays/vpngate/default.nix b/overlays/vpngate/default.nix index 5bef717..9b62110 100644 --- a/overlays/vpngate/default.nix +++ b/overlays/vpngate/default.nix @@ -1,7 +1,7 @@ -{ - lib, - fetchFromGitHub, - buildGoModule, +{ lib +, fetchFromGitHub +, buildGoModule +, }: buildGoModule rec { pname = "vpngate"; @@ -22,7 +22,7 @@ buildGoModule rec { homepage = "https://www.vpngate.net"; description = "a client for vpngate.net"; license = licenses.gpl3; - maintainers = with maintainers; [davegallant]; + maintainers = with maintainers; [ davegallant ]; platforms = platforms.linux ++ platforms.darwin; }; } diff --git a/packages.nix b/packages.nix index a13d22e..0dc18a8 100644 --- a/packages.nix +++ b/packages.nix @@ -1,12 +1,13 @@ -{ - config, - lib, - pkgs, - unstable, - ... -}: let +{ config +, lib +, pkgs +, unstable +, ... +}: +let inherit (pkgs) stdenv; -in { +in +{ environment.systemPackages = with pkgs; [ # essentials curl diff --git a/services/netdata/default.nix b/services/netdata/default.nix index b322274..84c0448 100644 --- a/services/netdata/default.nix +++ b/services/netdata/default.nix @@ -1,12 +1,13 @@ -{ - config, - pkgs, - ... -}: let +{ config +, pkgs +, ... +}: +let netdata = pkgs.netdata; netdataConf = ./netdata.conf; netdataDir = "/var/lib/netdata"; -in { +in +{ users.extraGroups.netdata.gid = 220008; users.users.netdata.group = "netdata"; users.extraUsers.netdata = { @@ -16,8 +17,8 @@ in { uid = 200008; }; systemd.services.netdata = { - wantedBy = ["multi-user.target"]; - after = ["network.target"]; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; preStart = '' mkdir -p ${netdataDir}/config mkdir -p ${netdataDir}/logs diff --git a/shell.nix b/shell.nix index 7df0495..8aa1f75 100644 --- a/shell.nix +++ b/shell.nix @@ -1,4 +1,4 @@ -(import {}).mkShell { +(import { }).mkShell { shellHook = '' ${(import ./default.nix).pre-commit-check.shellHook} ''; diff --git a/upgrade-diff.nix b/upgrade-diff.nix index d6a33f0..1903966 100644 --- a/upgrade-diff.nix +++ b/upgrade-diff.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{ pkgs, ... }: { system.activationScripts.diff = { supportsDryActivation = true; text = ''