diff --git a/modules/common/darwin.nix b/modules/common/darwin.nix deleted file mode 100644 index 10b8bc9..0000000 --- a/modules/common/darwin.nix +++ /dev/null @@ -1,3 +0,0 @@ -{pkgs, ...}: { - nix.extraOptions = "experimental-features = nix-command flakes"; -} diff --git a/modules/common/linux.nix b/modules/common/linux.nix deleted file mode 100644 index a3a7bfd..0000000 --- a/modules/common/linux.nix +++ /dev/null @@ -1,101 +0,0 @@ -{pkgs, ...}: { - boot.kernelPackages = pkgs.linuxPackages; - boot.supportedFilesystems = ["ntfs"]; - - system = { - autoUpgrade.enable = true; - stateVersion = "23.11"; - }; - - nix = { - extraOptions = "experimental-features = nix-command flakes"; - package = pkgs.nixUnstable; - }; - - users.users.dave = { - isNormalUser = true; - extraGroups = ["docker" "wheel" "libvirtd" "corectrl"]; - shell = pkgs.zsh; - }; - - i18n.defaultLocale = "en_US.UTF-8"; - console = { - font = "Lat2-Terminus16"; - keyMap = "us"; - }; - - time.timeZone = "America/Toronto"; - - hardware.pulseaudio.enable = true; - - # Enable Vulkan - hardware.opengl.driSupport = true; - hardware.opengl.driSupport32Bit = true; - - # Enable Steam - hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [libva]; - hardware.pulseaudio.support32Bit = true; - programs.steam = { - enable = true; - remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play - dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server - }; - - virtualisation = { - docker.enable = true; - libvirtd.enable = true; - podman.enable = true; - }; - - programs = { - corectrl.enable = true; - gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; - zsh.enable = true; - }; - - services = { - avahi = { - enable = true; - nssmdns = true; - publish = { - enable = true; - addresses = true; - domain = true; - hinfo = true; - userServices = true; - workstation = true; - }; - }; - gnome.gnome-keyring.enable = true; - mullvad-vpn.enable = false; - printing.enable = true; - resolved.enable = true; - xserver = { - enable = true; - displayManager = { - gdm = { - enable = true; - wayland = false; - }; - }; - desktopManager = { - gnome = { - enable = true; - }; - }; - }; - }; - - networking = { - iproute2.enable = true; - firewall = { - allowPing = false; - enable = true; - checkReversePath = "loose"; - trustedInterfaces = ["tailscale0"]; - }; - }; -} diff --git a/modules/darwin/preferences.nix b/modules/darwin.nix similarity index 55% rename from modules/darwin/preferences.nix rename to modules/darwin.nix index 1f5c7ee..33dc946 100644 --- a/modules/darwin/preferences.nix +++ b/modules/darwin.nix @@ -1,8 +1,17 @@ { config, + lib, pkgs, ... -}: { +}: let + checkBrew = "command -v brew > /dev/null"; +in { + users.users."dave.gallant".home = "/Users/dave.gallant"; + environment = { + extraInit = '' + ${checkBrew} || >&2 echo "brew is not installed (install it via https://brew.sh)" + ''; + }; system.defaults = { loginwindow = { GuestEnabled = false; @@ -54,4 +63,47 @@ AppleShowScrollBars = "Automatic"; }; }; + + homebrew = { + enable = true; + onActivation.autoUpdate = false; + onActivation.upgrade = false; + global = { + brewfile = true; + }; + + brews = [ + "coreutils" + "gnu-sed" + "gnu-tar" + "netdata" + "node" + "podman" + "podman-compose" + ]; + + casks = [ + "dbeaver-community" + "font-fira-code-nerd-font" + "font-hack-nerd-font" + "karabiner-elements" + "logseq" + "lulu" + "notunes" + "obsidian" + "podman-desktop" + "postman" + "raycast" + "rectangle" + "stats" + "warp" + ]; + + taps = [ + "homebrew/bundle" + "homebrew/cask-fonts" + "homebrew/cask-versions" + "homebrew/services" + ]; + }; } diff --git a/modules/darwin/brew.nix b/modules/darwin/brew.nix deleted file mode 100644 index a0118b3..0000000 --- a/modules/darwin/brew.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - checkBrew = "command -v brew > /dev/null"; -in { - environment = { - extraInit = '' - ${checkBrew} || >&2 echo "brew is not installed (install it via https://brew.sh)" - ''; - }; - - homebrew = { - enable = true; - onActivation.autoUpdate = false; - onActivation.upgrade = false; - global = { - brewfile = true; - }; - - brews = [ - "coreutils" - "gnu-sed" - "gnu-tar" - "netdata" - "node" - "podman" - "podman-compose" - ]; - - casks = [ - "dbeaver-community" - "font-fira-code-nerd-font" - "font-hack-nerd-font" - "karabiner-elements" - "logseq" - "lulu" - "notunes" - "obsidian" - "podman-desktop" - "postman" - "raycast" - "rectangle" - "stats" - "warp" - ]; - - taps = [ - "homebrew/bundle" - "homebrew/cask-fonts" - "homebrew/cask-versions" - "homebrew/services" - ]; - }; -} diff --git a/modules/darwin/default.nix b/modules/darwin/default.nix deleted file mode 100644 index 8877746..0000000 --- a/modules/darwin/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{pkgs, ...}: { - users.users."dave.gallant".home = "/Users/dave.gallant"; - imports = [ - ./brew.nix - ./preferences.nix - ]; -} diff --git a/modules/common/fonts.nix b/modules/fonts.nix similarity index 100% rename from modules/common/fonts.nix rename to modules/fonts.nix diff --git a/modules/machines/hephaestus/configuration.nix b/modules/machines/hephaestus/configuration.nix index c130419..d564eae 100644 --- a/modules/machines/hephaestus/configuration.nix +++ b/modules/machines/hephaestus/configuration.nix @@ -1,6 +1,7 @@ { config, pkgs, + unstable, ... }: { imports = [./hardware.nix]; @@ -10,6 +11,7 @@ nixpkgs.config.allowUnfree = true; networking = { + iproute2.enable = true; hostName = "hephaestus"; interfaces.enp34s0 = { useDHCP = true; @@ -19,13 +21,163 @@ 41641 # tailscale ]; }; + firewall = { + allowPing = false; + enable = true; + checkReversePath = "loose"; + trustedInterfaces = ["tailscale0"]; + }; }; systemd.services.NetworkManager-wait-online.enable = false; + boot.kernelPackages = pkgs.linuxPackages; + boot.supportedFilesystems = ["ntfs"]; + + system = { + autoUpgrade.enable = true; + stateVersion = "23.11"; + }; + + nix = { + extraOptions = "experimental-features = nix-command flakes"; + package = pkgs.nixUnstable; + }; + + users.users.dave = { + isNormalUser = true; + extraGroups = ["docker" "wheel" "libvirtd" "corectrl"]; + shell = pkgs.zsh; + }; + + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminus16"; + keyMap = "us"; + }; + + time.timeZone = "America/Toronto"; + + hardware.pulseaudio.enable = true; + + # Vulkan + hardware.opengl.driSupport = true; + hardware.opengl.driSupport32Bit = true; + + # Steam + hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [libva]; + hardware.pulseaudio.support32Bit = true; + programs.steam = { + enable = true; + remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play + dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server + }; + + virtualisation = { + docker.enable = true; + libvirtd.enable = true; + podman.enable = true; + }; + + programs = { + corectrl.enable = true; + gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + zsh.enable = true; + }; + services = { + avahi = { + enable = true; + nssmdns = true; + publish = { + enable = true; + addresses = true; + domain = true; + hinfo = true; + userServices = true; + workstation = true; + }; + }; + gnome.gnome-keyring.enable = true; + mullvad-vpn.enable = false; + printing.enable = true; + resolved.enable = true; sshd.enable = true; tailscale.enable = true; xserver.videoDrivers = ["amdgpu"]; + xserver = { + enable = true; + displayManager = { + gdm = { + enable = true; + wayland = false; + }; + }; + desktopManager = { + gnome = { + enable = true; + }; + }; + }; }; + + environment.systemPackages = with pkgs; [ + android-tools + bitwarden + cryptsetup + deja-dup + discord + docker + docker-compose + foliate + ghostscript + gimp-with-plugins + glibcLocales + gnome.gnome-tweaks + gnomeExtensions.appindicator + gnomeExtensions.bluetooth-quick-connect + gnomeExtensions.blur-my-shell + gnomeExtensions.caffeine + gnomeExtensions.clipboard-indicator + gnomeExtensions.dash-to-dock + gnomeExtensions.grand-theft-focus + gnomeExtensions.notification-banner-reloaded + gnomeExtensions.quick-settings-tweaker + gnomeExtensions.tailscale-status + gnomeExtensions.tray-icons-reloaded + iputils + kazam + legendary-gl + lm_sensors + mullvad-vpn + netdata + nfs-utils + pavucontrol + pinentry-curses + podman + podman-compose + psst + qemu + rustup + ryujinx + signal-desktop + strace + tailscale + traceroute + ungoogled-chromium + unstable.logseq + unstable.obsidian + unstable.yuzu + unstable.zoom-us + usbutils + virt-manager + vlc + whois + wine + wine64 + wireshark-qt + ]; } diff --git a/modules/machines/zelus/configuration.nix b/modules/machines/zelus/configuration.nix index 8b1b213..508ddca 100644 --- a/modules/machines/zelus/configuration.nix +++ b/modules/machines/zelus/configuration.nix @@ -5,8 +5,9 @@ networking = {hostName = "zelus";}; - # Auto upgrade nix package and the daemon service. services.nix-daemon.enable = true; + + nix.extraOptions = "experimental-features = nix-command flakes"; nix.package = pkgs.nixVersions.stable; programs.zsh = { diff --git a/modules/overlays/default.nix b/modules/overlays/default.nix index cc7d822..14b8c4e 100644 --- a/modules/overlays/default.nix +++ b/modules/overlays/default.nix @@ -1,5 +1,4 @@ final: prev: { - rfd = prev.callPackage ./rfd {}; tmux-sessionizer = prev.callPackage ./tmux-sessionizer {}; vpngate = prev.callPackage ./vpngate {}; } diff --git a/modules/packages.nix b/modules/packages.nix new file mode 100644 index 0000000..b9e0ec8 --- /dev/null +++ b/modules/packages.nix @@ -0,0 +1,126 @@ +{ + config, + lib, + pkgs, + unstable, + ... +}: let + inherit (pkgs) stdenv; +in { + environment.systemPackages = with pkgs; [ + # essentials + curl + gcc + gnumake + gnupg + imagemagick + jq + unzip + viddy + wget + xclip + xdg-utils + zip + + # modern cli + bat + eza + fd + hadolint + nodePackages.eslint + oha + pre-commit + progress + ripgrep + shellcheck + shfmt + starship + tldr + tmux-sessionizer + unstable.atuin + unstable.github-cli + yq-go + + # containers + krew + kubecolor + kubectl + kubectx + minikube + stern + unstable.helm-docs + unstable.kubernetes-helm + unstable.k9s + unstable.skaffold + + # cloud + unstable.awscli2 + unstable.azure-cli + unstable.google-cloud-sdk + + # LSP + nodePackages.bash-language-server + nodePackages.pyright + nodePackages.yaml-language-server + sumneko-lua-language-server + terraform-ls + + # monitoring + ctop + glances + grafana-loki + htop + procs + + # lua + lua53Packages.luacheck + stylua + + # golang + gofumpt + golangci-lint + gopls + + # rust + rustup + + # js + nodejs + nodePackages.prettier + nodePackages.yarn + + # networking + arp-scan + dnsutils + iperf + nmap + openssl + openvpn + sshfs # mac requires https://osxfuse.github.io/ + vpngate + + # rice + neofetch + pfetch + + # nix + alejandra + cachix + nix-diff + nix-tree + nixfmt + nixpkgs-fmt + nixpkgs-review + rnix-lsp + + # python + poetry + python310 + python310Packages.black + python310Packages.ipython + python310Packages.pip + python310Packages.poetry-core + python310Packages.setuptools + python310Packages.virtualenv + ]; +} diff --git a/modules/packages/common.nix b/modules/packages/common.nix deleted file mode 100644 index 8c07cea..0000000 --- a/modules/packages/common.nix +++ /dev/null @@ -1,131 +0,0 @@ -{ - config, - lib, - pkgs, - unstable, - ... -}: let - inherit (pkgs) stdenv; -in { - environment.systemPackages = with pkgs; let - common = [ - # essentials - curl - gcc - gnumake - gnupg - imagemagick - jq - unzip - viddy - wget - xclip - xdg-utils - zip - - # modern cli - bat - eza - fd - hadolint - nodePackages.eslint - oha - pre-commit - progress - ripgrep - shellcheck - shfmt - starship - tldr - tmux-sessionizer - unstable.atuin - unstable.github-cli - yq-go - - # containers - krew - kubecolor - kubectl - kubectx - minikube - stern - unstable.helm-docs - unstable.kubernetes-helm - unstable.k9s - unstable.skaffold - - # cloud - unstable.awscli2 - unstable.azure-cli - unstable.google-cloud-sdk - - # LSP - nodePackages.bash-language-server - nodePackages.pyright - nodePackages.yaml-language-server - sumneko-lua-language-server - terraform-ls - - # monitoring - ctop - glances - grafana-loki - htop - procs - - # lua - lua53Packages.luacheck - stylua - - # golang - gofumpt - golangci-lint - gopls - - # rust - rustup - - # js - nodejs - nodePackages.prettier - nodePackages.yarn - - # networking - arp-scan - dnsutils - iperf - nmap - openssl - openvpn - sshfs # mac requires https://osxfuse.github.io/ - vpngate - - # rice - neofetch - pfetch - - # nix - alejandra - cachix - nix-diff - nix-tree - nixfmt - nixpkgs-fmt - nixpkgs-review - rnix-lsp - - # python - poetry - python310 - python310Packages.black - python310Packages.ipython - python310Packages.pip - python310Packages.poetry-core - python310Packages.setuptools - python310Packages.virtualenv - ]; - in - common; - - programs.gnupg.agent.enable = true; -} diff --git a/modules/packages/linux.nix b/modules/packages/linux.nix deleted file mode 100644 index d6b57b8..0000000 --- a/modules/packages/linux.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ - config, - lib, - pkgs, - unstable, - ... -}: let - inherit (pkgs) stdenv; -in { - environment.systemPackages = with pkgs; let - linux = [ - android-tools - bitwarden - cryptsetup - deja-dup - discord - docker - docker-compose - foliate - ghostscript - gimp-with-plugins - glibcLocales - gnome.gnome-tweaks - gnomeExtensions.appindicator - gnomeExtensions.bluetooth-quick-connect - gnomeExtensions.blur-my-shell - gnomeExtensions.caffeine - gnomeExtensions.clipboard-indicator - gnomeExtensions.dash-to-dock - gnomeExtensions.grand-theft-focus - gnomeExtensions.notification-banner-reloaded - gnomeExtensions.quick-settings-tweaker - gnomeExtensions.tailscale-status - gnomeExtensions.tray-icons-reloaded - iputils - kazam - legendary-gl - lm_sensors - mullvad-vpn - netdata - nfs-utils - pavucontrol - pinentry-curses - podman - podman-compose - psst - qemu - rustup - ryujinx - signal-desktop - strace - tailscale - traceroute - ungoogled-chromium - unstable.logseq - unstable.obsidian - unstable.yuzu - unstable.zoom-us - usbutils - virt-manager - vlc - whois - wine - wine64 - wireshark-qt - ]; - in - linux; - - programs.gnupg.agent.enable = true; -} diff --git a/outputs.nix b/outputs.nix index ec386a1..73e6cf6 100644 --- a/outputs.nix +++ b/outputs.nix @@ -19,8 +19,8 @@ }; defaultModules = [ home-manager.nixosModules.home-manager - ./modules/common/fonts.nix - ./modules/packages/common.nix + ./modules/fonts.nix + ./modules/packages.nix ./modules/upgrade-diff.nix ({ @@ -71,8 +71,6 @@ }) ]; desktopLinuxModules = [ - ./modules/common/linux.nix - ./modules/packages/linux.nix ./modules/services/netdata/default.nix ]; in { @@ -100,10 +98,9 @@ modules = [ home-manager.darwinModules.home-manager - ./modules/common/darwin.nix - ./modules/packages/common.nix + ./modules/darwin.nix ./modules/machines/zelus/configuration.nix - ./modules/darwin/default.nix + ./modules/packages.nix ./modules/upgrade-diff.nix ({config, ...}: {