4 Commits

16 changed files with 216 additions and 96 deletions

View File

View File

@@ -34,8 +34,7 @@
myOverlays = { ... }: { myOverlays = { ... }: {
nixpkgs.overlays = [ nixpkgs.overlays = [
rust-overlay.overlays.default rust-overlay.overlays.default
self.common.overlays ] ++ (nixpkgs.lib.attrValues self.common.overlays);
];
}; };
in { in {
meta = import ./meta; meta = import ./meta;
@@ -50,7 +49,7 @@
specialArgs = { specialArgs = {
inherit userName userEmail ghostty; inherit userName userEmail ghostty;
hostname = "sephiroth"; hostname = "sephiroth";
role = "devel"; role = "workstation";
}; };
modules = [ modules = [
myOverlays myOverlays
@@ -61,7 +60,8 @@
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = 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.backupFileExtension = "bak";
home-manager.users.${userName} = import ./home; home-manager.users.${userName} = import ./home;
} }
@@ -74,7 +74,7 @@
specialArgs = { specialArgs = {
inherit userName userEmail ghostty; inherit userName userEmail ghostty;
hostname = "cloud"; hostname = "cloud";
role = "devel"; role = "workstation";
}; };
modules = [ modules = [
myOverlays 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
];
};
}; };
} }

View File

