diff --git a/flake/dev/flake.lock b/flake/dev/flake.lock index 46702a9a..d839b015 100644 --- a/flake/dev/flake.lock +++ b/flake/dev/flake.lock @@ -66,6 +66,26 @@ "type": "github" } }, + "flake-utils": { + "inputs": { + "systems": [ + "dev-systems" + ] + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "git-hooks": { "inputs": { "flake-compat": [ @@ -192,6 +212,7 @@ "nvf": "nvf", "spicetify-nix": "spicetify-nix", "treefmt-nix": "treefmt-nix", + "vicinae": "vicinae", "zen-browser": "zen-browser" } }, @@ -238,6 +259,27 @@ "type": "github" } }, + "vicinae": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "dev-nixpkgs" + ] + }, + "locked": { + "lastModified": 1763505293, + "narHash": "sha256-huleUPkt0iZJZy4e/KPhcHK4ueeqaqiMUu7Ft6NVDFU=", + "owner": "vicinaehq", + "repo": "vicinae", + "rev": "e600ffc4ad1e87f3389327adfab8bb8d2f34261e", + "type": "github" + }, + "original": { + "owner": "vicinaehq", + "repo": "vicinae", + "type": "github" + } + }, "zen-browser": { "inputs": { "home-manager": [ diff --git a/flake/dev/flake.nix b/flake/dev/flake.nix index 56c94484..1f0143a0 100644 --- a/flake/dev/flake.nix +++ b/flake/dev/flake.nix @@ -179,6 +179,14 @@ inputs.nixpkgs.follows = "dev-nixpkgs"; }; + vicinae = { + url = "github:vicinaehq/vicinae"; + inputs = { + nixpkgs.follows = "dev-nixpkgs"; + flake-utils.inputs.systems.follows = "dev-systems"; + }; + }; + zen-browser = { url = "github:0xc000022070/zen-browser-flake"; inputs = { diff --git a/modules/vicinae/hm.nix b/modules/vicinae/hm.nix new file mode 100644 index 00000000..7face1c2 --- /dev/null +++ b/modules/vicinae/hm.nix @@ -0,0 +1,61 @@ +{ + mkTarget, + lib, + options, + ... +}: +mkTarget { + name = "vicinae"; + humanName = "Vicinae"; + + configElements = lib.optionals (options.programs ? vicinae) [ + ( + { colors, polarity }: + { + services.vicinae = { + settings.theme.name = "stylix"; + themes.stylix = { + meta = { + name = "stylix"; + description = "theme generated by stylix"; + variant = if polarity == "either" then "light" else polarity; + }; + colors = with colors.withHashtag; { + core = { + background = base00; + foreground = base05; + secondary_background = base01; + border = base02; + accent = base0D; + }; + accents = { + # TODO: magenta and purple shouldn't be the same color + blue = base0D; + green = base0B; + magenta = base0E; + orange = base09; + purple = base0E; + red = base08; + yellow = base0A; + cyan = base0C; + }; + list.item = { + selection = { + background.name = base02; + secondary_background = base03; + }; + hover.background = base01; + }; + }; + }; + }; + } + ) + ( + { opacity }: + { + services.vicinae.settings.window.opacity = opacity.popups; + } + ) + ]; +} diff --git a/modules/vicinae/meta.nix b/modules/vicinae/meta.nix new file mode 100644 index 00000000..b3282a7a --- /dev/null +++ b/modules/vicinae/meta.nix @@ -0,0 +1,6 @@ +{ lib, ... }: +{ + name = "Vicinae"; + homepage = "https://docs.vicinae.com"; + maintainers = [ lib.maintainers.da157 ]; +} diff --git a/modules/vicinae/testbeds/vicinae.nix b/modules/vicinae/testbeds/vicinae.nix new file mode 100644 index 00000000..87d921ad --- /dev/null +++ b/modules/vicinae/testbeds/vicinae.nix @@ -0,0 +1,11 @@ +{ lib, ... }: +{ + stylix.testbed.ui = { + graphicalEnvironment = "hyprland"; + command.text = "sleep 5 && vicinae open"; + }; + + home-manager.sharedModules = lib.singleton { + services.vicinae.enable = true; + }; +} diff --git a/stylix/testbed/default.nix b/stylix/testbed/default.nix index cd43da05..2ea28306 100644 --- a/stylix/testbed/default.nix +++ b/stylix/testbed/default.nix @@ -45,6 +45,10 @@ let nvf = inputs.nvf.nixosModules.default; + vicinae.home-manager.sharedModules = [ + inputs.vicinae.homeManagerModules.default + ]; + zen-browser.home-manager.sharedModules = [ inputs.zen-browser.homeModules.default ];