Home Manager'da Nix Store Dışı Dosya Bağlamak: mkOutOfStoreSymlink
Problem
Home Manager ile bir config dosyasını yönetmek istiyorsun ama dosya:
- Git reposunda yok (örneğin büyük bir resim, wallpaper)
- Sık değişiyor ve her değişiklikte
nixos-rebuildistemiyorsun - Nix store’a kopyalanmamalı (store read-only, her deploy’da yeni hash)
xdg.configFile."hypr/wallpaper.jpg".source = /persist/assets/wallpaper.png; — bu çalışmaz, Nix build zamanında dosyayı store’a kopyalamaya çalışır.
Çözüm
xdg.configFile."hypr/wallpaper.jpg".source =
config.lib.file.mkOutOfStoreSymlink "/persist/nixos-config/assets/wallpaper.png";
Bu, ~/.config/hypr/wallpaper.jpg’yi doğrudan /persist/... yoluna sembolik link yapar. Nix store’a hiçbir şey kopyalanmaz.
Ne Zaman Kullan
- Wallpaper, font, binary gibi store’a almak istemediğin büyük dosyalar
~/Projects/...altında canlı edit ettiğin config dosyaları (örneğin Hyprland Lua script’leri)- Impermanence kurulumunda
/persistaltındaki kalıcı dosyalara link vermek
Yol mutlak olmalı. Relative path kabul etmez.
EOF.