From 717e8c452dabe682ed47ae0461b4ca6e89f48367 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Fri, 31 Oct 2025 17:07:59 -0400 Subject: [PATCH] wip: broken, still working on it' --- defaults/k9s/catppuccin-mocha.yaml | 0 flake.nix | 9 ++++----- home/browser.nix | 1 + home/default.nix | 18 ++--------------- home/k9s.nix | 32 ++++++++++++++++++++++++++++++ home/krew.nix | 12 +++++++++++ home/packages/common.nix | 11 ++++++++++ home/packages/darwin.nix | 5 ++--- home/packages/default.nix | 18 ++++++++--------- home/packages/linux.nix | 5 ++--- home/packages/server.nix | 4 ++++ home/packages/workstation.nix | 20 +++++++++++++++++++ home/terminal.nix | 2 +- modules/common/overlays.nix | 14 +++++++++++++ 14 files changed, 113 insertions(+), 38 deletions(-) create mode 100644 defaults/k9s/catppuccin-mocha.yaml create mode 100644 home/k9s.nix create mode 100644 home/krew.nix diff --git a/defaults/k9s/catppuccin-mocha.yaml b/defaults/k9s/catppuccin-mocha.yaml new file mode 100644 index 0000000..e69de29 diff --git a/flake.nix b/flake.nix index 36f254f..4770e28 100644 --- a/flake.nix +++ b/flake.nix @@ -34,8 +34,7 @@ myOverlays = { ... }: { nixpkgs.overlays = [ rust-overlay.overlays.default - self.common.overlays - ]; + ] ++ (nixpkgs.lib.attrValues self.common.overlays); }; in { meta = import ./meta; @@ -50,7 +49,7 @@ specialArgs = { inherit userName userEmail ghostty; hostname = "sephiroth"; - role = "devel"; + role = "workstation"; }; modules = [ myOverlays @@ -75,7 +74,7 @@ specialArgs = { inherit userName userEmail ghostty; hostname = "cloud"; - role = "devel"; + role = "workstation"; }; modules = [ myOverlays @@ -162,10 +161,10 @@ extraSpecialArgs = extraSpecialArgs // { isNixOS = false; hostname = hostname; + role = "workstation"; }; modules = [ myOverlays - ./modules/common/core ./home ]; }; diff --git a/home/browser.nix b/home/browser.nix index 953775c..cbe2f9f 100644 --- a/home/browser.nix +++ b/home/browser.nix @@ -2,6 +2,7 @@ pkgs, lib, isNixOS, + role, ... }: { programs.firefox = { diff --git a/home/default.nix b/home/default.nix index 5283664..50aefef 100644 --- a/home/default.nix +++ b/home/default.nix @@ -4,6 +4,7 @@ , userEmail , ghostty , isNixOS ? true +, role , ... }: let @@ -14,23 +15,8 @@ let in { # Import sub modules - imports = map (module: import module { inherit lib pkgs dirs userName userEmail ghostty isNixOS; }) [ - ./atuin.nix - ./shell.nix + imports = [ ./packages - ./git.nix - ./starship.nix - ./eza.nix - ./neovim.nix - ./direnv.nix - # ./sway.nix - ./terminal.nix - ./browser.nix - ./zellij.nix - ./bat.nix - ./lazygit.nix - ] ++ lib.optionalattrs isNixOS [ - ./sway.nix ]; home = lib.mkMerge [ diff --git a/home/k9s.nix b/home/k9s.nix new file mode 100644 index 0000000..a836d01 --- /dev/null +++ b/home/k9s.nix @@ -0,0 +1,32 @@ +{ pkgs, ... }: { + programs.k9s = { + enable = true; + package = pkgs.k9sLatest; + settings.k9s = { + refreshRate = "2s"; + liveViewAutoRefresh = false; + apiServerTimeout = "30s"; + maxConnRetry = 5; + readOnly = true; + noExitOnCtrlC = false; + portForwardAddress = "localhost"; + skipLatestRevCheck = false; + + skin = { + catppuccin-mocha = ./defaults/k9s/catppuccin-mocha.yml; + }; + + ui = { + skin = "catppuccin-mocha"; + enableMouse = true; + headless = false; + logoless = true; + crumbsless = false; + splashless = true; + reactive = false; + noIcons = false; + defaultsToFullscreen = false; + }; + }; + }; +} diff --git a/home/krew.nix b/home/krew.nix new file mode 100644 index 0000000..1cf929e --- /dev/null +++ b/home/krew.nix @@ -0,0 +1,12 @@ +{ pkgs, lib, ... }: +with pkgs; +let + plugins = writeText "plugins" '' + krew + oidc-login + ''; +in { + home.activation.krew = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + $DRY_RUN_CMD ${krewfile}/bin/krewfile -command ${krew}/bin/krew -file ${plugins} + ''; +} diff --git a/home/packages/common.nix b/home/packages/common.nix index abbe5fd..b7a9456 100644 --- a/home/packages/common.nix +++ b/home/packages/common.nix @@ -1,7 +1,18 @@ { + lib, pkgs, ... }: { + imports = [ + ../atuin.nix + ../shell.nix + ../git.nix + ../starship.nix + ../eza.nix + ../neovim.nix + ../bat.nix + ]; + home.packages = with pkgs; [ # archives zip diff --git a/home/packages/darwin.nix b/home/packages/darwin.nix index 4306b58..f078397 100644 --- a/home/packages/darwin.nix +++ b/home/packages/darwin.nix @@ -1,10 +1,9 @@ { pkgs, - lib, ... }: { - home.packages = lib.mkIf pkgs.stdenv.isDarwin (with pkgs; [ + home.packages = with pkgs; [ discord ollama - ]); + ]; } diff --git a/home/packages/default.nix b/home/packages/default.nix index 58789ec..aad9bb1 100644 --- a/home/packages/default.nix +++ b/home/packages/default.nix @@ -1,11 +1,9 @@ +{ pkgs, lib, role, ... }: { - pkgs, - lib, - ... -}: { - imports = [ - ./common.nix - ./darwin.nix - ./linux.nix - ]; -} + imports = + [ ./common.nix ] + ++ lib.optional pkgs.stdenv.isDarwin ./darwin.nix + ++ lib.optional pkgs.stdenv.isLinux ./linux.nix + ++ lib.optional (role == "workstation") ./workstation.nix + ++ lib.optional (role == "server") ./server.nix; +} \ No newline at end of file diff --git a/home/packages/linux.nix b/home/packages/linux.nix index eb7c33a..f901481 100644 --- a/home/packages/linux.nix +++ b/home/packages/linux.nix @@ -1,9 +1,8 @@ { pkgs, - lib, ... }: { - home.packages = lib.mkIf pkgs.stdenv.isLinux (with pkgs; [ + home.packages = with pkgs; [ imv betterdiscordctl vesktop @@ -16,5 +15,5 @@ gpu-screen-recorder gpu-screen-recorder-gtk # ungoogled-chromium - ]); + ]; } diff --git a/home/packages/server.nix b/home/packages/server.nix index e69de29..fff827a 100644 --- a/home/packages/server.nix +++ b/home/packages/server.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + ]; +} diff --git a/home/packages/workstation.nix b/home/packages/workstation.nix index 0d0454f..ec9d438 100644 --- a/home/packages/workstation.nix +++ b/home/packages/workstation.nix @@ -1,9 +1,29 @@ { + lib, pkgs, + dirs, + userName, + userEmail, + ghostty, + isNixOS, ... }: { + imports = map (module: import module { inherit lib pkgs dirs userName userEmail ghostty isNixOS; }) [ + ../terminal.nix + ../broswer.nix + ../zellij.nix + ../lazygit.nix + ../k9s.nix + ../krew.nix + ../direnv.nix + ] ++ lib.optional isNixOS [ + ../sway.nix + ]; + home.packages = with pkgs; [ fh + kubectl # kube config is deliberately not included + kubectx obsidian vscode yt-dlp diff --git a/home/terminal.nix b/home/terminal.nix index 8050faa..f41efad 100644 --- a/home/terminal.nix +++ b/home/terminal.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, ghostty, ... }: { +{ pkgs, ghostty, ... }: { programs.alacritty = { enable = pkgs.stdenv.isLinux; settings = { diff --git a/modules/common/overlays.nix b/modules/common/overlays.nix index 75b0748..efad2c6 100644 --- a/modules/common/overlays.nix +++ b/modules/common/overlays.nix @@ -47,4 +47,18 @@ in { mkdir -p "$XDG_CONFIG_HOME" "$XDG_DATA_HOME" "$XDG_STATE_HOME" ''; }); + + k9sLatest = prev.k9s.overrideAttrs (oldAttrs: rec { + version = "0.30.16"; + src = prev.fetchFromGitHub { + owner = "derailed"; + repo = "k9s"; + rev = "v${version}"; + hash = "sha256-1z6r6v3n1p6vd2q6n4pl5q3f7q3q7q1p7j5j1k3l4m5n6o7p8q9r"; + }; + ldflags = [ + "-X github.com/derailed/k9s/version.Version=${version}" + "-X github.com/derailed/k9s/version.BuildSource=nix" + ]; + }); }