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
If you don’t want to compile Vicinae yourself, make sure to enable Cachix
# 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
If you want to use the cache do not add inputs.nixpkgs.follows = "nixpkgs"; to your flake! This will make the cache miss.
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.