Coder Social home page Coder Social logo

Comments (8)

spikespaz avatar spikespaz commented on June 11, 2024 1

The branch reintroduces a bug that the config would have to be reloaded once for each file that was modified by the Nix config. For now, this is keybinds.conf and hyprland.conf. In some cases (IIRC) a change can cause both files to be modified, causing a double-reload, usually because a store path has changed. I don't remember what exactly caused this, but I tried to mitigate it by using an absolute path to keybinds.conf from a source line in hyprland.conf.

from hyprnix.

spikespaz avatar spikespaz commented on June 11, 2024 1

If you or anyone else has any problems relating to this, I want discussion to be immediately visible. No fix has been merged into master.

I am still not satisfied, as I myself have not confirmed if Home Manager will merge multiple configFile entries when recursive = true.

from hyprnix.

spikespaz avatar spikespaz commented on June 11, 2024

Yes, this is an oversight, my apologies. I will avoid writing the entire hypr directory as read-only. The assumption was that if you are using this flake, you are seeking an entirely declarative config, the expectation was that you use the mechanisms provided by the Home Manager module (for example, wayland.windowManager.hyprland.configFile."hyprpaper.conf".text) to write to that directory.

from hyprnix.

hmajid2301 avatar hmajid2301 commented on June 11, 2024

No need to apologise :), that would be great.

Also, just to clarify I am using the hyprpaper flake home-manager module in my example above. It is trying to write and failing to, causing an error https://github.com/hyprwm/hyprpaper/blob/main/nix/hm-module.nix#L66.

Thanks, as I say I prefer using this flake, to define my config in a more nix way.

from hyprnix.

spikespaz avatar spikespaz commented on June 11, 2024

Could you please try to set xdg.configFile."hypr".recursive = true?

from hyprnix.

spikespaz avatar spikespaz commented on June 11, 2024

There is a new branch if that option does not work or is unsatisfactory, revert-managed-config-dir. This branch reverts three commits that introduced a custom configFile attribute, very similar to xdg.configFile.

I did foresee this becoming a problem.

Documentation for the option wayland.windowManager.hyprland.configFile with type types.attrsOf (configFile pkgs "${config.xdg.configHome}/hypr"):

Configuration files and directories to link in the Hyprland config directory.
This is an attribute set of file descriptions similar to
{option}xdg.configFile, except relative to {path}$XDG_CONFIG_HOME/hypr.

If necessary, you may set {option}xdg.configFile."hypr".recursive = true.

To elaborate: I suggested this in the doc because I wanted users to be able to create and edit files within that directory (and allow external programs to do so, such as plugins with state). I am not sure if multiple entries for xdg.configFile."hypr" will work when recursive = true, but I'd like to see you try, and then if it doesn't work, use the branch I mentioned.

from hyprnix.

hmajid2301 avatar hmajid2301 commented on June 11, 2024

i will update you when i have some time to try this! 🙏 thank you so much.

from hyprnix.

hmajid2301 avatar hmajid2301 commented on June 11, 2024

Sorry for the late reply,

I was able to get this working with xdg.configFile."hypr".recursive = true. I did have to turn off my hyprland config first in home-manager so the symlink was deleted (went to gnome) then switched the config back on (enabled it).

eza -al ~/.config/hypr
lrwxrwxrwx - haseeb  2 Apr 19:53 hyprland.conf -> /nix/store/snwq2gy6x2jhgwsm6a78jc3vdaqqad3w-home-manager-files/.config/hypr/hyprland.conf
lrwxrwxrwx - haseeb  2 Apr 19:53 hyprpaper.conf -> /nix/store/snwq2gy6x2jhgwsm6a78jc3vdaqqad3w-home-manager-files/.config/hypr/hyprpaper.conf
lrwxrwxrwx - haseeb  2 Apr 19:53 keybinds.conf -> /nix/store/snwq2gy6x2jhgwsm6a78jc3vdaqqad3w-home-manager-files/.config/hypr/keybinds.conf

Thanks a ton!

from hyprnix.

Related Issues (5)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.