@@ -1,6 +1,8 @@
{ {
pkgs, pkgs,
lib, lib,
isNixOS,
role,
... ...
}: { }: {
programs.firefox = { programs.firefox = {
@@ -9,7 +11,7 @@
}; };
programs.chromium = { programs.chromium = {
enable = pkgs.stdenv.isLinux; enable = pkgs.stdenv.isLinux && isNixOS;
package = pkgs.ungoogled-chromium.override { package = pkgs.ungoogled-chromium.override {
enableWideVine = true; enableWideVine = true;
commandLineArgs = [ commandLineArgs = [

View File

@@ -1,64 +1,57 @@
{ { lib
lib, , pkgs
pkgs, , userName
userName, , userEmail
userEmail, , ghostty
ghostty, , isNixOS ? true
... , role
}: 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 let
# Have a file structure that holds all the configuration files that can't be configured by Nix
dirs = { dirs = {
defaults = ../defaults; defaults = ../defaults;
}; };
in { in
{
# Import sub modules # Import sub modules
imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty;}) [ imports = [
./atuin.nix
./shell.nix
./packages ./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 home = lib.mkMerge [
# paths it should manage. {
home = { username = userName;
username = userName; homeDirectory =
homeDirectory = if pkgs.stdenv.isDarwin
if pkgs.stdenv.isDarwin then "/Users/${userName}"
then "/Users/${userName}" else "/home/${userName}";
else "/home/${userName}";
sessionVariables = { stateVersion = "24.11";
XDG_CURRENT_DESKTOP = "sway"; }
XDG_SESSION_TYPE = "wayland";
XDG_SESSION_DESKTOP="sway";
XDG_CONFIG_HOME = "$HOME/.config";
XDG_CACHE_HOME = "$HOME/.cache";
XDG_DATA_HOME = "$HOME/.local/share";
XDG_STATE_HOME = "$HOME/.local/state";
NIXOS_OZONE_WL = "1";
};
pointerCursor = lib.mkIf pkgs.stdenv.isLinux { (lib.mkIf isNixOS {
gtk.enable = true; sessionVariables = {
package = pkgs.catppuccin-cursors.mochaDark; XDG_CURRENT_DESKTOP = "sway";
name = "catppuccin-mocha-dark-cursors"; XDG_SESSION_TYPE = "wayland";
size = 22; XDG_SESSION_DESKTOP = "sway";
}; XDG_CONFIG_HOME = "$HOME/.config";
XDG_CACHE_HOME = "$HOME/.cache";
XDG_DATA_HOME = "$HOME/.local/share";
XDG_STATE_HOME = "$HOME/.local/state";
NIXOS_OZONE_WL = "1";
};
})
stateVersion = "24.11"; (lib.mkIf pkgs.stdenv.isLinux {
}; pointerCursor = {
gtk.enable = true;
package = pkgs.catppuccin-cursors.mochaDark;
name = "catppuccin-mocha-dark-cursors";
size = 22;
};
})
];
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
programs.home-manager.enable = true; programs.home-manager.enable = true;

32
home/k9s.nix Normal file
View 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
View 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}
'';
}

View File

@@ -1,10 +1,19 @@
{ {
lib,
pkgs, pkgs,
... ...
}: { }: {
home.packages = with pkgs; [ imports = [
yazi # terminal file manager ../atuin.nix
../shell.nix
../git.nix
../starship.nix
../eza.nix
../neovim.nix
../bat.nix
];
home.packages = with pkgs; [
# archives # archives
zip zip
xz xz
@@ -12,39 +21,22 @@
p7zip p7zip
# utils # utils
yazi
tmux tmux
bottom bottom
ripgrep ripgrep
jq jq
yq-go yq-go
fzf fzf
fh
aria2 aria2
yt-dlp gnupg
obsidian
vscode
weechat
inetutils inetutils
# misc # misc
cowsay
file file
which which
tree tree
gnutar gnutar
gnupg
zoxide
babelfish babelfish
# language-specific package managers
nodejs
cargo
python3
# nix specific stuff
nixd
deadnix
alejandra
statix
]; ];
} }

View File

@@ -1,10 +1,9 @@
{ {
pkgs, pkgs,
lib,
... ...
}: { }: {
home.packages = lib.mkIf pkgs.stdenv.isDarwin (with pkgs; [ home.packages = with pkgs; [
discord discord
ollama ollama
]); ];
} }

View File

@@ -1,11 +1,9 @@
{ pkgs, lib, role, ... }:
{ {
pkgs, imports =
lib, [ ./common.nix ]
... ++ lib.optional pkgs.stdenv.isDarwin ./darwin.nix
}: { ++ lib.optional pkgs.stdenv.isLinux ./linux.nix
imports = [ ++ lib.optional (role == "workstation") ./workstation.nix
./common.nix ++ lib.optional (role == "server") ./server.nix;
./darwin.nix }
./linux.nix
];
}

View File

@@ -1,9 +1,8 @@
{ {
pkgs, pkgs,
lib,
... ...
}: { }: {
home.packages = lib.mkIf pkgs.stdenv.isLinux (with pkgs; [ home.packages = with pkgs; [
imv imv
betterdiscordctl betterdiscordctl
vesktop vesktop
@@ -16,5 +15,5 @@
gpu-screen-recorder gpu-screen-recorder
gpu-screen-recorder-gtk gpu-screen-recorder-gtk
# ungoogled-chromium # ungoogled-chromium
]); ];
} }

View File

@@ -0,0 +1,4 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
];
}

View File

@@ -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
];
}

View File

@@ -43,7 +43,25 @@
"Can I get a waffle? Can I please get a waffle?" \ "Can I get a waffle? Can I please get a waffle?" \
"I'm lesbian. I thought you were American." \ "I'm lesbian. I thought you were American." \
"You gotta give 'em that 'hawk tuah' and spit on that thang!" \ "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 youve brought your ivory standard, Ill 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 (random)"%"(count $memes)
set choose_meme $memes[(math $choose_meme"+1")] set choose_meme $memes[(math $choose_meme"+1")]

View File

@@ -1,4 +1,4 @@
{ lib, pkgs, ghostty, ... }: { { pkgs, ghostty, ... }: {
programs.alacritty = { programs.alacritty = {
enable = pkgs.stdenv.isLinux; enable = pkgs.stdenv.isLinux;
settings = { settings = {

0
lib/checkSystem.nix Normal file
View File

View File

@@ -47,4 +47,18 @@ in {
mkdir -p "$XDG_CONFIG_HOME" "$XDG_DATA_HOME" "$XDG_STATE_HOME" 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"
];
});
} }