430 lines
10 KiB
Nix
430 lines
10 KiB
Nix
{
|
|
pkgs,
|
|
nixosConfig,
|
|
config,
|
|
lib,
|
|
mylib,
|
|
username,
|
|
inputs,
|
|
...
|
|
}: {
|
|
config = let
|
|
inherit (config.homemodules) color;
|
|
in {
|
|
paths = rec {
|
|
nixflake = "${config.home.homeDirectory}/NixFlake";
|
|
dotfiles = "${nixflake}/config";
|
|
};
|
|
|
|
homemodules = {
|
|
color = {
|
|
scheme = "catppuccin-mocha";
|
|
accent = "mauve";
|
|
accentHl = "pink";
|
|
accentDim = "lavender";
|
|
accentText = "base";
|
|
|
|
font = "MonoLisa Alt Script";
|
|
};
|
|
|
|
fish.enable = true;
|
|
|
|
git = {
|
|
enable = true;
|
|
|
|
userName = "Christoph Urlacher";
|
|
userEmail = "christoph.urlacher@protonmail.com";
|
|
signCommits = true;
|
|
};
|
|
|
|
kitty.enable = true;
|
|
lazygit.enable = true;
|
|
|
|
neovim = {
|
|
enable = true;
|
|
alias = true;
|
|
neovide = true;
|
|
};
|
|
|
|
yazi.enable = true;
|
|
};
|
|
|
|
home = {
|
|
inherit username;
|
|
|
|
homeDirectory = "/Users/${config.home.username}";
|
|
enableNixpkgsReleaseCheck = true;
|
|
|
|
packages = with pkgs; [
|
|
(ripgrep.override {withPCRE2 = true;})
|
|
gdu
|
|
duf
|
|
sd
|
|
fclones
|
|
tealdeer
|
|
killall
|
|
atool
|
|
exiftool
|
|
ouch
|
|
ffmpegthumbnailer
|
|
mediainfo
|
|
file
|
|
unrar
|
|
p7zip
|
|
unzip
|
|
progress
|
|
tokei
|
|
nix-search-tv
|
|
nix-tree
|
|
just
|
|
|
|
ffmpeg-full
|
|
imagemagick
|
|
|
|
poppler-utils
|
|
pdf2svg
|
|
pandoc
|
|
|
|
dig
|
|
tcpdump
|
|
gping
|
|
curlie
|
|
wget
|
|
doggo
|
|
rsync
|
|
rclone
|
|
httpie
|
|
|
|
inputs.nps.packages.${pkgs.stdenv.hostPlatform.system}.default
|
|
|
|
cachix
|
|
|
|
# GUI
|
|
ripdrag
|
|
jellyfin-tui
|
|
];
|
|
|
|
stateVersion = "25.11";
|
|
};
|
|
|
|
# TODO: Deduplicate with other configs
|
|
programs = {
|
|
home-manager.enable = true;
|
|
|
|
bat = {
|
|
enable = true;
|
|
|
|
themes = {
|
|
catppuccin-latte = {
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "catppuccin";
|
|
repo = "bat";
|
|
rev = "ba4d16880d63e656acced2b7d4e034e4a93f74b1";
|
|
sha256 = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw=";
|
|
};
|
|
file = "Catppuccin-latte.tmTheme";
|
|
};
|
|
};
|
|
|
|
config = {
|
|
theme = "catppuccin-latte";
|
|
};
|
|
};
|
|
|
|
cava = {
|
|
enable = true;
|
|
|
|
settings = {
|
|
general = {
|
|
framerate = 60; # default 60
|
|
autosens = 1; # default 1
|
|
sensitivity = 100; # default 100
|
|
lower_cutoff_freq = 50; # not passed to cava if not provided
|
|
higher_cutoff_freq = 10000; # not passed to cava if not provided
|
|
};
|
|
|
|
smoothing = {
|
|
noise_reduction = 77; # default 77
|
|
monstercat = false; # default false
|
|
waves = false; # default false
|
|
};
|
|
|
|
color = {
|
|
# https://github.com/catppuccin/cava/blob/main/themes/latte-transparent.cava
|
|
gradient = 1;
|
|
|
|
gradient_color_1 = "'${color.hexS.teal}'";
|
|
gradient_color_2 = "'${color.hexS.sky}'";
|
|
gradient_color_3 = "'${color.hexS.sapphire}'";
|
|
gradient_color_4 = "'${color.hexS.blue}'";
|
|
gradient_color_5 = "'${color.hexS.mauve}'";
|
|
gradient_color_6 = "'${color.hexS.pink}'";
|
|
gradient_color_7 = "'${color.hexS.maroon}'";
|
|
gradient_color_8 = "'${color.hexS.red}'";
|
|
};
|
|
};
|
|
};
|
|
|
|
direnv = {
|
|
enable = true;
|
|
nix-direnv.enable = true;
|
|
};
|
|
|
|
eza = {
|
|
enable = true;
|
|
enableFishIntegration = config.homemodules.fish.enable;
|
|
};
|
|
|
|
fastfetch = {
|
|
enable = true;
|
|
|
|
settings = {
|
|
logo = {
|
|
padding = {
|
|
top = 4;
|
|
left = 1;
|
|
right = 2;
|
|
};
|
|
};
|
|
|
|
display = {
|
|
separator = "";
|
|
key.width = 17;
|
|
};
|
|
|
|
# Box Drawing: ╭ ─ ╮ ╰ ╯ │
|
|
modules = [
|
|
# Title
|
|
{
|
|
type = "title";
|
|
format = "{#1}╭─── {#}{user-name-colored}";
|
|
}
|
|
|
|
# System Information
|
|
{
|
|
type = "custom";
|
|
format = "{#1}│ {#}System Information";
|
|
}
|
|
{
|
|
type = "os";
|
|
key = "{#separator}│ {#keys} OS";
|
|
}
|
|
{
|
|
type = "kernel";
|
|
key = "{#separator}│ {#keys} Kernel";
|
|
}
|
|
{
|
|
type = "bootmgr";
|
|
key = "{#separator}│ {#keys} BootMGR";
|
|
}
|
|
{
|
|
type = "uptime";
|
|
key = "{#separator}│ {#keys} Uptime";
|
|
}
|
|
{
|
|
type = "packages";
|
|
key = "{#separator}│ {#keys} Packages";
|
|
# format = "{all}";
|
|
}
|
|
{
|
|
type = "custom";
|
|
format = "{#1}│";
|
|
}
|
|
|
|
# Desktop Environment
|
|
{
|
|
type = "custom";
|
|
format = "{#1}│ {#}Desktop Environment";
|
|
}
|
|
{
|
|
type = "de";
|
|
key = "{#separator}│ {#keys} DE";
|
|
}
|
|
{
|
|
type = "wm";
|
|
key = "{#separator}│ {#keys} WM";
|
|
}
|
|
{
|
|
type = "wmtheme";
|
|
key = "{#separator}│ {#keys} Theme";
|
|
}
|
|
{
|
|
type = "display";
|
|
key = "{#separator}│ {#keys} Resolution";
|
|
}
|
|
{
|
|
type = "shell";
|
|
key = "{#separator}│ {#keys} Shell";
|
|
}
|
|
{
|
|
type = "terminalfont";
|
|
key = "{#separator}│ {#keys} Font";
|
|
}
|
|
{
|
|
type = "icons";
|
|
key = "{#separator}│ {#keys} Icons";
|
|
}
|
|
{
|
|
type = "cursor";
|
|
key = "{#separator}│ {#keys} Cursor";
|
|
}
|
|
{
|
|
type = "custom";
|
|
format = "{#1}│";
|
|
}
|
|
|
|
# Hardware Information
|
|
{
|
|
type = "custom";
|
|
format = "{#1}│ {#}Hardware Information";
|
|
}
|
|
{
|
|
type = "board";
|
|
key = "{#separator}│ {#keys} Board";
|
|
}
|
|
{
|
|
type = "cpu";
|
|
key = "{#separator}│ {#keys} CPU";
|
|
}
|
|
{
|
|
type = "gpu";
|
|
key = "{#separator}│ {#keys} GPU";
|
|
}
|
|
{
|
|
type = "memory";
|
|
key = "{#separator}│ {#keys} Memory";
|
|
}
|
|
# {
|
|
# type = "disk";
|
|
# key = "{#separator}│ {#keys} Disk (/)";
|
|
# folders = "/";
|
|
# }
|
|
# {
|
|
# type = "disk";
|
|
# key = "{#separator}│ {#keys} Disk (~/Games)";
|
|
# folders = "/home/christoph/Games";
|
|
# }
|
|
{
|
|
type = "btrfs";
|
|
key = "{#separator}│ {#keys} BTRFS";
|
|
}
|
|
{
|
|
type = "custom";
|
|
format = "{#1}│";
|
|
}
|
|
|
|
# Colors Footer
|
|
{
|
|
type = "colors";
|
|
key = "{#separator}╰─── {#1}";
|
|
keyWidth = 6;
|
|
symbol = "circle";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
fd.enable = true;
|
|
|
|
fzf = {
|
|
enable = true;
|
|
enableFishIntegration = config.homemodules.fish.enable;
|
|
};
|
|
|
|
navi = {
|
|
enable = true;
|
|
enableFishIntegration = config.homemodules.fish.enable;
|
|
};
|
|
|
|
ssh = {
|
|
enable = true;
|
|
enableDefaultConfig = false;
|
|
|
|
matchBlocks = {
|
|
"*" = {
|
|
forwardAgent = false;
|
|
addKeysToAgent = "yes";
|
|
compression = true;
|
|
serverAliveInterval = 0;
|
|
serverAliveCountMax = 3;
|
|
hashKnownHosts = false;
|
|
userKnownHostsFile = "~/.ssh/known_hosts";
|
|
controlMaster = "no";
|
|
controlPath = "~/.ssh/master-%r@%n:%p";
|
|
controlPersist = "no";
|
|
};
|
|
"nixinator" = {
|
|
user = "christoph";
|
|
hostname = "192.168.86.50";
|
|
};
|
|
"servenix" = {
|
|
user = "christoph";
|
|
hostname = "local.chriphost.de";
|
|
};
|
|
"thinknix" = {
|
|
user = "christoph";
|
|
hostname = "think.chriphost.de";
|
|
};
|
|
"vps" = {
|
|
user = "root";
|
|
hostname = "vps.chriphost.de";
|
|
};
|
|
"mars" = {
|
|
user = "smchurla";
|
|
hostname = "mars.cs.tu-dortmund.de";
|
|
serverAliveInterval = 60;
|
|
localForwards = [
|
|
{
|
|
# Resultbrowser
|
|
bind.port = 22941;
|
|
host.address = "127.0.0.1";
|
|
host.port = 22941;
|
|
}
|
|
{
|
|
# Mysql
|
|
bind.port = 3306;
|
|
host.address = "127.0.0.1";
|
|
host.port = 3306;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
tmux = {
|
|
enable = true;
|
|
|
|
clock24 = true;
|
|
escapeTime = 0; # Delay after pressing escape
|
|
# keyMode = "vi";
|
|
terminal = "xterm-256color";
|
|
|
|
plugins = with pkgs; [
|
|
{
|
|
plugin = tmuxPlugins.catppuccin;
|
|
extraConfig = ''
|
|
set -g @plugin 'catppuccin/tmux'
|
|
set -g @catppuccin_flavour 'latte' # or frappe, macchiato, mocha
|
|
'';
|
|
}
|
|
];
|
|
|
|
extraConfig = ''
|
|
set -g default-terminal "xterm-256color"
|
|
set-option -ga terminal-overrides ",xterm-256color:Tc"
|
|
'';
|
|
};
|
|
|
|
yt-dlp.enable = true;
|
|
|
|
zoxide = {
|
|
enable = true;
|
|
enableFishIntegration = config.homemodules.fish.enable;
|
|
};
|
|
};
|
|
|
|
services = {
|
|
};
|
|
};
|
|
}
|