nix-dotfiles/modules/desktop/vicinae.nix
2026-03-22 16:59:30 -07:00

71 lines
1.6 KiB
Nix

{ inputs, lib, config, pkgs, system, ... }:
with lib;
let
cfg = config.modules.desktop.vicinae;
in {
options.modules.desktop.vicinae = {
enable = mkEnableOption "Enable vicinae, a launcher built in react";
package = mkOption {
type = types.package;
default = inputs.vicinae.packages.${system}.default;
};
};
config = mkIf cfg.enable {
hm.services.vicinae = {
enable = true;
package = cfg.package;
systemd = {
enable = true;
autoStart = true;
environment = {
USE_LAYER_SHELL = 1;
};
};
settings = {
"$schema" = "https://vicinae.com/schemas/config.json";
pop_to_root_on_close = true;
launcher_window = {
opacity = 0.95;
client_side_decorations.enabled = false;
layer_shell = {
enabled = true;
keyboard_interactivity = "exclusive";
layer = "top";
};
};
favorites = [
"core:search-emojis"
"clipboard:history"
];
providers = {
applications = {
preferences = {
defaultAction = "launch";
};
};
files.enabled = false;
};
escape_key_behavior = "close_window";
font = let
fonts = config.modules.desktop.fonts.fonts;
in {
normal = { inherit (fonts.sansSerif) family size; };
};
};
extensions = with inputs.vicinae-extensions.packages.${system}; [
nix
] ++ optional config.modules.desktop.niri.enable niri;
};
};
}