From 665a701aaa5508707b2fd99e2752166891e2c477 Mon Sep 17 00:00:00 2001 From: Den Afanasyev Date: Sun, 12 Oct 2025 00:38:28 +0300 Subject: [PATCH] refactor: organize hosts configs into dedicated directory - Move and rename host-specific configurations (e.g., wsl to hosts/wsl) - Add home.nix files for mbp and wsl, importing common modules - Update mbp flake.nix path to new hosts/mbp/configuration.nix - Integrate home-manager for user environments on macOS/WSL - Update flake.lock inputs (nixpkgs, home-manager, homebrew) for latest versions - Add README.md with project overview and setup instructions This restructures the repo for multi-host support, improves modularity, and ensures reproducible builds with updated dependencies. --- .DS_Store | Bin 6148 -> 6148 bytes README.md | 7 + flake.lock | 24 ++-- flake.nix | 4 +- {mbp => hosts/mbp}/configuration.nix | 8 +- hosts/mbp/home.nix | 22 +++ {wsl => hosts/wsl}/configuration.nix | 0 hosts/wsl/home.nix | 21 +++ mbp/home.nix | 206 --------------------------- modules/common.nix | 31 ++++ modules/homebrew.nix | 40 ++++++ modules/programs/bat.nix | 7 + modules/programs/eza.nix | 8 ++ modules/programs/fzf.nix | 35 +++++ modules/programs/git.nix | 9 ++ modules/programs/k9s.nix | 52 +++++++ modules/programs/micro.nix | 11 ++ modules/programs/ssh.nix | 8 ++ modules/programs/zoxide.nix | 8 ++ modules/programs/zsh.nix | 53 +++++++ wsl/home.nix | 195 ------------------------- 21 files changed, 331 insertions(+), 418 deletions(-) create mode 100644 README.md rename {mbp => hosts/mbp}/configuration.nix (92%) create mode 100755 hosts/mbp/home.nix rename {wsl => hosts/wsl}/configuration.nix (100%) create mode 100755 hosts/wsl/home.nix delete mode 100755 mbp/home.nix create mode 100644 modules/common.nix create mode 100644 modules/homebrew.nix create mode 100644 modules/programs/bat.nix create mode 100644 modules/programs/eza.nix create mode 100644 modules/programs/fzf.nix create mode 100644 modules/programs/git.nix create mode 100644 modules/programs/k9s.nix create mode 100644 modules/programs/micro.nix create mode 100644 modules/programs/ssh.nix create mode 100644 modules/programs/zoxide.nix create mode 100644 modules/programs/zsh.nix delete mode 100755 wsl/home.nix diff --git a/.DS_Store b/.DS_Store index 3dc951b522710dd44efb64ceb67277fafa1e816f..97ec45114255220dcd2584730ff675a73eda21fc 100644 GIT binary patch delta 71 zcmZoMXfc=|#>CJzu~2NHo+2aT!~knX#>qS^rklk$1X(sVm@;o>=iui6s@N>Z@tt`x Zzlbg;BLf4&0U&0WY{MhHIYwj&GXQf!5NZGb literal 6148 zcmeHKPfrs;6n_Inc0pu;R)J{J*oz57D_OhB@UFCXb)g9aO)9Fv7qchfZrd!jrUTrw3``-rJj)o*GY1rf=?#C-oyuC|{#^7(Ri?sao(6qEuN1yniL8iOsQp#k$`AWs3e&L9| zQZ)L#lFJ=ufqS-ZbGEYPA271MQ1R;AgUb;q=* zGtaWz_jyftifkp$7F;Sa6>QW+EvcFB0f(u~gHX8=C " - "--marker=>" - "--pointer=◆" - "--separator=─" - "--scrollbar=│" - ]; - enableZshIntegration = true; - enable = true; - }; - - eza = { - enableZshIntegration = true; - enable = true; - }; - - bat = { - enable = true; - }; - - zoxide = { - enableZshIntegration = true; - enable = true; - }; - - micro = { - settings = { - colorscheme = "simple"; - scrollbar = true; - }; - enable = true; - }; - - k9s = { - skins = { - transparent = { - k9s = { - body.bgColor = "default"; - prompt.bgColor = "default"; - info.sectionColor = "default"; - dialog = { - bgColor = "default"; - labelFgColor = "default"; - fieldFgColor = "default"; - }; - frame = { - crumbs.bgColor = "default"; - title = { - bgColor = "default"; - counterColor = "default"; - }; - menu.fgColor = "default"; - }; - views = { - charts.bgColor = "default"; - table = { - bgColor = "default"; - header = { - fgColor = "default"; - bgColor = "default"; - }; - }; - xray.bgColor = "default"; - logs = { - bgColor = "default"; - indicator = { - bgColor = "default"; - toggleOnColor = "default"; - toggleOffColor = "default"; - }; - }; - yaml = { - colonColor = "default"; - valueColor = "default"; - }; - }; - }; - }; - }; - enable = true; - - - - }; - - home-manager.enable = true; - }; - -} diff --git a/modules/common.nix b/modules/common.nix new file mode 100644 index 0000000..992aad1 --- /dev/null +++ b/modules/common.nix @@ -0,0 +1,31 @@ +{ pkgs, lib, ... }: + +{ + # Define home options directly if this is a standalone home.nix + # or within config if it's a module + home = { + packages = with pkgs; [ + age + ansible + bat + deploy-rs + fzf-preview + kubectl + kubectx + kubernetes-helm + nerd-fonts.jetbrains-mono + nixfmt-rfc-style + opentofu + sops + talosctl + teleport + zsh-forgit + zsh-fzf-history-search + zsh-fzf-tab + rclone + ]; + stateVersion = "25.11"; + }; + + #nixpkgs.config.allowUnfree = true; # It's better to put this in configuration.nix or a more specific place if it's only meant for certain hosts. +} diff --git a/modules/homebrew.nix b/modules/homebrew.nix new file mode 100644 index 0000000..1b9e8e2 --- /dev/null +++ b/modules/homebrew.nix @@ -0,0 +1,40 @@ +{ config, lib, pkgs, ... }: + +{ + homebrew = { + enable = true; + + onActivation.autoUpdate = true; + onActivation.upgrade = true; + #onActivation.cleanup = "zap"; + + casks = [ + "arc" + "bettermouse" + "blender" + "citrix-workspace" + "cryptomator" + "Discord" + "Element" + "ghostty" + "IINA" + "Keka" + "meta" + "mullvad-vpn" + "obs" + "Obsidian" + "orion" + "Secretive" + "tailscale-app" + "telegram" + "UTM" + "vscodium" + ]; + + masApps = { + "Bitwarden" = 1352778147; + "DropOver" = 1355679052; + "Yubico Authenticator" = 1497506650; + }; + }; +} \ No newline at end of file diff --git a/modules/programs/bat.nix b/modules/programs/bat.nix new file mode 100644 index 0000000..49e8362 --- /dev/null +++ b/modules/programs/bat.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + programs.bat = { + enable = true; + }; +} \ No newline at end of file diff --git a/modules/programs/eza.nix b/modules/programs/eza.nix new file mode 100644 index 0000000..1023f1d --- /dev/null +++ b/modules/programs/eza.nix @@ -0,0 +1,8 @@ +{ config, lib, pkgs, ... }: + +{ + programs.eza = { + enableZshIntegration = true; + enable = true; + }; +} \ No newline at end of file diff --git a/modules/programs/fzf.nix b/modules/programs/fzf.nix new file mode 100644 index 0000000..3e766fb --- /dev/null +++ b/modules/programs/fzf.nix @@ -0,0 +1,35 @@ +{ config, lib, pkgs, ... }: + +{ + programs.fzf = { + colors = { + fg = "-1"; + "fg+" = "#d0d0d0"; + bg = "-1"; + "bg+" = "#262626"; + hl = "#5f87af"; + "hl+" = "#5fd7ff"; + info = "#afaf87"; + marker = "#87ff00"; + prompt = "#d7005f"; + spinner = "#af5fff"; + pointer = "#af5fff"; + header = "#87afaf"; + border = "#262626"; + label = "#aeaeae"; + query = "#d9d9d9"; + }; + defaultOptions = [ + "--border=rounded" + "--border-label" + "--preview-window=border-rounded" + "--prompt=> " + "--marker=>" + "--pointer=◆" + "--separator=─" + "--scrollbar=│" + ]; + enableZshIntegration = true; + enable = true; + }; +} \ No newline at end of file diff --git a/modules/programs/git.nix b/modules/programs/git.nix new file mode 100644 index 0000000..d69b307 --- /dev/null +++ b/modules/programs/git.nix @@ -0,0 +1,9 @@ +{ config, pkgs, lib, ... }: + +{ + programs.git = { + enable = true; + userName = "Den Afanasyev"; + userEmail = "ceo@furry.industries"; + }; +} \ No newline at end of file diff --git a/modules/programs/k9s.nix b/modules/programs/k9s.nix new file mode 100644 index 0000000..140b4f6 --- /dev/null +++ b/modules/programs/k9s.nix @@ -0,0 +1,52 @@ +{ config, lib, pkgs, ... }: +{ + programs.k9s = { + skins = { + transparent = { + k9s = { + body.bgColor = "default"; + prompt.bgColor = "default"; + info.sectionColor = "default"; + dialog = { + bgColor = "default"; + labelFgColor = "default"; + fieldFgColor = "default"; + }; + frame = { + crumbs.bgColor = "default"; + title = { + bgColor = "default"; + counterColor = "default"; + }; + menu.fgColor = "default"; + }; + views = { + charts.bgColor = "default"; + table = { + bgColor = "default"; + header = { + fgColor = "default"; + bgColor = "default"; + }; + }; + xray.bgColor = "default"; + logs = { + bgColor = "default"; + indicator = { + bgColor = "default"; + toggleOnColor = "default"; + toggleOffColor = "default"; + }; + }; + yaml = { + colonColor = "default"; + valueColor = "default"; + }; + }; + }; + }; + }; + enable = true; + + }; +} diff --git a/modules/programs/micro.nix b/modules/programs/micro.nix new file mode 100644 index 0000000..d1624c9 --- /dev/null +++ b/modules/programs/micro.nix @@ -0,0 +1,11 @@ +{ config, lib, pkgs, ... }: + +{ + programs.micro = { + settings = { + colorscheme = "simple"; + scrollbar = true; + }; + enable = true; + }; +} \ No newline at end of file diff --git a/modules/programs/ssh.nix b/modules/programs/ssh.nix new file mode 100644 index 0000000..97f72c6 --- /dev/null +++ b/modules/programs/ssh.nix @@ -0,0 +1,8 @@ +{ config, lib, pkgs, ... }: + +{ + programs.ssh = { + enable = true; + enableDefaultConfig = false; + }; +} \ No newline at end of file diff --git a/modules/programs/zoxide.nix b/modules/programs/zoxide.nix new file mode 100644 index 0000000..2136ae5 --- /dev/null +++ b/modules/programs/zoxide.nix @@ -0,0 +1,8 @@ +{ config, lib, pkgs, ... }: + +{ + programs.zoxide = { + enableZshIntegration = true; + enable = true; + }; +} \ No newline at end of file diff --git a/modules/programs/zsh.nix b/modules/programs/zsh.nix new file mode 100644 index 0000000..b509952 --- /dev/null +++ b/modules/programs/zsh.nix @@ -0,0 +1,53 @@ +{ config, lib, pkgs, ... }: + +{ + programs.zsh = { + enable = true; + enableCompletion = true; + syntaxHighlighting.enable = true; + + prezto = { + prompt = { theme = "powerlevel10k"; }; + enable = true; + }; + + autosuggestion = { + #highlight = "fg=#ff00ff,bg=cyan,bold,underline"; + #strategy = [ "completion" "history" ]; + enable = true; + }; + + plugins = [ + { + name = "fzf-tab"; + src = "${pkgs.zsh-fzf-tab}/share/fzf-tab"; + } + ]; + + history = { + append = true; + expireDuplicatesFirst = true; + }; + + initContent = lib.mkOrder 500 '' + source ~/.p10k.zsh + echo "Hey there raccoon! 🦝🍁" + ''; + localVariables = { + PURE_GIT_PULL = "0"; + TELEPORT_ADD_KEYS_TO_AGENT = "no"; + K9S_SKIN = "transparent"; + }; + + shellAliases = { + ls = "eza"; + cd = "z"; + cat = "bat"; + k = "kubectl"; + m = "micro"; + h = "helm"; + tp = "teleport"; + t = "talosctl"; + }; + }; +} \ No newline at end of file diff --git a/wsl/home.nix b/wsl/home.nix deleted file mode 100755 index 23e654b..0000000 --- a/wsl/home.nix +++ /dev/null @@ -1,195 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - - home = { - packages = with pkgs; [ - rclone - talosctl - bat - teleport - ansible - kubectl - opentofu - nerd-fonts.jetbrains-mono - age - sops - deploy-rs - kubernetes-helm - kubectx - fzf-preview - zsh-fzf-tab - zsh-forgit - zsh-fzf-history-search - ]; - #sessionVariables = { - # SOPS_AGE_KEY_FILE = "/Users/duumxh/.config/sops/age/keys.txt"; - #}; - stateVersion = "25.11"; - }; - - programs = { - git = { - enable = true; - userName = "Den Afanasyev"; - userEmail = "ceo@furry.industries"; - extraConfig = { core.sshCommand = "ssh.exe"; }; - }; - - zsh = { - enable = true; - enableCompletion = true; - syntaxHighlighting.enable = true; - - prezto = { - prompt = { - theme = "powerlevel10k"; - }; - enable = true; - }; - - autosuggestion = { - #highlight = "fg=#ff00ff,bg=cyan,bold,underline"; - #strategy = [ "completion" "history" ]; - enable = true; - }; - - plugins = [ - { - name = "fzf-tab"; - src = "${pkgs.zsh-fzf-tab}/share/fzf-tab"; - } - ]; - - history = { - append = true; - expireDuplicatesFirst = true; - }; - initContent = lib.mkOrder 500 '' - source ~/.p10k.zsh - export TELEPORT_ADD_KEYS_TO_AGENT=no - export K9S_SKIN="transparent" - echo "Hey there raccoon!" - ''; - #localVariables = {}; - - shellAliases = { - ssh-add = "ssh-add.exe"; - ssh = "ssh-add.exe -l > /dev/null || ssh-add.exe && ssh.exe"; - ls = "eza"; - cd = "z"; - cat = "bat"; - k = "kubectl"; - m = "micro"; - h = "helm"; - t = "teleport"; - tctl = "talosctl"; - }; - }; - - fzf = { - colors = { - fg = "-1"; - "fg+" = "#d0d0d0"; - bg = "-1"; - "bg+" = "#262626"; - hl = "#5f87af"; - "hl+" = "#5fd7ff"; - info = "#afaf87"; - marker = "#87ff00"; - prompt = "#d7005f"; - spinner = "#af5fff"; - pointer = "#af5fff"; - header = "#87afaf"; - border = "#262626"; - label = "#aeaeae"; - query = "#d9d9d9"; - }; - defaultOptions = [ - "--border=rounded" - "--border-label" - "--preview-window=border-rounded" - "--prompt=> " - "--marker=>" - "--pointer=◆" - "--separator=─" - "--scrollbar=│" - ]; - enableZshIntegration = true; - enable = true; - }; - - eza = { - enableZshIntegration = true; - enable = true; - }; - - bat = { - enable = true; - }; - - zoxide = { - enableZshIntegration = true; - enable = true; - }; - - micro = { - settings = { - colorscheme = "simple"; - scrollbar = true; - }; - enable = true; - }; - - k9s = { - skins = { - transparent = { - k9s = { - body.bgColor = "default"; - prompt.bgColor = "default"; - info.sectionColor = "default"; - dialog = { - bgColor = "default"; - labelFgColor = "default"; - fieldFgColor = "default"; - }; - frame = { - crumbs.bgColor = "default"; - title = { - bgColor = "default"; - counterColor = "default"; - }; - menu.fgColor = "default"; - }; - views = { - charts.bgColor = "default"; - table = { - bgColor = "default"; - header = { - fgColor = "default"; - bgColor = "default"; - }; - }; - xray.bgColor = "default"; - logs = { - bgColor = "default"; - indicator = { - bgColor = "default"; - toggleOnColor = "default"; - toggleOffColor = "default"; - }; - }; - yaml = { - colonColor = "default"; - valueColor = "default"; - }; - }; - }; - }; - }; - enable = true; - }; - - home-manager.enable = true; - }; -}