Compare commits
	
		
			4 Commits
		
	
	
		
			nix-overri
			...
			hm-standal
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 717e8c452d | |||
| 8fd3ca8c9a | |||
| a73194fed9 | |||
| e1d13065f8 | 
							
								
								
									
										0
									
								
								defaults/k9s/catppuccin-mocha.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								defaults/k9s/catppuccin-mocha.yaml
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										28
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								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
 | 
			
		||||
@@ -61,7 +60,8 @@
 | 
			
		||||
        {
 | 
			
		||||
          home-manager.useGlobalPkgs = true;
 | 
			
		||||
          home-manager.useUserPackages = true;
 | 
			
		||||
          home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
			
		||||
          home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = false; };
 | 
			
		||||
          # home-manager.extraSpecialArgs = extraSpecialArgs;
 | 
			
		||||
          home-manager.backupFileExtension = "bak";
 | 
			
		||||
          home-manager.users.${userName} = import ./home;
 | 
			
		||||
        }
 | 
			
		||||
@@ -74,7 +74,7 @@
 | 
			
		||||
      specialArgs = {
 | 
			
		||||
        inherit userName userEmail ghostty;
 | 
			
		||||
        hostname = "cloud";
 | 
			
		||||
        role = "devel";
 | 
			
		||||
        role = "workstation";
 | 
			
		||||
      };
 | 
			
		||||
      modules = [
 | 
			
		||||
        myOverlays
 | 
			
		||||
@@ -150,5 +150,23 @@
 | 
			
		||||
      #   }
 | 
			
		||||
      # ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # generic non-NixOS Linux machine
 | 
			
		||||
    homeConfigurations."generic" = let
 | 
			
		||||
      hostname = builtins.getEnv "HOSTNAME";
 | 
			
		||||
      pkgs = nixpkgs.legacyPackages.x86_64-linux;
 | 
			
		||||
    in home-manager.lib.homeManagerConfiguration {
 | 
			
		||||
      inherit pkgs;
 | 
			
		||||
      # system = "x86_64-linux";
 | 
			
		||||
      extraSpecialArgs = extraSpecialArgs // { 
 | 
			
		||||
        isNixOS = false; 
 | 
			
		||||
        hostname = hostname;
 | 
			
		||||
        role = "workstation";
 | 
			
		||||
      };
 | 
			
		||||
      modules = [
 | 
			
		||||
        myOverlays
 | 
			
		||||
        ./home
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  isNixOS,
 | 
			
		||||
  role,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.firefox = {
 | 
			
		||||
@@ -9,7 +11,7 @@
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.chromium = {
 | 
			
		||||
    enable = pkgs.stdenv.isLinux;
 | 
			
		||||
    enable = pkgs.stdenv.isLinux && isNixOS;
 | 
			
		||||
    package = pkgs.ungoogled-chromium.override {
 | 
			
		||||
      enableWideVine = true;
 | 
			
		||||
      commandLineArgs = [
 | 
			
		||||
 
 | 
			
		||||
@@ -1,44 +1,36 @@
 | 
			
		||||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  userName,
 | 
			
		||||
  userEmail,
 | 
			
		||||
  ghostty,
 | 
			
		||||
  ...
 | 
			
		||||
}: let
 | 
			
		||||
  # Have a file sturcture that holds all the configuration files that can't be configured by Nix
 | 
			
		||||
  # or maybe I'm too lazy to do anything about it? I dunno
 | 
			
		||||
{ lib
 | 
			
		||||
, pkgs
 | 
			
		||||
, userName
 | 
			
		||||
, userEmail
 | 
			
		||||
, ghostty
 | 
			
		||||
, isNixOS ? true
 | 
			
		||||
, role
 | 
			
		||||
, ...
 | 
			
		||||
}:
 | 
			
		||||
let
 | 
			
		||||
  # Have a file structure that holds all the configuration files that can't be configured by Nix
 | 
			
		||||
  dirs = {
 | 
			
		||||
    defaults = ../defaults;
 | 
			
		||||
  };
 | 
			
		||||
in {
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  # Import sub modules
 | 
			
		||||
  imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty;}) [
 | 
			
		||||
    ./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
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Home Manager needs a bit of information about you and the
 | 
			
		||||
  # paths it should manage.
 | 
			
		||||
  home = {
 | 
			
		||||
  home = lib.mkMerge [
 | 
			
		||||
    {
 | 
			
		||||
      username = userName;
 | 
			
		||||
      homeDirectory =
 | 
			
		||||
        if pkgs.stdenv.isDarwin
 | 
			
		||||
        then "/Users/${userName}"
 | 
			
		||||
        else "/home/${userName}";
 | 
			
		||||
 | 
			
		||||
      stateVersion = "24.11";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    (lib.mkIf isNixOS {
 | 
			
		||||
      sessionVariables = {
 | 
			
		||||
        XDG_CURRENT_DESKTOP = "sway";
 | 
			
		||||
        XDG_SESSION_TYPE = "wayland";
 | 
			
		||||
@@ -49,16 +41,17 @@ in {
 | 
			
		||||
        XDG_STATE_HOME = "$HOME/.local/state";
 | 
			
		||||
        NIXOS_OZONE_WL = "1";
 | 
			
		||||
      };
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    pointerCursor = lib.mkIf pkgs.stdenv.isLinux {
 | 
			
		||||
    (lib.mkIf pkgs.stdenv.isLinux {
 | 
			
		||||
      pointerCursor = {
 | 
			
		||||
        gtk.enable = true;
 | 
			
		||||
        package = pkgs.catppuccin-cursors.mochaDark;
 | 
			
		||||
        name = "catppuccin-mocha-dark-cursors";
 | 
			
		||||
        size = 22;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
    stateVersion = "24.11";
 | 
			
		||||
  };
 | 
			
		||||
    })
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Let Home Manager install and manage itself.
 | 
			
		||||
  programs.home-manager.enable = true;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								home/k9s.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								home/k9s.nix
									
									
									
									
									
										Normal file
									
								
							@@ -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;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								home/krew.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								home/krew.nix
									
									
									
									
									
										Normal file
									
								
							@@ -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}
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
@@ -1,10 +1,19 @@
 | 
			
		||||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    yazi # terminal file manager
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../atuin.nix
 | 
			
		||||
    ../shell.nix
 | 
			
		||||
    ../git.nix
 | 
			
		||||
    ../starship.nix
 | 
			
		||||
    ../eza.nix
 | 
			
		||||
    ../neovim.nix
 | 
			
		||||
    ../bat.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    # archives
 | 
			
		||||
    zip
 | 
			
		||||
    xz
 | 
			
		||||
@@ -12,39 +21,22 @@
 | 
			
		||||
    p7zip
 | 
			
		||||
 | 
			
		||||
    # utils
 | 
			
		||||
    yazi
 | 
			
		||||
    tmux
 | 
			
		||||
    bottom
 | 
			
		||||
    ripgrep
 | 
			
		||||
    jq
 | 
			
		||||
    yq-go
 | 
			
		||||
    fzf
 | 
			
		||||
    fh
 | 
			
		||||
    aria2
 | 
			
		||||
    yt-dlp
 | 
			
		||||
    obsidian
 | 
			
		||||
    vscode
 | 
			
		||||
    weechat
 | 
			
		||||
    gnupg
 | 
			
		||||
    inetutils
 | 
			
		||||
 | 
			
		||||
    # misc
 | 
			
		||||
    cowsay
 | 
			
		||||
    file
 | 
			
		||||
    which
 | 
			
		||||
    tree
 | 
			
		||||
    gnutar
 | 
			
		||||
    gnupg
 | 
			
		||||
    zoxide
 | 
			
		||||
    babelfish
 | 
			
		||||
 | 
			
		||||
    # language-specific package managers
 | 
			
		||||
    nodejs
 | 
			
		||||
    cargo
 | 
			
		||||
    python3
 | 
			
		||||
 | 
			
		||||
    # nix specific stuff
 | 
			
		||||
    nixd
 | 
			
		||||
    deadnix
 | 
			
		||||
    alejandra
 | 
			
		||||
    statix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,9 @@
 | 
			
		||||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  home.packages = lib.mkIf pkgs.stdenv.isDarwin (with pkgs; [
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    discord
 | 
			
		||||
    ollama
 | 
			
		||||
  ]);
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
}
 | 
			
		||||
@@ -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
 | 
			
		||||
  ]);
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,4 @@
 | 
			
		||||
{ pkgs, ... }: {
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
    ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,39 @@
 | 
			
		||||
{
 | 
			
		||||
  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
 | 
			
		||||
    weechat
 | 
			
		||||
    nodejs
 | 
			
		||||
    cargo
 | 
			
		||||
    python3
 | 
			
		||||
    nixd
 | 
			
		||||
    deadnix
 | 
			
		||||
    alejandra
 | 
			
		||||
    statix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,25 @@
 | 
			
		||||
            "Can I get a waffle? Can I please get a waffle?" \
 | 
			
		||||
            "I'm lesbian. I thought you were American." \
 | 
			
		||||
            "You gotta give 'em that 'hawk tuah' and spit on that thang!" \
 | 
			
		||||
            "We don't do that here..."
 | 
			
		||||
            "We don't do that here..." \
 | 
			
		||||
            "What are those?! They are my crocs..." \
 | 
			
		||||
            "It's an avocado... Thanks!" \
 | 
			
		||||
            "I am once again asking for your financial support" \
 | 
			
		||||
            "Is that a weed?" \
 | 
			
		||||
            "No, this is Patrick!" \
 | 
			
		||||
            "Come ride, heroes, ride" \
 | 
			
		||||
            "Away with the tide" \
 | 
			
		||||
            "Concede your mind unto the fiend" \
 | 
			
		||||
            "Darkness come, rend the shield of light" \
 | 
			
		||||
            "The sun is setting, darkness taking over - a date with chaos and you're dressed to the nines" \
 | 
			
		||||
            "Now kneel overdweller, your lord commands, there's no salvation for the sons of man" \
 | 
			
		||||
            "Snap click clank whirr whizz wham boom!" \
 | 
			
		||||
            "Rohs an kyn ala na" \
 | 
			
		||||
            "If you’ve brought your ivory standard, I’ll be happy to tell you where you can stick it" \
 | 
			
		||||
            "Speeches? Oh, yes, I love them. There's nothing like a good exposition when you're having trouble sleeping!" \
 | 
			
		||||
            "Somehow, the boy just isn't very buoyant" \
 | 
			
		||||
            "I am...not interested, little sun. Try again when you have become a man"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          set choose_meme (random)"%"(count $memes)
 | 
			
		||||
          set choose_meme $memes[(math $choose_meme"+1")]
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
{ lib, pkgs, ghostty, ... }: {
 | 
			
		||||
{ pkgs, ghostty, ... }: {
 | 
			
		||||
  programs.alacritty = {
 | 
			
		||||
    enable = pkgs.stdenv.isLinux;
 | 
			
		||||
    settings = {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										0
									
								
								lib/checkSystem.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								lib/checkSystem.nix
									
									
									
									
									
										Normal file
									
								
							@@ -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"
 | 
			
		||||
    ];
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user