Home Manager Symlinking Directories

I am in the process of moving my config to home manager and am facing an issue when symlinking directories. For example, I want to link config/dracula/lxqt which contains all lxqt configurations.

  xdg = {
    enable = true;
    configFile."lxqt" = {
      source = ./config/dracula/lxqt;
      recursive = true;
    };
  };

The above code does not work, when I cd, it says the file or directory does not exist. However, adding source = config.lib.file.mkOutOfStoreSymlink ./config/dracula/lxqt; works in this particular case (and ideal because lxappearance changes the source files) but for other applications like emacs or vim, I would like to have declarative dotfiles. What is the workaround for this?

Is something created at all? Is the source perhaps an empty folder? Is something created if you do recursive = false?

This seems to work after a reboot, but all the files are now read only with source = config.lib.file.mkOutOfStoreSymlink ./config/dracula/lxqt; and recurive = true/false

dr-xr-xr-x  2 root root 4096 Jan  1  1970 .
dr-xr-xr-x  3 root root 4096 Jan  1  1970 ..
-r--r--r-- 28 root root  379 Jan  1  1970 lxqt.conf
-r--r--r-- 28 root root   76 Jan  1  1970 lxqt-config-appearance.conf
-r--r--r-- 28 root root   30 Jan  1  1970 lxqt-config.conf
-r--r--r-- 28 root root   76 Jan  1  1970 session.conf

I want these writable but they appear to belong to root

I changed it to link only a single file

  xdg.configFile."lxqt/lxqt.conf" = {
    source = config.lib.file.mkOutOfStoreSymlink ./config/dracula/lxqt/lxqt.conf;
  };

The file appears to still be read only and connected to nix store
lrwxrwxrwx 1 joe users 85 Jul 17 21:55 lxqt.conf -> /nix/store/xsn5nsrxmb733107dmms4hdafrlavvh4-home-manager-files/.config/lxqt/lxqt.conf

Edit: Looks like an issue in how flakes work https://github.com/nix-community/home-manager/pull/1455#issuecomment-681041818