Nixos

Vicinae is available as a Nix flake but can also be run without installing. You can use the binaries of the Nix package or enable the systemd service provided by the home-manager module.

Run Vicinae without installing

You can test the app directly by using a nix shell

nix shell github:vicinaehq/vicinae

Home Manager module

# flake.nix
{
    description = "...";
    inputs = {
        vicinae.url = "github:vicinaehq/vicinae"; # tell Nixos where to get Vicinae
        ...
    };
    outputs = {
        nixpkgs,
        home-manager,
        vicinae, # enable the Output
    }: let
    system = "...";
    pkgs = nixpkgs.legacyPackages.${system};
    in {
        homeConfigurations."..." = home-manager.lib.homeManagerConfiguration {
            inherit pkgs;

            modules = [
                vicinae.homeManagerModules.default # enable Home Manager
                ...
            ];
        }
    }
}
# home.nix
# ...
{pkgs}:{
    services.vicinae = {
        enable = true; # default: false
        autoStart = true; # default: true
        package = # specify package to use here. Can be omitted.
    };
}

Cachix

The Vicinae flake is not built by Hydra, so it is not cached in cache.nixos.org, like the rest of Nixpkgs. Instead of requiring you to build Vicinae every time it updates, we provide a Cachix cache that you can add to your Nix configuration.

extra-substituters = [ "https://vicinae.cachix.org" ];
extra-trusted-public-keys = [ "vicinae.cachix.org-1:1kDrfienkGHPYbkpNj1mWTr7Fm1+zcenzgTizIcI3oc=" ];

Configuring with Home Manager

You can configure Vicinae using Home Manager options. Here is an example configuration:

services.vicinae = {
  enable = true;
  autoStart = true;
  settings = {
      faviconService = "twenty"; # twenty | google | none
      font.size = 11;
      popToRootOnClose = false;
      rootSearch.searchFiles = false;
      theme.name = "vicinae-dark";
      window = {
        csd = true;
        opacity = 0.95;
        rounding = 10;
      };
  };
  # Installing (vicinae) extensions declaratively
  extensions = [
    (inputs.vicinae.mkVicinaeExtension.${pkgs.system} {
      inherit pkgs;
      name = "extension-name";
      src = pkgs.fetchFromGitHub { # You can also specify different sources other than github
        owner = "repo-owner";
        repo = "repo-name";
        rev = "v1.0"; # If the extension has no releases use the latest commit hash
        # You can get the sha256 by rebuilding once and then copying the output hash from the error message
        sha256 = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
      }; # If the extension is in a subdirectory you can add ` + "/subdir"` between the brace and the semicolon here
    })
  ];
};

the theme.name option can be set to any of the themes that come with Vicinae or a custom theme you have installed. See the Github for more information on default theme names.

Was this page helpful?