diff --git a/home/desktop/gtk.nix b/home/desktop/gtk.nix index 92f07f5..67ac2f6 100644 --- a/home/desktop/gtk.nix +++ b/home/desktop/gtk.nix @@ -8,12 +8,6 @@ in packages = with pkgs; [ adwaita-icon-theme ]; - #pointerCursor = { - # gtk.enable = true; - # name = "catppuccin-mocha-sapphire-cursors"; - # package = pkgs.catppuccin-cursors.mochaSapphire; - # size = 24; - #}; file = { ".config/gtk-4.0/gtk.css".source = "${theme}/share/themes/${theme_name}/gtk-4.0/gtk.css"; ".config/gtk-4.0/gtk-dark.css".source = "${theme}/share/themes/${theme_name}/gtk-4.0/gtk-dark.css"; diff --git a/home/desktop/waybar/default.nix b/home/desktop/waybar/default.nix index e2784f2..7770571 100644 --- a/home/desktop/waybar/default.nix +++ b/home/desktop/waybar/default.nix @@ -13,12 +13,14 @@ // (import ./dual.nix { inherit compositor; }) ); - home.packages = lib.mkIf (!pkgs.stdenv.isDarwin) (with pkgs; [ cava ]); + home = { + packages = lib.mkIf (!pkgs.stdenv.isDarwin) (with pkgs; [ cava ]); - home.file = lib.mkIf (!pkgs.stdenv.isDarwin) { - ".config/waybar" = { - source = ./configs; - recursive = true; + file = lib.mkIf (!pkgs.stdenv.isDarwin) { + ".config/waybar" = { + source = ./configs; + recursive = true; + }; }; }; } diff --git a/home/desktop/waybar/niri-wm.nix b/home/desktop/waybar/niri-wm.nix deleted file mode 100644 index ac653aa..0000000 --- a/home/desktop/waybar/niri-wm.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - widgets = { - "niri/workspaces" = { - format = "{icon}"; - format-icons = { - default = ""; - active = ""; - }; - }; - "custom/swaync" = { - tooltip = false; - format = "{icon}"; - format-icons = { - notification = ""; - none = " "; - dnd-notification = ""; - dnd-none = " "; - inhibited-notification = ""; - inhibited-none = " "; - dnd-inhibited-notification = ""; - dnd-inhibited-none = " "; - }; - return-type = "json"; - exec-if = "which swaync-client"; - exec = "swaync-client -swb"; - on-click = "swaync-client -t -sw"; - on-click-right = "swaync-client -d -sw"; - escape = true; - }; - }; -} diff --git a/home/floorp/default.nix b/home/floorp/default.nix index 049175c..2c702fa 100644 --- a/home/floorp/default.nix +++ b/home/floorp/default.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs, primaryUser, ... }: let addons = pkgs.nur.repos.rycee.firefox-addons; readJson = path: builtins.readFile path; @@ -22,6 +22,10 @@ let }; in { + home.persistence."/persist/home/${primaryUser}".directories = [ + ".mozilla/firefox/${primaryUser}" + ]; + programs.floorp = { enable = true; diff --git a/home/impermanence.nix b/home/impermanence.nix index d266696..949586c 100644 --- a/home/impermanence.nix +++ b/home/impermanence.nix @@ -4,13 +4,10 @@ hideMounts = true; directories = [ ".config/nix" - ".local/share/zoxide" "Documents" "Downloads" "Pictures" ]; - files = [ - ".local/share/fish/fish_history" - ]; + }; } diff --git a/home/nixcord.nix b/home/nixcord.nix index e63dabb..fa77c8f 100644 --- a/home/nixcord.nix +++ b/home/nixcord.nix @@ -1,9 +1,18 @@ -{ lib, inputs, ... }: +{ + lib, + inputs, + primaryUser, + ... +}: { imports = [ inputs.nixcord.homeModules.nixcord ]; + home.persistence."/persist/home/${primaryUser}".directories = [ + ".config/vesktop" + ]; + programs.nixcord = { enable = true; discord = lib.mkForce { enable = false; }; diff --git a/home/obsidian.nix b/home/obsidian.nix index bd3066d..60bea7b 100644 --- a/home/obsidian.nix +++ b/home/obsidian.nix @@ -2,6 +2,7 @@ config, pkgs, lib, + primaryUser, ... }: let @@ -20,26 +21,32 @@ in }; }; - home.packages = with pkgs; [ - git - git-lfs - openssh - ]; + home = { + packages = with pkgs; [ + git + git-lfs + openssh + ]; - home.activation.obsidianVault = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - export PATH="${gitBin}:${gitLfsBin}:$PATH" - export GIT_SSH_COMMAND="${sshBinary} -o StrictHostKeyChecking=accept-new" - export GIT_LFS_SKIP_SMUDGE=1 + persistence."/persist/home/${primaryUser}".directories = [ + "Notes" + ]; - if [ ! -d "${vaultPath}/.git" ]; then - echo "Cloning Obsidian vault (LFS objects will be pulled separately)..." - ${gitBin}/git clone "${vaultRepo}" "${vaultPath}" - ${gitLfsBin}/git-lfs install --local "${vaultPath}" - ${gitBin}/git -C "${vaultPath}" lfs pull - else - echo "Pulling latest changes for Obsidian vault..." - ${gitBin}/git -C "${vaultPath}" pull - ${gitBin}/git -C "${vaultPath}" lfs pull - fi - ''; + activation.obsidianVault = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + export PATH="${gitBin}:${gitLfsBin}:$PATH" + export GIT_SSH_COMMAND="${sshBinary} -o StrictHostKeyChecking=accept-new" + export GIT_LFS_SKIP_SMUDGE=1 + + if [ ! -d "${vaultPath}/.git" ]; then + echo "Cloning Obsidian vault (LFS objects will be pulled separately)..." + ${gitBin}/git clone "${vaultRepo}" "${vaultPath}" + ${gitLfsBin}/git-lfs install --local "${vaultPath}" + ${gitBin}/git -C "${vaultPath}" lfs pull + else + echo "Pulling latest changes for Obsidian vault..." + ${gitBin}/git -C "${vaultPath}" pull + ${gitBin}/git -C "${vaultPath}" lfs pull + fi + ''; + }; } diff --git a/home/shell.nix b/home/shell.nix index db5680b..6f0a505 100644 --- a/home/shell.nix +++ b/home/shell.nix @@ -2,26 +2,43 @@ pkgs, isDarwin, lib, + primaryUser, ... }: { - home.packages = with pkgs; [ - eza # ls replacement - tdf # terminal pdf viewer - jq # json parser - fastfetch # system stats - tabiew # Table viewer - glow # MD Viewer - fd # find alternative - bat # cat alternative - ripgrep # grep alternative - dnsutils + home = { + packages = with pkgs; [ + eza # ls replacement + tdf # terminal pdf viewer + jq # json parser + fastfetch # system stats + tabiew # Table viewer + glow # MD Viewer + fd # find alternative + bat # cat alternative + ripgrep # grep alternative + dnsutils - # Fun stuff - zoxide - lolcat - cmatrix - ]; + # Fun stuff + zoxide + lolcat + cmatrix + ]; + + persistence = lib.mkIf (!isDarwin) { + "/persist/home/${primaryUser}" = { + directories = [ ".local/share/zoxide" ]; + files = [ ".local/share/fish/fish_history" ]; + }; + }; + + file = { + ".config/fastfetch/config.jsonc".source = ./fastfetch.jsonc; + ".config/tabiew/theme.toml".source = ./tabiew.toml; + ".config/kitty/tab_bar.py".source = ./tab_bar.py; + ".hushlogin" = lib.mkIf isDarwin { text = ""; }; # Suppress Login + }; + }; programs = { kitty = { @@ -243,30 +260,4 @@ }; }; - home = { - file = { - ".config/fastfetch/config.jsonc".source = ./fastfetch.jsonc; - ".config/tabiew/theme.toml".source = ./tabiew.toml; - ".config/kitty/tab_bar.py".source = ./tab_bar.py; - ".hushlogin" = lib.mkIf isDarwin { text = ""; }; # Suppress Login - - # Link LLM std template - ".config/io.datasette.llm/templates/std.yaml".text = '' - system: | - You are a concise technical assistant running on an Intel Mac (x86_64-darwin) - with nix-darwin and home-manager. - - Rules: - - Always respond in valid markdown - - Be concise and direct, no unnecessary explanation - - Prefer code blocks for commands and code - - You have access to these tools in the shell: nvim, fish, git, - eza, bat, ripgrep, fzf, yazi, glow, llm, zoxide, fastfetch, - nix, darwin-rebuild, brew - - When suggesting nix config changes, use the nix language - - nix-switch rebuilds the system config - - nix-check validates the flake without building - ''; - }; - }; } diff --git a/home/spicetify.nix b/home/spicetify.nix index 6c6db79..3e7c75a 100644 --- a/home/spicetify.nix +++ b/home/spicetify.nix @@ -1,9 +1,18 @@ -{ pkgs, inputs, ... }: +{ + pkgs, + inputs, + primaryUser, + ... +}: { imports = [ inputs.spicetify-nix.homeManagerModules.default ]; + home.persistence."/persist/home/${primaryUser}".directories = [ + ".config/spotify" + ]; + programs.spicetify = let spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};