Skip to content

Interop with home-manager modules as much as possible and consider adding stylix #43

@Frontear

Description

@Frontear

The motivation for the former is actually the latter. Stylix seems like a very cool project, but in order for me to actually make use of it I'd need to relegate myself back to the home-manager modules. The only thing I don't like about some home-manager modules is that they tend to do things weirdly and/or excessively. They also don't prefer to wrap packages and instead opt for placing symlinks, which I want to avoid (see #38).

I'll admit that I've held a negative bias against home-manager for its bloat. Maturing is realizing that I was wrong, and I have no issues in admitting it. You can find a lot of my reasonings and experiments in this repository's history, some notable examples are 6aeb984 and #7. Suffice it to say that while it is true that some places in home-manager are bloated and duplicate things that are better left to NixOS configurations, something important to note is that home-manager never intended to be a NixOS-only tool. Furthermore, it doesn't mean that all the modules are bloated and should be avoided. Some of the current my.* modules that I have actually delegate to home-manager (like my.programs.git).

If I want to use Stylix, I must achieve the former goal. Even if I don't want Stylix, I think achieving the former goal is still good. In practice, I can keep my own modules but have them delegate as much work as possible to the lower home-manager modules. This would not only de-duplicate excessively unnecessary logic, but it would grant better interop overall with home-manager modules, since right now I'm sort of going half-and-half, which falls apart at certain junctures (one example is home.pointerCursor.sway, another could be all of the stylix modules which set color and fonts).

Metadata

Metadata

Assignees

No one assigned

    Labels

    compat: forwardsRepresents a backwards incompatible change. Existing functionality is affected and requires fixes.priority: lowNon-essential issues that are neither affecting functionality nor usability.type: feature/additionMarks the request/implementation of a feature addition. Accompany with relevant labels.type: feature/improvementMarks the request/implementation of a feature improvement. Accompany with relevant labels.type: feature/removalMarks the request/implementation of a feature removal. Accompany with relevant labels.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions