{ 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"; # i disagree with these telemetry.system_info = false; providers.core.entrypoints.sponsor.enable = false; pop_to_root_on_close = true; launcher_window = { opacity = 0.8; 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; }; }; }