diff --git a/defaults/waybar/config b/defaults/waybar/config index d9db3ce..eb408a3 100644 --- a/defaults/waybar/config +++ b/defaults/waybar/config @@ -27,17 +27,18 @@ "format-alt": "{:%m-%d-%Y}", "tooltip": false }, -"custom/weather": { + "custom/weather": { "format": "{} °", "tooltip": true, "interval": 3600, "exec": "wttrbar --fahrenheit --main-indicator 'temp_F' --location 'Grand Rapids'", "return-type": "json" -}, + }, "network": { "format-wifi": " {essid} ({signalStrength}%)", "format-ethernet": " {ipaddr}", "format-disconnected": "⚠ Disconnected", + "family": "ipv4", "interval": 5, "tooltip": false }, diff --git a/flake.lock b/flake.lock index c634270..e506187 100644 --- a/flake.lock +++ b/flake.lock @@ -2,38 +2,99 @@ "nodes": { "darwin": { "inputs": { - "nixpkgs": ["nixpkgs"] + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1743127615, - "narHash": "sha256-+sMGqywrSr50BGMLMeY789mSrzjkoxZiu61eWjYS/8o=", + "lastModified": 1748044287, + "narHash": "sha256-9bJzyUX5+HXYmI60WMGYXXDdhGbSh1Le6yBM4og3K7E=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "fc843893cecc1838a59713ee3e50e9e7edc6207c", + "rev": "2456ff5c95edfc3b197cb012b947012faed77591", "type": "github" }, "original": { "owner": "lnl7", - "ref": "nix-darwin-24.11", + "ref": "nix-darwin-25.05", "repo": "nix-darwin", "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "ghostty": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs-stable": "nixpkgs-stable", + "nixpkgs-unstable": "nixpkgs-unstable", + "zig": "zig", + "zon2nix": "zon2nix" + }, + "locked": { + "lastModified": 1748207486, + "narHash": "sha256-4kR7VyauWpNMrBePHMM8yzQvUzHHGRVkQpJ3DyoKcH0=", + "owner": "ghostty-org", + "repo": "ghostty", + "rev": "3f6c02b49e08aed51e4be85d87b79b9dbea34a85", + "type": "github" + }, + "original": { + "owner": "ghostty-org", + "repo": "ghostty", + "type": "github" + } + }, "home-manager": { "inputs": { - "nixpkgs": ["nixpkgs"] + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1745557122, - "narHash": "sha256-eqSo9ugzsqhFgaDFYUZj943nurlX4L6f+AW0skJ4W+M=", + "lastModified": 1747556831, + "narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=", "owner": "nix-community", "repo": "home-manager", - "rev": "dd26f75fb4ec1c731d4b1396eaf4439ce40a91c1", + "rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-24.11", + "ref": "release-25.05", "repo": "home-manager", "type": "github" } @@ -56,16 +117,48 @@ }, "nixpkgs": { "locked": { - "lastModified": 1745487689, - "narHash": "sha256-FQoi3R0NjQeBAsEOo49b5tbDPcJSMWc3QhhaIi9eddw=", + "lastModified": 1747953325, + "narHash": "sha256-y2ZtlIlNTuVJUZCqzZAhIw5rrKP4DOSklev6c8PyCkQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5630cf13cceac06cefe9fc607e8dfa8fb342dde3", + "rev": "55d1f923c480dadce40f5231feb472e81b0bab48", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-24.11", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1741992157, + "narHash": "sha256-nlIfTsTrMSksEJc1f7YexXiPVuzD1gOfeN1ggwZyUoc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "da4b122f63095ca1199bd4d526f9e26426697689", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "release-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1741865919, + "narHash": "sha256-4thdbnP6dlbdq+qZWTsm4ffAwoS8Tiq1YResB+RP6WE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "573c650e8a14b2faa0041645ab18aed7e60f0c9a", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } @@ -73,10 +166,80 @@ "root": { "inputs": { "darwin": "darwin", + "ghostty": "ghostty", "home-manager": "home-manager", "nix-flatpak": "nix-flatpak", "nixpkgs": "nixpkgs" } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "zig": { + "inputs": { + "flake-compat": [ + "ghostty" + ], + "flake-utils": [ + "ghostty", + "flake-utils" + ], + "nixpkgs": [ + "ghostty", + "nixpkgs-stable" + ] + }, + "locked": { + "lastModified": 1741825901, + "narHash": "sha256-aeopo+aXg5I2IksOPFN79usw7AeimH1+tjfuMzJHFdk=", + "owner": "mitchellh", + "repo": "zig-overlay", + "rev": "0b14285e283f5a747f372fb2931835dd937c4383", + "type": "github" + }, + "original": { + "owner": "mitchellh", + "repo": "zig-overlay", + "type": "github" + } + }, + "zon2nix": { + "inputs": { + "flake-utils": [ + "ghostty", + "flake-utils" + ], + "nixpkgs": [ + "ghostty", + "nixpkgs-unstable" + ] + }, + "locked": { + "lastModified": 1742104771, + "narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=", + "owner": "jcollie", + "repo": "zon2nix", + "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613", + "type": "github" + }, + "original": { + "owner": "jcollie", + "ref": "56c159be489cc6c0e73c3930bd908ddc6fe89613", + "repo": "zon2nix", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 2def8e3..0185d56 100644 --- a/flake.nix +++ b/flake.nix @@ -1,16 +1,22 @@ { description = "Wyatt's nix configuration suite"; inputs = { +<<<<<<< HEAD nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0"; +======= + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; + nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1"; +>>>>>>> origin home-manager = { - url = "github:nix-community/home-manager/release-24.11"; + url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; darwin = { - url = "github:lnl7/nix-darwin/nix-darwin-24.11"; + url = "github:lnl7/nix-darwin/nix-darwin-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; + ghostty.url = "github:ghostty-org/ghostty"; }; outputs = inputs @ { @@ -19,20 +25,22 @@ nix-flatpak, darwin, home-manager, + ghostty, ... }: let userName = "wyatt"; userEmail = "wyatt@wyattjmiller.com"; extraSpecialArgs = { - inherit userName userEmail; + inherit userName userEmail ghostty; }; in { # Primary laptop - MacBook Pro (2023, M3) darwinConfigurations."sephiroth" = darwin.lib.darwinSystem { system = "aarch64-darwin"; specialArgs = { - inherit userName userEmail; + inherit userName userEmail ghostty; hostname = "sephiroth"; + role = "devel"; }; modules = [ ./modules/common @@ -52,8 +60,9 @@ nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { - inherit userName userEmail; + inherit userName userEmail ghostty; hostname = "cloud"; + role = "devel"; }; modules = [ nix-flatpak.nixosModules.nix-flatpak @@ -78,6 +87,7 @@ specialArgs = { inherit userName userEmail; hostname = "valefor"; + role = "server"; }; modules = [ ./modules/common @@ -101,6 +111,7 @@ specialArgs = { inherit userName userEmail; hostname = "ixion"; + role = "server"; }; # modules = [ # nix-flatpak.nixosModules.nix-flatpak diff --git a/flake.nix.orig b/flake.nix.orig new file mode 100644 index 0000000..f45352f --- /dev/null +++ b/flake.nix.orig @@ -0,0 +1,131 @@ +{ + description = "Wyatt's nix configuration suite"; + inputs = { + nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; + home-manager = { + url = "github:nix-community/home-manager/release-25.05"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + darwin = { + url = "github:lnl7/nix-darwin/nix-darwin-25.05"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + ghostty.url = "github:ghostty-org/ghostty"; + }; + + outputs = inputs @ { + self, + nixpkgs, + nix-flatpak, + darwin, + home-manager, + ghostty, + ... + }: let + userName = "wyatt"; + userEmail = "wyatt@wyattjmiller.com"; + extraSpecialArgs = { + inherit userName userEmail ghostty; + }; + in { + # Primary laptop - MacBook Pro (2023, M3) + darwinConfigurations."sephiroth" = darwin.lib.darwinSystem { + system = "aarch64-darwin"; + specialArgs = { + inherit userName userEmail ghostty; + hostname = "sephiroth"; + role = "devel"; + }; + modules = [ + ./modules/common + ./modules/machine/sephiroth + + home-manager.darwinModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = extraSpecialArgs; + home-manager.users.${userName} = import ./home; + } + ]; + }; + + # Primary desktop computer + nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { + inherit userName userEmail ghostty; + hostname = "cloud"; + role = "devel"; + }; + modules = [ + nix-flatpak.nixosModules.nix-flatpak + ./modules/common + ./modules/machine/cloud + + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = extraSpecialArgs; + home-manager.users.${userName}.imports = [ + ./home + ]; + } + ]; + }; + + # Apartment appliance server + nixosConfigurations."valefor" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { + inherit userName userEmail; + hostname = "valefor"; + role = "server"; + }; + modules = [ + ./modules/common + ./modules/machine/valefor + + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = extraSpecialArgs; + home-manager.users.${userName}.imports = [ + ./home + ]; + } + ]; + }; + + # Storage, status, game, and media server + nixosConfigurations."ixion" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { + inherit userName userEmail; + hostname = "ixion"; + role = "server"; + }; + # modules = [ + # nix-flatpak.nixosModules.nix-flatpak + # nix-ld.nixosModules.nix-ld + # ./modules/nixos/hardware-configuration.nix + # ./modules/nix-core.nix + # ./modules/nixos/configuration.nix + # ./modules/host-users.nix + # + # home-manager.nixosModules.home-manager + # { + # home-manager.useGlobalPkgs = true; + # home-manager.useUserPackages = true; + # home-manager.extraSpecialArgs = extraSpecialArgs; + # home-manager.users.${userName}.imports = [ + # ./home + # ]; + # } + # ]; + }; + }; +} diff --git a/home/default.nix b/home/default.nix index 872f13f..57a46b7 100644 --- a/home/default.nix +++ b/home/default.nix @@ -3,6 +3,7 @@ pkgs, userName, userEmail, + ghostty, ... }: let # Have a file sturcture that holds all the configuration files that can't be configured by Nix @@ -12,7 +13,7 @@ }; in { # Import sub modules - imports = map (module: import module {inherit lib pkgs dirs userName userEmail;}) [ + imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty;}) [ ./atuin.nix ./shell.nix ./packages diff --git a/home/packages/common.nix b/home/packages/common.nix index 285dbe9..bf5e39a 100644 --- a/home/packages/common.nix +++ b/home/packages/common.nix @@ -37,7 +37,6 @@ tree gnutar gnupg - nerdfonts zoxide babelfish @@ -45,8 +44,6 @@ nodejs cargo python3 - jetbrains.rust-rover - jetbrains.rider # nix specific stuff nixd diff --git a/home/shell.nix b/home/shell.nix index 94503b5..9941b9f 100644 --- a/home/shell.nix +++ b/home/shell.nix @@ -57,7 +57,7 @@ programs.zsh = { enable = true; - initExtra = '' + initContent = '' if [[ -z "$BASH_EXECUTION_STRING" ]]; then if [[ -n "$ZSH_VERSION" ]]; then LOGIN_OPTION="--login" diff --git a/home/sway.nix b/home/sway.nix index 5b9f88e..7646596 100644 --- a/home/sway.nix +++ b/home/sway.nix @@ -6,6 +6,14 @@ dirs = { defaults = ../defaults; }; + + # Derived from subprojects/cava.wrap + libcava.src = pkgs.fetchFromGitHub { + owner = "LukashonakV"; + repo = "cava"; + rev = "0.10.3"; + hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg="; + }; in { wayland.windowManager.sway = { enable = pkgs.stdenv.isLinux; @@ -23,9 +31,24 @@ in { xdg.configFile."waybar/style.css".source = lib.mkForce (dirs.defaults + /waybar/style.css); programs.rofi.enable = pkgs.stdenv.isLinux; services.mako.enable = pkgs.stdenv.isLinux; - # programs.cliphist.enable = pkgs.stdenv.isLinux; + programs.waybar = { enable = pkgs.stdenv.isLinux; systemd.enable = true; + + package = pkgs.waybar.overrideAttrs (old: { + version = "0.11.0"; + + src = pkgs.fetchFromGitHub { + owner = "Alexays"; + repo = "Waybar"; + rev = "d56dd6ee7fdf8c5ba4e90790af62b7f7829d3a47"; + sha256 = "sha256-3lc0voMU5RS+mEtxKuRayq/uJO09X7byq6Rm5NZohq8="; + fetchSubmodules = true; + }; + + buildInputs = old.buildInputs ++ [ pkgs.fftw pkgs.libcava ]; + # mesonFlags = (old.mesonFlags or []) ++ [ "-Dcava=disabled" ]; + }); }; } diff --git a/home/terminal.nix b/home/terminal.nix index b8d0b88..8f5d2cf 100644 --- a/home/terminal.nix +++ b/home/terminal.nix @@ -1,10 +1,12 @@ -{pkgs, ...}: { - programs.alacritty = { - enable = pkgs.stdenv.isLinux; - settings = {}; # TODO: this will be filled in the future - }; +{pkgs, ghostty, ...}: { + programs.alacritty = { + enable = pkgs.stdenv.isLinux; + settings = {}; # TODO: this will be filled in the future + }; - programs.kitty = { - enable = false; # TODO: to enable later - }; + programs.kitty = { + enable = false; # TODO: to enable later + }; + + home.packages = [ ghostty.packages.${pkgs.system}.default ]; } diff --git a/modules/common/fonts.nix b/modules/common/fonts.nix index 0e805af..965ba13 100644 --- a/modules/common/fonts.nix +++ b/modules/common/fonts.nix @@ -3,12 +3,13 @@ lib, ... }: { - fonts.packages = with pkgs; [ - nerdfonts - noto-fonts - noto-fonts-emoji - liberation_ttf - noto-fonts-cjk-sans - monaspace - ]; + fonts.packages = with pkgs; + [ + noto-fonts + noto-fonts-emoji + liberation_ttf + noto-fonts-cjk-sans + monaspace + ] + ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); } diff --git a/modules/graphics/default.nix b/modules/graphics/default.nix index d38dbbd..1fa0335 100644 --- a/modules/graphics/default.nix +++ b/modules/graphics/default.nix @@ -62,7 +62,7 @@ in { (mkIf (cfg.gpuVendor == "amd") { services.xserver.videoDrivers = ["amdgpu"]; - hardware.opengl.extraPackages = with pkgs; [ + hardware.graphics.extraPackages = with pkgs; [ amdvlk ]; environment.systemPackages = with pkgs; [ @@ -72,7 +72,7 @@ in { (mkIf (cfg.gpuVendor == "intel") { services.xserver.videoDrivers = ["modesetting"]; - hardware.opengl.extraPackages = with pkgs; [ + hardware.graphics.extraPackages = with pkgs; [ intel-media-driver intel-compute-runtime ]; diff --git a/modules/machine/sephiroth/configuration.nix b/modules/machine/sephiroth/configuration.nix index 80fcb13..83fb7ef 100644 --- a/modules/machine/sephiroth/configuration.nix +++ b/modules/machine/sephiroth/configuration.nix @@ -8,9 +8,10 @@ ]; system = { - activationScripts.postUserActivation.text = '' - /System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u - ''; + # activationScripts.postUserActivation.text = '' + # /System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u + # ''; + primaryUser = "wyatt"; defaults = { menuExtraClock.Show24Hour = true; @@ -148,7 +149,8 @@ system.defaults.smb.NetBIOSName = hostname; # Add ability to used TouchID for sudo authentication - security.pam.enableSudoTouchIdAuth = true; + security.pam.services.sudo_local.touchIdAuth = true; + # security.pam.enableSudoTouchIdAuth = true; # Create /etc/zshrc that loads the nix-darwin environment. # this is required if you want to use darwin's default shell - zsh @@ -159,12 +161,6 @@ pkgs.bash ]; - # Auto upgrade nix package and the daemon service. - # services.nix-daemon.enable = true; - # Use this instead of services.nix-daemon.enable if you - # don't wan't the daemon service to be managed for you. - services.nix-daemon.enable = true; - system.stateVersion = 5; podman = { diff --git a/modules/networking/core.nix b/modules/networking/core.nix index 1db0c63..dc65e10 100644 --- a/modules/networking/core.nix +++ b/modules/networking/core.nix @@ -62,7 +62,7 @@ in { }; networking.networkmanager = { enable = lib.mkForce cfg.networkManager.enable; - packages = cfg.networkManager.extraPlugins; + plugins = cfg.networkManager.extraPlugins; }; }; }