From 19e10e2d613584005e7f1263846604d492ff5512 Mon Sep 17 00:00:00 2001 From: Nico Date: Mon, 15 Dec 2025 17:54:34 +1100 Subject: [PATCH] vicinae: init --- modules/desktop/de/hyprland.nix | 2 +- stow/.config/hypr/hyprland.conf | 11 +- stow/.config/matugen/config.toml | 5 + stow/.config/matugen/templates/vicinae.toml | 127 ++++++++++++++++++++ stow/.config/vicinae/vicinae.json | 25 ++++ 5 files changed, 167 insertions(+), 3 deletions(-) create mode 100644 stow/.config/matugen/templates/vicinae.toml create mode 100644 stow/.config/vicinae/vicinae.json diff --git a/modules/desktop/de/hyprland.nix b/modules/desktop/de/hyprland.nix index 4b18ead..ccff2d5 100644 --- a/modules/desktop/de/hyprland.nix +++ b/modules/desktop/de/hyprland.nix @@ -19,7 +19,7 @@ wl-clipboard brightnessctl helvum - fuzzel + vicinae playerctl swaynotificationcenter hyprshot diff --git a/stow/.config/hypr/hyprland.conf b/stow/.config/hypr/hyprland.conf index 1c08bae..a778071 100755 --- a/stow/.config/hypr/hyprland.conf +++ b/stow/.config/hypr/hyprland.conf @@ -16,6 +16,7 @@ monitor=eDP-1,1920x1080@60,auto,1 exec-once = uwsm app -- swww-daemon exec-once = uwsm app -- waybar exec-once = uwsm app -- swaync +exec-once = uwsm app -- vicinae server exec-once = hyprshade auto exec-once = uwsm app -- opensnitch-ui @@ -145,7 +146,7 @@ input { # https://wiki.hyprland.org/Configuring/Variables/#gestures gesture = 3, horizontal, workspace -gesture = 4, pinch, dispatcher, exec, fuzzel +gesture = 4, pinch, dispatcher, exec, vicinae toggle gesture = 4, left, dispatcher, exec, swaync-client -op gesture = 4, right, dispatcher, exec, swaync-client -cp @@ -167,7 +168,7 @@ $mainMod = SUPER # Sets "Windows" key as main modifier # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Q, exec, uwsm app -- ghostty bind = $mainMod, B, exec, uwsm app -- firefox -bind = $mainMod, D, exec, fuzzel +bind = $mainMod, D, exec, vicinae toggle bind = $mainMod shift, D, exec, uwsm app -- 1password --quick-access bind = $mainMod, S, exec, uwsm app -- hyprshot -z --clipboard-only -m region bind = $mainMod shift, S, exec, uwsm app -- hyprshot -z --clipboard-only -m window @@ -303,5 +304,11 @@ windowrulev2 = persistentsize, initialClass:(^1Password$),floating:1 windowrulev2 = dimaround, initialClass:(^1Password$),floating:1 windowrulev2 = animation popin, initialClass:(^1Password$),floating:1 +# disable fade animation for vicinae only +layerrule = noanim, vicinae + # layer rules layerrule = animation slide right, waybar + +layerrule = blur,vicinae +layerrule = ignorealpha 0, vicinae diff --git a/stow/.config/matugen/config.toml b/stow/.config/matugen/config.toml index 3edc866..62a46f6 100644 --- a/stow/.config/matugen/config.toml +++ b/stow/.config/matugen/config.toml @@ -80,3 +80,8 @@ output_path = '~/.config/fuzzel/colors.ini' [templates.ghostty] input_path = './templates/ghostty' output_path = '~/.config/ghostty/matugen' + +[templates.vicinae] +input_path = './templates/vicinae.toml' +output_path = '~/.local/share/vicinae/themes/matugen.toml' +post_hook = 'vicinae theme set matugen' diff --git a/stow/.config/matugen/templates/vicinae.toml b/stow/.config/matugen/templates/vicinae.toml new file mode 100644 index 0000000..b56dbfb --- /dev/null +++ b/stow/.config/matugen/templates/vicinae.toml @@ -0,0 +1,127 @@ +# Vicinae Matugen Theme Template +# Used LLM for initial generation, then modified to a satisfactory level + +[meta] +name = "Matugen" +description = "Material You theme generated by Matugen - {{mode}} variant" +variant = "{{mode}}" + +# ============================================================================ +# Core Colors +# ============================================================================ + +[colors.core] +accent = "{{colors.primary.default.hex}}" +accent_foreground = "{{colors.on_primary.default.hex}}" +background = "{{colors.surface.default.hex}}" +foreground = "{{colors.on_surface.default.hex}}" +secondary_background = "{{colors.surface_container.default.hex}}" +border = "{{colors.outline_variant.default.hex}}" + +# ============================================================================ +# Window Borders +# ============================================================================ + +[colors.main_window] +border = "{{colors.outline_variant.default.hex}}" + +[colors.settings_window] +border = "{{colors.outline.default.hex}}" + +# ============================================================================ +# Accent Palette +# ============================================================================ + +[colors.accents] +blue = "{{colors.primary.default.hex}}" +green = "{{colors.tertiary.default.hex}}" +magenta = "{{colors.secondary.default.hex}}" +orange = { name = "{{colors.error.default.hex}}", lighter = 40 } +red = "{{colors.error.default.hex}}" +yellow = { name = "{{colors.tertiary.default.hex}}", lighter = 80 } +cyan = { name = "{{colors.primary.default.hex}}", lighter = 50 } +purple = "{{colors.secondary.default.hex}}" + +# ============================================================================ +# Text System +# ============================================================================ + +[colors.text] +default = "{{colors.on_surface.default.hex}}" +muted = "{{colors.on_surface_variant.default.hex}}" +danger = "{{colors.error.default.hex}}" +success = "{{colors.tertiary.default.hex}}" +placeholder = { name = "{{colors.on_surface_variant.default.hex}}", opacity = 0.6 } + +[colors.text.selection] +background = "{{colors.primary.default.hex}}" +foreground = "{{colors.on_primary.default.hex}}" + +[colors.text.links] +default = "{{colors.primary.default.hex}}" +visited = { name = "{{colors.tertiary.default.hex}}", darker = 20 } + +# ============================================================================ +# Input Fields +# ============================================================================ + +[colors.input] +border = "{{colors.outline.default.hex}}" +border_focus = "{{colors.primary.default.hex}}" +border_error = "{{colors.error.default.hex}}" + +# ============================================================================ +# Buttons +# ============================================================================ + +[colors.button.primary] +background = "{{colors.surface_container_high.default.hex}}" +foreground = "{{colors.on_surface.default.hex}}" + +[colors.button.primary.hover] +background = "{{colors.surface_container_highest.default.hex}}" + +[colors.button.primary.focus] +outline = "{{colors.primary.default.hex}}" + +# ============================================================================ +# Lists +# ============================================================================ + +[colors.list.item.hover] +background = { name = "{{colors.primary_container.default.hex}}", opacity = 0.25 } +foreground = "{{colors.on_surface.default.hex}}" + +[colors.list.item.selection] +background = { name = "{{colors.primary_container.default.hex}}", opacity = 0.50 } +foreground = "{{colors.on_primary_container.default.hex}}" +secondary_background = "{{colors.primary_container.default.hex}}" +secondary_foreground = "{{colors.on_primary_container.default.hex}}" + +# ============================================================================ +# Grid Items +# ============================================================================ + +[colors.grid.item] +background = "{{colors.surface_container.default.hex}}" + +[colors.grid.item.hover] +outline = { name = "{{colors.secondary.default.hex}}", opacity = 0.8 } + +[colors.grid.item.selection] +outline = { name = "{{colors.primary.default.hex}}" } + +# ============================================================================ +# Scrollbars +# ============================================================================ + +[colors.scrollbars] +background = { name = "{{colors.primary.default.hex}}", opacity = 0.2 } + +# ============================================================================ +# Loading States +# ============================================================================ + +[colors.loading] +bar = "{{colors.primary.default.hex}}" +spinner = "{{colors.primary.default.hex}}" diff --git a/stow/.config/vicinae/vicinae.json b/stow/.config/vicinae/vicinae.json new file mode 100644 index 0000000..9ac9f69 --- /dev/null +++ b/stow/.config/vicinae/vicinae.json @@ -0,0 +1,25 @@ +{ + "closeOnFocusLoss": false, + "considerPreedit": false, + "faviconService": "twenty", + "font": { + "normal": "ComicShannsMono Nerd Font", + "size": 10.5 + }, + "keybinding": "emacs", + "keybinds": { + }, + "popToRootOnClose": true, + "rootSearch": { + "searchFiles": false + }, + "theme": { + "iconTheme": "Default", + "name": "matugen" + }, + "window": { + "csd": true, + "opacity": 0.98, + "rounding": 10 + } +}