This commit is contained in:
2025-12-26 11:02:58 +01:00
commit 83841223bb
15 changed files with 922 additions and 0 deletions

21
home/default.nix Normal file
View File

@@ -0,0 +1,21 @@
{ primaryUser, inputs, ... }:
{
imports = [
inputs.nixvim.homeManagerModules.nixvim
./neovim
./packages.nix
./git.nix
./shell.nix
];
home = {
username = primaryUser;
stateVersion = "25.11";
sessionVariables = {
# shared environment variables
};
# create .hushlogin file to suppress login messages
file.".hushlogin".text = "";
};
}

176
home/fastfetch.jsonc Normal file
View File

@@ -0,0 +1,176 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "kitty-icat",
"source": "~/Pictures/Avatar/avatar_no_bg.png",
//"height": 15,
"width": 40,
"padding": {
"top": 0,
"left": 0
}
},
"modules": [
"break",
{
"type": "custom",
"format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐"
},
{
"type": "host",
"key": " PC",
"keyColor": "green"
},
{
"type": "cpu",
"key": "│ ├",
"keyColor": "green"
},
{
"type": "gpu",
"key": "│ ├󰍛",
"keyColor": "green"
},
{
"type": "memory",
"key": "│ ├󰍛",
"keyColor": "green"
},
{
"type": "disk",
"key": "│ ├",
"keyColor": "green"
},
{
"type": "memory",
"key": "└ └󰍛",
"keyColor": "green"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "\u001b[90m┌──────────────────────Software──────────────────────┐"
},
{
"type": "os",
"key": " OS",
"keyColor": "yellow"
},
{
"type": "kernel",
"key": "│ ├",
"keyColor": "yellow"
},
{
"type": "bios",
"key": "│ ├",
"keyColor": "yellow"
},
{
"type": "packages",
"key": "│ ├󰏖",
"keyColor": "yellow"
},
{
"type": "shell",
"key": "└ └",
"keyColor": "yellow"
},
"break",
{
"type": "de",
"key": " DE",
"keyColor": "blue"
},
{
"type": "lm",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "wm",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "wmtheme",
"key": "│ ├󰉼",
"keyColor": "blue"
},
{
"type": "terminal",
"key": "└ └",
"keyColor": "blue"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "\u001b[90m┌─────────────────Uptime / Age / DT──────────────────┐"
},
{
"type": "command",
"key": " OS Age ",
"keyColor": "magenta",
"text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days"
},
{
"type": "uptime",
"key": " Uptime ",
"keyColor": "magenta"
},
{
"type": "datetime",
"key": " DateTime ",
"keyColor": "magenta"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "\u001b[90m┌─────────────────────Networking─────────────────────┐"
},
{
"type": "publicip",
"key": " Public ",
"keyColor": "magenta"
},
{
"type": "localip",
"key": " Local ",
"keyColor": "magenta"
},
{
"type": "dns",
"key": " DNS ",
"keyColor": "magenta"
},
{
"type": "netio",
"key": " Net I/O ",
"keyColor": "magenta"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
{
"type": "colors",
"paddingLeft": 2,
"symbol": "circle"
},
"break",
]
}

21
home/git.nix Normal file
View File

@@ -0,0 +1,21 @@
{ primaryUser, ... }:
{
programs.git = {
enable = true;
userName = "DerGrumpf"; # TODO replace
userEmail = "p.keier@beyerstedt-it.de"; # TODO replace
lfs.enable = true;
ignores = [ "**/.DS_STORE" ];
extraConfig = {
github = {
user = primaryUser;
};
init = {
defaultBranch = "main";
};
};
};
}

13
home/neovim/default.nix Normal file
View File

@@ -0,0 +1,13 @@
{...}:
{
imports = [
./treesitter.nix
];
programs.nixvim = {
enable = true;
defaultEditor = true;
};
}

View File

@@ -0,0 +1,5 @@
{
programs.nixvim.plugins.treesitter = {
enable = true;
};
}

31
home/packages.nix Normal file
View File

@@ -0,0 +1,31 @@
{ pkgs, ... }:
{
home = {
packages = with pkgs; [
# dev tools
curl
wget
vim
htop
tree
ripgrep
gh # Move to git
zoxide # Move to fish
# programming languages
#mise # node, deno, bun, rust, python, etc.
# misc
nil # move to nixvim
biome # move to nixvim
nixfmt-rfc-style # move to nixvim
yt-dlp
ffmpeg
ollama # move to nixvim
# fonts
nerd-fonts.fira-code
nerd-fonts.fira-mono
];
};
}

139
home/shell.nix Normal file
View File

@@ -0,0 +1,139 @@
_: {
programs.kitty = {
enable = true;
themeFile = "Catppuccin-Mocha";
settings = {
confirm_os_window_close = 0;
dynamic_background_opacity = true; # ctrl+shift+a>m/l
enable_audio_bell = false;
mouse_hide_wait = 3.0;
window_padding_width = 10;
background_opacity = 0.8;
background_blur = 5;
tab_bar_min_tabs = 1;
tab_bar_edge = "bottom";
tab_bar_style = "powerline"; # Should be changed to custom
tab_powerline_style = "slanted";
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
symbol_map = let
mappings = [
"U+23FB-U+23FE"
"U+2B58"
"U+E200-U+E2A9"
"U+E0A0-U+E0A3"
"U+E0B0-U+E0BF"
"U+E0C0-U+E0C8"
"U+E0CC-U+E0CF"
"U+E0D0-U+E0D2"
"U+E0D4"
"U+E700-U+E7C5"
"U+F000-U+F2E0"
"U+2665"
"U+26A1"
"U+F400-U+F4A8"
"U+F67C"
"U+E000-U+E00A"
"U+F300-U+F313"
"U+E5FA-U+E62B"
];
in
(builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
};
};
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
la = "ls -la";
".." = "cd ..";
"nix-switch" = "sudo darwin-rebuild switch --flake ~/.config/nix";
};
};
programs.fish = {
enable = true;
shellAliases = {
la = "ls -la";
".." = "cd ..";
"nix-switch" = "sudo darwin-rebuild switch --flake ~/.config/nix";
};
};
programs.starship = {
enable = true;
settings = {
add_newline = true;
command_timeout = 500;
format = "$username$hostname $directory $git_branch$git_status\n$character ";
right_format = "$cmd_duration";
username = {
style_user = "bold #cba6f7";
style_root = "bold #f38ba8";
format = "[](bold #a6e3a1)[$user]($style)";
show_always = true;
};
hostname = {
style = "bold #74c7ec";
format = "[@](bold #fab387)[$hostname]($style)";
ssh_only = false;
};
directory = {
style = "bold #a6e3a1";
truncation_length = 0;
truncation_symbol = "";
format = "[ ](bold #f38ba8)[$path ]($style)";
};
git_branch = {
format = "[$branch]($style)";
style = "bold #f9e2af";
};
# Git status module settings
git_status = {
format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)";
style = "bold #a6e3a1";
conflicted = "";
untracked = "";
modified = "";
staged = "";
renamed = "";
deleted = "";
};
# Command duration module
cmd_duration = {
format = "[$duration]($style)";
style = "bold #cdd6f4";
min_time = 5000; # Only show if command takes longer than 5 seconds
};
# Character module (prompt symbol)
character = {
success_symbol = "[ ](bold #a6e3a1)";
error_symbol = "[ ](bold #f38ba8)";
};
nix_shell = {
format = "[$symbol$state( \($name\))]($style)";
symbol = "U+02744";
style = "bold #89dceb";
};
};
};
home.file.".config/fastfetch/config.jsonc".source = ./fastfetch.jsonc;
}