From fceb1282f0528625aedf3d0de99b30c2b5638af2 Mon Sep 17 00:00:00 2001 From: Random936 Date: Sun, 9 Feb 2025 10:47:35 -0800 Subject: [PATCH] Restructured nixos home-manager config --- flake.nix | 4 + home/darwin.nix | 2 + home/headful-nixos.nix | 55 ++--------- home/headless-nixos.nix | 10 +- home/modules/apps.nix | 10 -- home/modules/development.nix | 11 +++ home/modules/gui-apps.nix | 41 ++++++++ home/modules/linux-only-utils.nix | 6 ++ home/modules/networking.nix | 13 +++ home/modules/tmux.nix | 9 ++ home/modules/utils.nix | 21 ++++ home/modules/zsh.nix | 154 ++++++++++++++++-------------- home/shared.nix | 53 +--------- 13 files changed, 203 insertions(+), 186 deletions(-) delete mode 100644 home/modules/apps.nix create mode 100644 home/modules/development.nix create mode 100644 home/modules/gui-apps.nix create mode 100644 home/modules/linux-only-utils.nix create mode 100644 home/modules/networking.nix create mode 100644 home/modules/tmux.nix create mode 100644 home/modules/utils.nix diff --git a/flake.nix b/flake.nix index 25ae4d7..7568e42 100644 --- a/flake.nix +++ b/flake.nix @@ -67,6 +67,9 @@ extraSpecialArgs.user = "random"; modules = [ ./home/headful-nixos.nix + ./home/modules/development.nix + ./home/modules/gui-apps.nix + ./home/modules/hacking.nix ]; }; @@ -83,6 +86,7 @@ extraSpecialArgs.user = "sampledb"; modules = [ ./home/headless-nixos.nix + ./home/modules/development.nix ]; }; diff --git a/home/darwin.nix b/home/darwin.nix index 33fe15b..6ffc630 100644 --- a/home/darwin.nix +++ b/home/darwin.nix @@ -10,6 +10,8 @@ imports = [ ./shared.nix + ./modules/utils.nix + ./modules/development.nix ./modules/sketchybar.nix ./modules/aerospace.nix ./modules/neovim.nix diff --git a/home/headful-nixos.nix b/home/headful-nixos.nix index edf85da..98370a0 100644 --- a/home/headful-nixos.nix +++ b/home/headful-nixos.nix @@ -5,58 +5,23 @@ homeDirectory = "/home/${user}"; }; - imports = [ - ./shared.nix - ./modules/hacking.nix + imports = [ + ./shared.nix + ./modules/utils.nix + ./modules/linux-only-utils.nix + ./modules/networking.nix ./modules/neovim.nix ./modules/emacs.nix - ./modules/apps.nix + ./modules/tmux.nix ./modules/zsh.nix ]; - home.packages = with pkgs; [ - feh - ncdu - dconf - docker - barrier - firefox - flameshot - traceroute - pavucontrol - virt-viewer - bitwarden-cli - wireguard-tools - nextcloud-client - protonmail-desktop - nvtopPackages.full - ]; - services.emacs.enable = true; - dconf = { - enable = true; - settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - }; - }; - }; - - gtk = { - enable = true; - theme = { - name = "Materia-dark"; - package = pkgs.materia-theme; - }; - }; - - programs.obs-studio = { - enable = true; - plugins = with pkgs.obs-studio-plugins; [ - obs-backgroundremoval - ]; - }; + home.packages = with pkgs; [ + bitwarden-cli + wireguard-tools + ]; home.file = { ".Xresources".source = ../dotfiles/.Xresources; diff --git a/home/headless-nixos.nix b/home/headless-nixos.nix index 18d6468..635c07c 100644 --- a/home/headless-nixos.nix +++ b/home/headless-nixos.nix @@ -7,13 +7,11 @@ imports = [ ./shared.nix + ./modules/utils.nix + ./modules/linux-only-utils.nix + ./modules/networking.nix ./modules/neovim.nix + ./modules/tmux.conf ./modules/zsh.nix ]; - - home.packages = with pkgs; [ - ncdu - traceroute - nvtopPackages.full - ]; } diff --git a/home/modules/apps.nix b/home/modules/apps.nix deleted file mode 100644 index fea5bbb..0000000 --- a/home/modules/apps.nix +++ /dev/null @@ -1,10 +0,0 @@ -{pkgs, ... }: { - home.packages = with pkgs; [ - vlc - typora - zoom-us - discord - libreoffice - bitwarden-desktop - ]; -} diff --git a/home/modules/development.nix b/home/modules/development.nix new file mode 100644 index 0000000..a687cea --- /dev/null +++ b/home/modules/development.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: { + home.packages = with pkgs [ + # Dev tools + clang + clang-tools + cargo + python3 + gnumake + ansible + ]; +} diff --git a/home/modules/gui-apps.nix b/home/modules/gui-apps.nix new file mode 100644 index 0000000..a51b54e --- /dev/null +++ b/home/modules/gui-apps.nix @@ -0,0 +1,41 @@ +{pkgs, ... }: { + home.packages = with pkgs; [ + feh + vlc + firefox + zoom-us + discord + flameshot + libreoffice + pavucontrol + virt-viewer + nextcloud-client + protonmail-desktop + bitwarden-desktop + ]; + + programs.obs-studio = { + enable = true; + plugins = with pkgs.obs-studio-plugins; [ + obs-backgroundremoval + ]; + }; + + dconf = { + enable = true; + settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + }; + }; + + gtk = { + enable = true; + theme = { + name = "Materia-dark"; + package = pkgs.materia-theme; + }; + }; + +} diff --git a/home/modules/linux-only-utils.nix b/home/modules/linux-only-utils.nix new file mode 100644 index 0000000..974218f --- /dev/null +++ b/home/modules/linux-only-utils.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: { + home.packages = with pkgs [ + ncdu + nvtopPackages.full + ]; +} diff --git a/home/modules/networking.nix b/home/modules/networking.nix new file mode 100644 index 0000000..884db28 --- /dev/null +++ b/home/modules/networking.nix @@ -0,0 +1,13 @@ + +{ pkgs, ... }: { + home.packages = with pkgs; [ + # Network tools + dig + iftop + iperf + tcpdump + ethtool + traceroute + ]; +} + diff --git a/home/modules/tmux.nix b/home/modules/tmux.nix new file mode 100644 index 0000000..a0bec1b --- /dev/null +++ b/home/modules/tmux.nix @@ -0,0 +1,9 @@ +{ pkgs, lib, config, ... }: let + mypkgs = import ../../packages/all-packages.nix { inherit pkgs lib config }; +in { + home.packages = with pkgs [ tmux ]; + home.file = { + "tmux/plugins/tpm".source = "${mypkgs.tpm}"; + ".tmux.conf".source = ../../dotfiles/.tmux.conf; + }; +} diff --git a/home/modules/utils.nix b/home/modules/utils.nix new file mode 100644 index 0000000..87cd14b --- /dev/null +++ b/home/modules/utils.nix @@ -0,0 +1,21 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + # Nix specific utilities + manix + nix-tree + + # Utilities + jq + bc + file + wget + curl + btop + p7zip + sshpass + ripgrep + openvpn + pciutils + fastfetch + ]; +} diff --git a/home/modules/zsh.nix b/home/modules/zsh.nix index d89e134..3ad0254 100644 --- a/home/modules/zsh.nix +++ b/home/modules/zsh.nix @@ -4,80 +4,88 @@ meslo-lgs-nf ]; - programs.zsh = { - enable = true; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - history.size = 100000000; - - shellAliases = { - cd = "z"; - ls = "eza"; - awkuniq = "sort | uniq"; - histogram = "awkuniq -c | sort -nr"; - json-less = "jq -C . | less -R"; - csv2json = "python -c 'import csv, json, sys; print(json.dumps([dict(r) for r in csv.DictReader(sys.stdin)]))'"; - - # Server user/address aliases - r330-idrac = "bw-ssh iDRAC root@192.168.100.11 racadm"; - r730xd-idrac = "bw-ssh iDRAC root@192.168.100.12 racadm"; - ideapad = "ssh root@192.168.100.20"; - r330-proxmox = "ssh root@192.168.100.21"; - r730xd-proxmox = "ssh root@192.168.100.22"; - r330-media = "ssh media@192.168.100.40"; - r330-logging = "ssh logging@192.168.100.41"; - sampledb-dev = "ssh sampledb@192.168.100.42"; - mindforge = "ssh mindforge@mindforge.randomctf.local"; - - # Nix Specific aliases - update-darwin = "darwin-rebuild switch --flake ~/dotfiles"; - update-config = "sudo nixos-rebuild switch --flake ~/dotfiles"; - update-home = "home-manager switch --flake ~/dotfiles"; - update-all = "update-config && update-home"; - }; - - initExtraBeforeCompInit = '' - [[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return - ''; - - initExtra = '' - export PATH=$PATH:~/.cargo/bin - function .. { cd .. } - function ... { cd ../.. } - function .... { cd ../../.. } - function ..... { cd ../../../../.. } - function ...... { cd ../../../../../.. } - function ....... { cd ../../../../../../.. } - - if [[ "$(uname)" == "Darwin" ]]; then - source <(/opt/homebrew/bin/brew shellenv) - fi - - if [[ -n "$SSH_CONNECTION" && "$TERM" == "ghostty" ]]; then - export TERM="xterm-256color" - fi - ''; - - plugins = [ - { - name = "custom-functions"; - src = ../../dotfiles; - file = ".functions.zsh"; - } - { - name = "powerlevel10k-config"; - src = ../../dotfiles; - file = ".p10k.zsh"; - } - ]; - - zplug = { + programs = { + zoxide.enable = true; + eza.enable = true; + fzf.enable = true; + zsh = { enable = true; - plugins = [ - { name = "romkatv/powerlevel10k"; tags = [ as:theme depth:1 ]; } - ]; - }; + enableCompletion = true; + autosuggestion.enable = true; + syntaxHighlighting.enable = true; + history.size = 100000000; + shellAliases = { + cd = "z"; + ls = "eza"; + awkuniq = "sort | uniq"; + histogram = "awkuniq -c | sort -nr"; + json-less = "jq -C . | less -R"; + csv2json = "python -c 'import csv, json, sys; print(json.dumps([dict(r) for r in csv.DictReader(sys.stdin)]))'"; + + # Server user/address aliases + r330-idrac = "bw-ssh iDRAC root@192.168.100.11 racadm"; + r730xd-idrac = "bw-ssh iDRAC root@192.168.100.12 racadm"; + ideapad = "ssh root@192.168.100.20"; + r330-proxmox = "ssh root@192.168.100.21"; + r730xd-proxmox = "ssh root@192.168.100.22"; + r330-media = "ssh media@192.168.100.40"; + r330-logging = "ssh logging@192.168.100.41"; + sampledb-dev = "ssh sampledb@192.168.100.42"; + mindforge = "ssh mindforge@mindforge.randomctf.local"; + + # Nix Specific aliases + update-darwin = "darwin-rebuild switch --flake ~/dotfiles"; + update-config = "sudo nixos-rebuild switch --flake ~/dotfiles"; + update-home = "home-manager switch --flake ~/dotfiles"; + update-all = "update-config && update-home"; + }; + + initExtraBeforeCompInit = '' + [[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return + ''; + + initExtra = '' + export PATH=$PATH:~/.cargo/bin + function .. { cd .. } + function ... { cd ../.. } + function .... { cd ../../.. } + function ..... { cd ../../../../.. } + function ...... { cd ../../../../../.. } + function ....... { cd ../../../../../../.. } + + if [[ "$(uname)" == "Darwin" ]]; then + source <(/opt/homebrew/bin/brew shellenv) + fi + + if [[ -n "$SSH_CONNECTION" && "$TERM" == "ghostty" ]]; then + export TERM="xterm-256color" + fi + ''; + + plugins = [ + { + name = "custom-functions"; + src = ../../dotfiles; + file = ".functions.zsh"; + } + { + name = "powerlevel10k-config"; + src = ../../dotfiles; + file = ".p10k.zsh"; + } + ]; + + zplug = { + enable = true; + plugins = [ + { name = "romkatv/powerlevel10k"; tags = [ as:theme depth:1 ]; } + ]; + }; + }; }; + + home.file = { + ".functions.zsh".source ../../dotfiles/.functions.zsh; + } } diff --git a/home/shared.nix b/home/shared.nix index 25afc45..de96392 100644 --- a/home/shared.nix +++ b/home/shared.nix @@ -1,55 +1,10 @@ -{ lib, config, pkgs, ... }: -let - mypkgs = import ../packages/all-packages.nix { - inherit pkgs lib config; - }; -in { +{ lib, config, pkgs, ... }: { nixpkgs.config.allowUnfree = true; fonts.fontconfig.enable = true; - home.packages = with pkgs; [ - # Nix specific utilities - manix - nix-tree - - # Utilities - jq - bc - file - wget - curl - tmux - btop - iftop - p7zip - sshpass - ripgrep - openvpn - pciutils - fastfetch - - # Network tools - dig - iperf - tcpdump - ethtool - - # Dev tools - clang - clang-tools - cargo - python3 - gnumake - ansible - ]; - programs = { home-manager.enable = true; - zoxide.enable = true; - eza.enable = true; - fzf.enable = true; - git = { enable = true; userName = "Random936"; @@ -57,11 +12,5 @@ in { }; }; - home.file = { - ".functions.zsh".source = ../dotfiles/.functions.zsh; - ".tmux/plugins/tpm".source = "${mypkgs.tpm}"; - ".tmux.conf".source = ../dotfiles/.tmux.conf; - }; - home.stateVersion = "24.05"; }