{ config, pkgs, lib, ... }: let vaultRepo = "ssh://gitea@git.cyperpunk.de:12222/DerGrumpf/Notes.git"; vaultPath = "${config.home.homeDirectory}/Notes"; sshBinary = "${pkgs.openssh}/bin/ssh"; gitBin = "${pkgs.git}/bin"; gitLfsBin = "${pkgs.git-lfs}/bin"; in { programs.obsidian = { enable = true; vaults.notes = { target = "Notes"; settings = { }; }; }; 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 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 ''; }