# Надо удалить оригинальный файл, прежде чем делать симлинк
# Некоторые проги клали хуй на симлинки и заменяют их своими файлами
# Таких прог я ебал рот и проклинал хуесосов разработчиков
# Если выдаёт ошибку про home-manager сервис при ребилде,
# Значит такой файл уже существует и симлинк туда кинуть нельзя 
# Для таких файлов я сделал каталог shit

# Я не уверен надо ли писать "config.lib.file.mkOutOfStoreSymlink"
# Вроде это более простой симлинк, чем просто ссылка на файл
# Но мб меня обманули

{ pkgs, config, ... }: let
  home-dir = "backups"; # Имя каталога для бекапов. Мб захочу поменять
  dir = "${config.home.homeDirectory}/${home-dir}";
in {
  home.file = { # В .config этим нельзя кидать
    "${home-dir}".source = config.lib.file.mkOutOfStoreSymlink "/mnt/${home-dir}"; # Чтоб остальные симлинки были от ~/backups

    # Secrets
    ".password-store".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/.password-store"; # Для утилиты pass
    ".ssh".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/.ssh";

    # Games
    # ".local/share/osu-wine/osu!/Replays".source = config.lib.file.mkOutOfStoreSymlink "${dir}/games/osu!/Replays";
    # ".local/share/osu-wine/osu!/Skins".source = config.lib.file.mkOutOfStoreSymlink "${dir}/games/osu!/Skins";
    # ".local/share/osu-wine/osu!/Songs".source = config.lib.file.mkOutOfStoreSymlink "${dir}/games/osu!/Songs";
    # ".local/share/osu-wine/osu!/collection.db".source = config.lib.file.mkOutOfStoreSymlink "${dir}/games/osu!/collection.db";
    # ".local/share/osu-wine/osu!/osu!.buliway.cfg".source = config.lib.file.mkOutOfStoreSymlink "${dir}/games/osu!/osu!.buliway.cfg";

    # Browsers. Мб сделать .force, чтоб удалить сток. А мб руками удалить сток перед этим
    ".mozilla".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/.mozilla";
    ".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/.librewolf";

    "Downloads/Telegram Desktop".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Telegram Desktop";

    # Не знаю на счёт obs, chatbox, planify, calibre, discord, nekobox
  };

  xdg.configFile = { # Это для каталога .config
    "qobuz-dl".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Media/Music/Qobuz/.config/qobuz-dl"; # Конфиг для бекапа Qobuz музыки

    # Ебаный qt, как я тебя ненавижу
    # "Kvantum".source = ../shit/Kvantum;
    # "qt5ct".source = ../shit/qt5ct
    # "qt6ct".source = ../shit/qt6ct
  };
}