Skip to content

Conversation

@rwxae
Copy link

@rwxae rwxae commented Dec 6, 2025

Description

Adds support for official home-manager options for vicinae (configured via programs.vicinae instead of services.vicinae).

Official options for vicinae in home-manager were added in nix-community/home-manager#8093.

As stated by the author, these options should work the same way:

The code is mostly verbatim from vicinaehq/vicinae@main/nix/vicinae.nix
with the main difference that I moved the logic for packaging extensions into the module itself.

This is not a breaking change, users of the options that come from vicinae flake don't lose anything.

I'm welcome to hear any feedback.

Thank you for this amazing tool!


@stylix-automation stylix-automation bot added topic: home-manager Home Manager target topic: modules /modules/ subsystem labels Dec 6, 2025
@stylix-automation stylix-automation bot requested a review from 0xda157 December 6, 2025 00:21
@rwxae rwxae force-pushed the vicinae-official-hm-support branch from b6cf684 to 34ea4a0 Compare December 6, 2025 00:23
Copy link
Contributor

@0xda157 0xda157 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a testbed for the home-manager options should be added

@stylix-automation stylix-automation bot added the topic: testbed Testbed changes label Dec 6, 2025
@stylix-automation stylix-automation bot requested a review from 0xda157 December 6, 2025 01:13
@rwxae
Copy link
Author

rwxae commented Dec 6, 2025

Applied all suggested improvements, awaiting a review :)

@rwxae rwxae requested a review from trueNAHO December 6, 2025 22:00
@rwxae
Copy link
Author

rwxae commented Dec 6, 2025

I've been looking at other examples to better understand how stylix works. And looks like there is no need to check for presence of viciane in programs. It is always going to be true since home-manager provides this option. This check is only needed if the options come from external flake (e.g. zen-browser or vicinae-standalone).

So maybe, a final implementation for eachConfig should be something like this to avoid any confusion:

      eachConfig =
        config:
        let
          finalConfig = {
            vicinae = config;
          };
        in
        {
          services = lib.optionalAttrs (options.services ? vicinae) finalConfig;
          programs = finalConfig;
        };

What do you think?

@0xda157
Copy link
Contributor

0xda157 commented Dec 7, 2025

this should be merged after nix-community/home-manager#8313 is merged (if it isn't rejected).

@0xda157 0xda157 marked this pull request as draft December 7, 2025 05:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

topic: home-manager Home Manager target topic: modules /modules/ subsystem topic: testbed Testbed changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants