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};