Comments (8)
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.
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.
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.
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.
Could you please try to set xdg.configFile."hypr".recursive = true
?
from hyprnix.
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.
i will update you when i have some time to try this! 🙏 thank you so much.
from hyprnix.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hyprnix.