theme: roll Apex Neon across terminal, bar, and notifications

This commit is contained in:
s0wlz (Matthias Puchstein)
2025-12-30 07:47:45 +01:00
parent 5523871e71
commit 4651a3ce38
23 changed files with 1652 additions and 3300 deletions

View File

@@ -1,12 +1,12 @@
[general]
import = [
"/home/mpuchstein/.config/alacritty/themes/themes/github_dark.toml"
]
import = ["~/.config/alacritty/themes/apex-neon.toml"]
live_config_reload = true
ipc_socket = true
[window]
opacity = 0.7
padding = { x = 4, y = 4 }
[font]
normal = { family = "Inconsolata Nerd Font Mono", style = "Regular" }
@@ -14,3 +14,6 @@ size = 9
[mouse]
hide_when_typing = true
[cursor]
style = { shape = "Beam", blinking = "Off" }

View File

@@ -0,0 +1,63 @@
# APEX NEON — Alacritty theme (colors only)
[colors.primary]
background = "#050505"
foreground = "#ededed"
dim_foreground = "#737373"
bright_foreground = "#ffffff"
[colors.cursor]
text = "#050505"
cursor = "#ff0044"
[colors.vi_mode_cursor]
text = "#050505"
cursor = "#00eaff"
[colors.selection]
text = "#050505"
background = "#ff0044"
[colors.search.matches]
foreground = "#050505"
background = "#ff0044"
[colors.search.focused_match]
foreground = "#050505"
background = "#ffb700"
[colors.hints.start]
foreground = "#050505"
background = "#ffb700"
[colors.hints.end]
foreground = "#050505"
background = "#00eaff"
[colors.line_indicator]
foreground = "None"
background = "None"
[colors.footer_bar]
foreground = "#ededed"
background = "#141414"
[colors.normal]
black = "#050505"
red = "#ff0044"
green = "#00ff99"
yellow = "#ffb700"
blue = "#00eaff"
magenta = "#9d00ff"
cyan = "#00eaff"
white = "#ededed"
[colors.bright]
black = "#262626"
red = "#ff8899"
green = "#2bffb2"
yellow = "#ffd24d"
blue = "#5af3ff"
magenta = "#c84dff"
cyan = "#5af3ff"
white = "#ffffff"

View File

@@ -1,66 +0,0 @@
## APEX NEON - KITTY THEME ##
foreground #ededed
background #050505
selection_foreground #050505
selection_background #00eaff
# Cursor: Still aggressive Razor Red
cursor #ff0044
cursor_text_color #050505
cursor_shape beam
# URL underline: Electric Cyan
url_color #00eaff
# --- 16-BIT PALETTE ---
# BLACKS
# Normal: Deep Grey (Background UI elements)
color0 #141414
# Bright: Lighter Grey (Comments, Line Numbers)
color8 #404040
# REDS
# Normal: Razor Red (Aggressive, for errors/borders)
color1 #ff0044
# Bright: Pale / Laser Red (READABLE text, Highlighting)
color9 #ff6688
# GREENS
# Normal: Jungle Green (Standard strings)
color2 #00cc7a
# Bright: Toxic Green (Success messages, glowing elements)
color10 #00ff99
# YELLOWS
# Normal: Amber (Standard warnings)
color3 #cc9200
# Bright: Warning Gold (Critical warnings)
color11 #ffb700
# BLUES
# Normal: Deep Azure (Standard functions - we bring blue back for depth)
color4 #0088cc
# Bright: Electric Cyan (The "Digital" look - Pointers, links)
color12 #00eaff
# MAGENTAS
# Normal: Deep Purple (Keywords)
color5 #7a00cc
# Bright: Void Purple (Constants, Special highlights)
color13 #9d00ff
# CYANS
# Normal: Teal
color6 #00aaaa
# Bright: Pure Cyan
color14 #00ffff
# WHITES
# Normal: The Signal (Standard Text)
color7 #ededed
# Bright: Pure White (Bold Text)
color15 #ffffff
window_padding_width 4

View File

@@ -0,0 +1,67 @@
## APEX NEON - KITTY THEME ##
## Spec-accurate: color = state, not decoration
# --- Core ---
foreground #ededed
background #050505
# Selection: "target locked"
selection_background #ff0044
selection_foreground #050505
# Cursor: Razor Red beam
cursor #ff0044
cursor_text_color #050505
cursor_shape beam
# URLs: informational cyan
url_color #00eaff
# Borders (optional)
active_border_color #ff0044
inactive_border_color #262626
# Optional: subtle UI hint for visual bell
visual_bell_color #ff8899
# Spacing
window_padding_width 4
# --- 16-COLOR ANSI TABLE (Apex Neon spec) ---
# Normal bank (07)
# color0: Black (Void)
color0 #050505
# color1: Red (Razor)
color1 #ff0044
# color2: Green (OK)
color2 #00ff99
# color3: Yellow (Gold)
color3 #ffb700
# color4: Blue (Info)
color4 #00eaff
# color5: Magenta (Purple)
color5 #9d00ff
# color6: Cyan (Info mapped)
color6 #00eaff
# color7: White (Stark)
color7 #ededed
# Bright bank (815)
# color8: Bright black (UI separators)
color8 #262626
# color9: Bright red (Alerts)
color9 #ff8899
# color10: Bright green (Active success)
color10 #2bffb2
# color11: Bright yellow (Urgent warning)
color11 #ffd24d
# color12: Bright blue (Active info)
color12 #5af3ff
# color13: Bright magenta (Elevated special)
color13 #c84dff
# color14: Bright cyan (Active tech signal)
color14 #5af3ff
# color15: Bright white (Extreme highlight)
color15 #ffffff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
# BEGIN_KITTY_FONTS
font_family family='InconsolataGo Nerd Font Mono' postscript_name=InconsolataGoNFM
bold_font auto
italic_font auto
bold_italic_font auto
# END_KITTY_FONTS
font_size 9.0

View File

@@ -0,0 +1,3 @@
background_opacity 0.9
background_blur 5
dynamic_background_opacity yes

View File

@@ -0,0 +1,2 @@
# Force emoji glyphs to a color emoji font (requires the font to be installed).
symbol_map U+2600-U+26FF,U+2700-U+27BF,U+1F000-U+1FAFF Noto Color Emoji

View File

@@ -0,0 +1,4 @@
# BEGIN_KITTY_THEME
# Rose Pine
include current-theme.conf
# END_KITTY_THEME

View File

@@ -0,0 +1,67 @@
## APEX NEON - KITTY THEME ##
## Spec-accurate: color = state, not decoration
# --- Core ---
foreground #ededed
background #050505
# Selection: "target locked"
selection_background #ff0044
selection_foreground #050505
# Cursor: Razor Red beam
cursor #ff0044
cursor_text_color #050505
cursor_shape beam
# URLs: informational cyan
url_color #00eaff
# Borders (optional)
active_border_color #ff0044
inactive_border_color #262626
# Optional: subtle UI hint for visual bell
visual_bell_color #ff8899
# Spacing
window_padding_width 4
# --- 16-COLOR ANSI TABLE (Apex Neon spec) ---
# Normal bank (07)
# color0: Black (Void)
color0 #050505
# color1: Red (Razor)
color1 #ff0044
# color2: Green (OK)
color2 #00ff99
# color3: Yellow (Gold)
color3 #ffb700
# color4: Blue (Info)
color4 #00eaff
# color5: Magenta (Purple)
color5 #9d00ff
# color6: Cyan (Info mapped)
color6 #00eaff
# color7: White (Stark)
color7 #ededed
# Bright bank (815)
# color8: Bright black (UI separators)
color8 #262626
# color9: Bright red (Alerts)
color9 #ff8899
# color10: Bright green (Active success)
color10 #2bffb2
# color11: Bright yellow (Urgent warning)
color11 #ffd24d
# color12: Bright blue (Active info)
color12 #5af3ff
# color13: Bright magenta (Elevated special)
color13 #c84dff
# color14: Bright cyan (Active tech signal)
color14 #5af3ff
# color15: Bright white (Extreme highlight)
color15 #ffffff

View File

@@ -0,0 +1,14 @@
---@type LazySpec
return {
"2kabhishek/nerdy.nvim",
cmd = "Nerdy",
dependencies = {
"folke/snacks.nvim",
},
opts = {
max_recents = 30,
add_default_keybindings = true,
copy_to_clipboard = false,
copy_register = "+",
},
}

View File

@@ -1,28 +1,60 @@
# Owlry Configuration
# Copy to ~/.config/owlry/config.toml
# Copy to: ~/.config/owlry/config.toml
#
# File Locations (XDG Base Directory compliant):
# ┌─────────────────────────────────────────────────────────────────────┐
# │ Config: ~/.config/owlry/config.toml Main configuration │
# │ Themes: ~/.config/owlry/themes/*.css Custom theme files │
# │ Style: ~/.config/owlry/style.css CSS overrides │
# │ Plugins: ~/.config/owlry/plugins/ User Lua/Rune plugins │
# │ Scripts: ~/.local/share/owlry/scripts/ Executable scripts │
# │ Data: ~/.local/share/owlry/frecency.json Usage history │
# └─────────────────────────────────────────────────────────────────────┘
#
# System Plugin Locations:
# ┌─────────────────────────────────────────────────────────────────────┐
# │ Native: /usr/lib/owlry/plugins/*.so Installed plugins │
# │ Runtimes: /usr/lib/owlry/runtimes/*.so Lua/Rune runtimes │
# └─────────────────────────────────────────────────────────────────────┘
# ═══════════════════════════════════════════════════════════════════════
# GENERAL
# ═══════════════════════════════════════════════════════════════════════
[general]
show_icons = true
max_results = 10
terminal_command = "kitty" # Auto-detected if not set
max_results = 100
# Launch wrapper for app execution (auto-detected if not set)
# Examples:
# "uwsm app --" # For uwsm sessions
# "hyprctl dispatch exec --" # For Hyprland
# "" # Direct execution
# Terminal emulator for SSH, scripts, etc.
# Auto-detection order: $TERMINAL → xdg-terminal-exec → DE-native → Wayland → X11 → xterm
# Uncomment to override:
# terminal_command = "kitty"
# Launch wrapper for app execution (auto-detected for uwsm/Hyprland)
# Examples: "uwsm app --", "hyprctl dispatch exec --", ""
# launch_wrapper = "uwsm app --"
# Header tabs - providers shown as toggle buttons (Ctrl+1, Ctrl+2, etc.)
# Values: app, cmd, uuctl, bookmark, calc, clip, dmenu, emoji, file, script, ssh, sys, web
tabs = ["app", "cmd", "uuctl"]
# ═══════════════════════════════════════════════════════════════════════
# APPEARANCE
# ═══════════════════════════════════════════════════════════════════════
[appearance]
width = 600
height = 400
width = 850
height = 650
font_size = 14
border_radius = 12
# Theme: "owl" for built-in dark theme, or leave unset for GTK default
# Theme name - loads ~/.config/owlry/themes/{name}.css
# Built-in: owl, catppuccin-mocha, dracula, gruvbox-dark, nord,
# one-dark, rose-pine, solarized-dark, tokyo-night
# Or leave unset for GTK default
theme = "apex-neon"
# Individual color overrides (CSS color values)
# Color overrides (applied on top of theme)
# [appearance.colors]
# background = "#1a1b26"
# background_secondary = "#24283b"
@@ -31,47 +63,58 @@ theme = "apex-neon"
# text_secondary = "#565f89"
# accent = "#7aa2f7"
# accent_bright = "#89b4fa"
# badge_app = "#9ece6a"
# badge_calc = "#e0af68"
# badge_cmd = "#7aa2f7"
# badge_dmenu = "#bb9af7"
# badge_uuctl = "#f7768e"
# ═══════════════════════════════════════════════════════════════════════
# PLUGINS
# ═══════════════════════════════════════════════════════════════════════
#
# All installed plugins are loaded by default. Use 'disabled' to blacklist.
# Plugin IDs: calculator, system, ssh, clipboard, emoji, scripts, bookmarks,
# websearch, filesearch, systemd, weather, media, pomodoro
[plugins]
# Plugins to disable (by ID)
disabled = []
# Examples:
# disabled = ["emoji", "pomodoro"] # Disable specific plugins
# disabled = ["weather", "media"] # Disable widget plugins
# ─────────────────────────────────────────────────────────────────────────
# Per-plugin configuration via [plugins.<name>] sections
# ─────────────────────────────────────────────────────────────────────────
# Weather widget plugin
[plugins.weather]
provider = "open-meteo" # wttr.in (default), openweathermap, open-meteo
location = "" # City name, "lat,lon", or empty for auto-detect
# api_key = "" # Required for OpenWeatherMap
# Pomodoro timer plugin
[plugins.pomodoro]
work_mins = 25 # Work session duration
break_mins = 5 # Break duration
# ═══════════════════════════════════════════════════════════════════════
# CORE PROVIDERS
# ═══════════════════════════════════════════════════════════════════════
#
# These are built into the core binary, not plugins.
[providers]
applications = true
commands = true
uuctl = true
# Core providers (always available)
applications = true # .desktop applications from XDG dirs
commands = true # Executables from $PATH
# Calculator provider (type "= 5+3" or "calc 5+3")
calculator = true
# Frecency: boost frequently/recently used items in search results
# Frecency - boost frequently/recently used items
# Data stored in: ~/.local/share/owlry/frecency.json
frecency = true
frecency_weight = 0.3 # 0.0 = disabled, 1.0 = strong boost
# Web search provider (type "? query" or "web query")
websearch = true
# Options: google, duckduckgo, bing, startpage, searxng, brave, ecosia
# Or custom URL with {query} placeholder, e.g. "https://search.example.com/?q={query}"
# Web Search settings
search_engine = "duckduckgo"
# Options: google, duckduckgo, bing, startpage, searxng, brave, ecosia
# System commands (shutdown, reboot, lock, suspend, hibernate, logout, BIOS)
system = true
# SSH connections from ~/.ssh/config
ssh = true
# Clipboard history (requires cliphist)
clipboard = true
# Browser bookmarks (Chrome, Chromium, Brave, Edge, Vivaldi)
bookmarks = true
# Emoji picker (copies to clipboard)
emoji = true
# Custom scripts from ~/.config/owlry/scripts/
scripts = true
# File search (requires fd or locate, trigger with "/ pattern" or "find pattern")
files = true
# File Search settings
file_search_max_results = 50
# file_search_paths = ["/home", "/etc"] # Custom paths (default: $HOME)

View File

@@ -1,39 +1,96 @@
/*
* Owlry - Apex Neon Theme
* High-contrast void with razor red and electric cyan accents.
* "State over Decoration."
*
* A high-contrast dark theme built for focus and clinical clarity.
* Color exists to signal STATE, not to decorate space.
*
* Author: S0wlz (Owlibou)
*
* ─────────────────────────────────────────────────────────────────
* APEX DNA - Semantic Color Roles:
*
* RED is the Predator: Active intent, cursor, current location, critical errors
* CYAN is Informational: Technical data, links, neutral highlights
* PURPLE is Sacred: Root access, special modes, exceptional states
* GREEN is Success: Completion, OK states, positive feedback
* YELLOW is Warning: Caution, load states, attention needed
*
* Rule: If a UI element is not important, it does not glow.
* ─────────────────────────────────────────────────────────────────
*
* Core Palette:
* - Void Black: #050505 (absolute background)
* - Dark Surface: #141414 (inputs, inactive elements)
* - Light Surface: #262626 (separators, borders)
* - Stark White: #ededed (primary text)
* - Muted: #737373 (secondary text)
* - Razor Red: #ff0044 (THE accent - focus, cursor, selection)
* - Electric Cyan: #00eaff (info, links, technical)
* - Sacred Purple: #9d00ff (special, root, elevated)
* - Neon Green: #00ff99 (success, OK)
* - Warning Yellow: #ffb700 (warning, caution)
*
* Bright Escalations:
* - Alert Red: #ff8899 (distinguishable from cursor)
* - Active Cyan: #5af3ff (active info)
* - Active Green: #2bffb2 (active success)
* - Urgent Yellow: #ffd24d (urgent warning)
* - Elevated Purple:#c84dff (elevated special)
*
* Usage: Set theme = "apex-neon" in config.toml
*/
:root {
/* Core surfaces */
--owlry-bg: #050505;
--owlry-bg-secondary: #141414;
--owlry-border: #262626;
--owlry-text: #ededed;
--owlry-text-secondary: #737373;
/* The Predator - primary accent */
--owlry-accent: #ff0044;
--owlry-accent-bright: #00eaff;
--owlry-badge-app: #00eaff;
--owlry-badge-cmd: #9d00ff;
--owlry-badge-dmenu: #00ff99;
--owlry-badge-uuctl: #ffb700;
--owlry-accent-bright: #ff8899;
/* Provider badges - mapped to Apex semantics */
--owlry-badge-app: #00eaff; /* Cyan: apps are informational */
--owlry-badge-bookmark: #ffb700; /* Yellow: bookmarks need attention */
--owlry-badge-calc: #ffd24d; /* Bright Yellow: calculator results */
--owlry-badge-clip: #9d00ff; /* Purple: clipboard is special */
--owlry-badge-cmd: #9d00ff; /* Purple: commands are elevated */
--owlry-badge-dmenu: #00ff99; /* Green: dmenu is success/pipe */
--owlry-badge-emoji: #c84dff; /* Bright Purple: emoji is special */
--owlry-badge-file: #5af3ff; /* Bright Cyan: file search is active info */
--owlry-badge-script: #2bffb2; /* Bright Green: scripts execute successfully */
--owlry-badge-ssh: #00eaff; /* Cyan: SSH is technical/info */
--owlry-badge-sys: #ff0044; /* Red: system actions are critical */
--owlry-badge-uuctl: #ffb700; /* Yellow: uuctl requires attention */
--owlry-badge-web: #00eaff; /* Cyan: web is informational */
/* Widget badges */
--owlry-badge-media: #c84dff; /* Bright Purple: media is special */
--owlry-badge-weather: #5af3ff; /* Bright Cyan: weather is active info */
--owlry-badge-pomo: #ff8899; /* Alert Red: pomodoro demands attention */
}
.owlry-main {
background-color: rgba(5, 5, 5, 0.98);
border: 1px solid rgba(38, 38, 38, 0.8);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.85),
0 0 0 1px rgba(255, 0, 68, 0.25);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.8),
0 0 0 1px rgba(255, 0, 68, 0.1);
}
.owlry-search {
background-color: rgba(20, 20, 20, 0.95);
border: 2px solid rgba(255, 0, 68, 0.7);
background-color: rgba(20, 20, 20, 0.9);
border: 2px solid rgba(38, 38, 38, 0.8);
color: var(--owlry-text);
caret-color: var(--owlry-accent);
}
.owlry-search:focus {
border-color: var(--owlry-accent);
box-shadow: 0 0 0 2px rgba(255, 0, 68, 0.2);
box-shadow: 0 0 0 2px rgba(255, 0, 68, 0.3);
}
.owlry-result-row:hover {
@@ -41,70 +98,247 @@
}
.owlry-result-row:selected {
background-color: rgba(0, 234, 255, 0.2);
border-left: 3px solid var(--owlry-accent-bright);
background-color: rgba(255, 0, 68, 0.15);
border-left: 3px solid var(--owlry-accent);
}
.owlry-result-row:selected .owlry-result-name {
color: var(--owlry-text);
color: var(--owlry-accent-bright);
}
.owlry-result-row:selected .owlry-result-icon {
color: var(--owlry-text);
color: var(--owlry-accent);
}
/* Provider badges - styled per Apex semantics */
.owlry-badge-app {
background-color: rgba(0, 234, 255, 0.2);
background-color: rgba(0, 234, 255, 0.15);
color: var(--owlry-badge-app);
}
.owlry-badge-bookmark {
background-color: rgba(255, 183, 0, 0.15);
color: var(--owlry-badge-bookmark);
}
.owlry-badge-calc {
background-color: rgba(255, 210, 77, 0.15);
color: var(--owlry-badge-calc);
}
.owlry-badge-clip {
background-color: rgba(157, 0, 255, 0.15);
color: var(--owlry-badge-clip);
}
.owlry-badge-cmd {
background-color: rgba(157, 0, 255, 0.2);
background-color: rgba(157, 0, 255, 0.15);
color: var(--owlry-badge-cmd);
}
.owlry-badge-dmenu {
background-color: rgba(0, 255, 153, 0.2);
background-color: rgba(0, 255, 153, 0.15);
color: var(--owlry-badge-dmenu);
}
.owlry-badge-emoji {
background-color: rgba(200, 77, 255, 0.15);
color: var(--owlry-badge-emoji);
}
.owlry-badge-file {
background-color: rgba(90, 243, 255, 0.15);
color: var(--owlry-badge-file);
}
.owlry-badge-script {
background-color: rgba(43, 255, 178, 0.15);
color: var(--owlry-badge-script);
}
.owlry-badge-ssh {
background-color: rgba(0, 234, 255, 0.15);
color: var(--owlry-badge-ssh);
}
.owlry-badge-sys {
background-color: rgba(255, 0, 68, 0.15);
color: var(--owlry-badge-sys);
}
.owlry-badge-uuctl {
background-color: rgba(255, 183, 0, 0.2);
background-color: rgba(255, 183, 0, 0.15);
color: var(--owlry-badge-uuctl);
}
.owlry-badge-web {
background-color: rgba(0, 234, 255, 0.15);
color: var(--owlry-badge-web);
}
/* Widget badges */
.owlry-badge-media {
background-color: rgba(200, 77, 255, 0.15);
color: var(--owlry-badge-media);
}
.owlry-badge-weather {
background-color: rgba(90, 243, 255, 0.15);
color: var(--owlry-badge-weather);
}
.owlry-badge-pomo {
background-color: rgba(255, 136, 153, 0.15);
color: var(--owlry-badge-pomo);
}
/* Filter button - default uses The Predator */
.owlry-filter-button:checked {
background-color: rgba(255, 0, 68, 0.2);
color: var(--owlry-accent);
border-color: rgba(255, 0, 68, 0.4);
border-color: rgba(255, 0, 68, 0.5);
}
/* Provider-specific filter buttons - follow Apex semantics */
.owlry-filter-app:checked {
background-color: rgba(0, 234, 255, 0.2);
background-color: rgba(0, 234, 255, 0.15);
color: var(--owlry-badge-app);
border-color: rgba(0, 234, 255, 0.4);
border-color: rgba(0, 234, 255, 0.5);
}
.owlry-filter-bookmark:checked {
background-color: rgba(255, 183, 0, 0.15);
color: var(--owlry-badge-bookmark);
border-color: rgba(255, 183, 0, 0.5);
}
.owlry-filter-calc:checked {
background-color: rgba(255, 210, 77, 0.15);
color: var(--owlry-badge-calc);
border-color: rgba(255, 210, 77, 0.5);
}
.owlry-filter-clip:checked {
background-color: rgba(157, 0, 255, 0.15);
color: var(--owlry-badge-clip);
border-color: rgba(157, 0, 255, 0.5);
}
.owlry-filter-cmd:checked {
background-color: rgba(157, 0, 255, 0.2);
background-color: rgba(157, 0, 255, 0.15);
color: var(--owlry-badge-cmd);
border-color: rgba(157, 0, 255, 0.4);
border-color: rgba(157, 0, 255, 0.5);
}
.owlry-filter-dmenu:checked {
background-color: rgba(0, 255, 153, 0.15);
color: var(--owlry-badge-dmenu);
border-color: rgba(0, 255, 153, 0.5);
}
.owlry-filter-emoji:checked {
background-color: rgba(200, 77, 255, 0.15);
color: var(--owlry-badge-emoji);
border-color: rgba(200, 77, 255, 0.5);
}
.owlry-filter-file:checked {
background-color: rgba(90, 243, 255, 0.15);
color: var(--owlry-badge-file);
border-color: rgba(90, 243, 255, 0.5);
}
.owlry-filter-script:checked {
background-color: rgba(43, 255, 178, 0.15);
color: var(--owlry-badge-script);
border-color: rgba(43, 255, 178, 0.5);
}
.owlry-filter-ssh:checked {
background-color: rgba(0, 234, 255, 0.15);
color: var(--owlry-badge-ssh);
border-color: rgba(0, 234, 255, 0.5);
}
.owlry-filter-sys:checked {
background-color: rgba(255, 0, 68, 0.15);
color: var(--owlry-badge-sys);
border-color: rgba(255, 0, 68, 0.5);
}
.owlry-filter-uuctl:checked {
background-color: rgba(255, 183, 0, 0.2);
background-color: rgba(255, 183, 0, 0.15);
color: var(--owlry-badge-uuctl);
border-color: rgba(255, 183, 0, 0.4);
border-color: rgba(255, 183, 0, 0.5);
}
.owlry-filter-web:checked {
background-color: rgba(0, 234, 255, 0.15);
color: var(--owlry-badge-web);
border-color: rgba(0, 234, 255, 0.5);
}
/* Widget filter buttons */
.owlry-filter-media:checked {
background-color: rgba(200, 77, 255, 0.15);
color: var(--owlry-badge-media);
border-color: rgba(200, 77, 255, 0.5);
}
.owlry-filter-weather:checked {
background-color: rgba(90, 243, 255, 0.15);
color: var(--owlry-badge-weather);
border-color: rgba(90, 243, 255, 0.5);
}
.owlry-filter-pomodoro:checked {
background-color: rgba(255, 136, 153, 0.15);
color: var(--owlry-badge-pomo);
border-color: rgba(255, 136, 153, 0.5);
}
/* Scrollbar - subtle in Void, The Predator on active */
scrollbar slider {
background-color: rgba(38, 38, 38, 0.6);
background-color: rgba(38, 38, 38, 0.8);
}
scrollbar slider:hover {
background-color: rgba(115, 115, 115, 0.6);
background-color: rgba(64, 64, 64, 0.9);
}
scrollbar slider:active {
background-color: var(--owlry-accent);
}
/* Text selection - Apex Hard Rule: black text on red (target locked) */
selection {
background-color: var(--owlry-accent);
color: #050505;
}
/* Mode indicator - The Predator marks current mode */
.owlry-mode-indicator {
background-color: rgba(255, 0, 68, 0.2);
color: var(--owlry-accent);
border: 1px solid rgba(255, 0, 68, 0.3);
}
/* Hints bar */
.owlry-hints {
border-top: 1px solid rgba(38, 38, 38, 0.8);
}
.owlry-hints-label {
color: var(--owlry-text-secondary);
}
/* Tag badges in results */
.owlry-tag-badge {
background-color: rgba(38, 38, 38, 0.6);
color: var(--owlry-text-secondary);
}
.owlry-result-row:selected .owlry-tag-badge {
background-color: rgba(255, 136, 153, 0.25);
color: var(--owlry-accent-bright);
}

View File

@@ -1,93 +1,50 @@
{
"$schema": "/etc/xdg/swaync/configSchema.json",
"positionX": "right",
"positionY": "top",
"layer": "overlay",
"control-center-margin-top": 10,
"control-center-margin-bottom": 10,
"control-center-margin-right": 10,
"control-center-margin-left": 10,
"notification-icon-size": 64,
"notification-body-image-height": 100,
"notification-body-image-width": 200,
"timeout": 3,
"timeout-low": 2,
"timeout-critical": 0,
"fit-to-screen": false,
"control-center-width": 500,
"control-center-height": 1025,
"notification-window-width": 440,
"keyboard-shortcuts": true,
"image-visibility": "when-available",
"transition-time": 200,
"hide-on-clear": true,
"hide-on-action": true,
"script-fail-notify": true,
"widgets": [
"title",
"dnd",
"notifications",
"mpris",
"volume",
"buttons-grid"
],
"widget-config": {
"title": {
"text": "Notification Center",
"clear-all-button": true,
"button-text": "󰆴 Clear All"
},
"dnd": {
"text": "Do Not Disturb"
},
"label": {
"max-lines": 1,
"text": "Notification Center"
},
"mpris": {
"image-size": 96,
"image-radius": 7
},
"volume": {
"label": "󰕾",
"show-per-app": true
},
"buttons-grid": {
"actions": [
{
"label": "󰐥",
"command": "systemctl poweroff"
},
{
"label": "󰜉",
"command": "systemctl reboot"
},
{
"label": "󰌾",
"command": "loginctl lock-session"
},
{
"label": "󰍃",
"command": "uwsm stop"
},
{
"label": "󰤄",
"command": "systemctl suspend"
},
{
"label": "󰕾",
"command": "swayosd-client --output-volume mute-toggle"
},
{
"label": "󰍬",
"command": "swayosd-client --input-volume mute-toggle"
},
{
"label": "",
"command": "obs"
}
]
}
}
}
"$schema": "/etc/xdg/swaync/configSchema.json",
"ignore-gtk-theme": true,
"cssPriority": "user",
"positionX": "right",
"positionY": "top",
"layer": "overlay",
"layer-shell": true,
"control-center-width": 480,
"control-center-height": -1,
"control-center-margin-top": 14,
"control-center-margin-right": 14,
"control-center-margin-bottom": 14,
"control-center-margin-left": 14,
"control-center-exclusive-zone": true,
"fit-to-screen": true,
"notification-window-width": 440,
"notification-window-height": -1,
"notification-grouping": true,
"relative-timestamps": true,
"hide-on-clear": false,
"hide-on-action": true,
"widgets": [
"title#ApexTitle",
"dnd#ApexDnd",
"notifications#ApexNoti"
],
"widget-config": {
"title#ApexTitle": {
"text": "Notification Center",
"clear-all-button": true,
"button-text": "Clear All"
},
"dnd#ApexDnd": {
"text": "Do Not Disturb"
},
"notifications#ApexNoti": {
"vexpand": true
}
}
}

View File

@@ -1,252 +1,201 @@
@define-color rp-base #050505;
@define-color rp-surface #141414;
@define-color rp-overlay #262626;
@define-color rp-hl-low #141414;
@define-color rp-hl-med #262626;
@define-color rp-hl-high #404040;
/* Apex Neon for SwayNotificationCenter
State over decoration. If it isn't important, it doesn't glow. */
@define-color rp-muted #404040;
@define-color rp-subtle #404040;
@define-color rp-text #ededed;
@define-color base #050505; /* Void */
@define-color surface #141414; /* Panel */
@define-color overlay #262626; /* Border */
@define-color text #ededed; /* Foreground */
@define-color muted #737373; /* Subtext */
@define-color rp-love #ff0044;
@define-color rp-gold #ffb700;
@define-color rp-rose #ff80bf;
@define-color rp-pine #00ff99;
@define-color rp-foam #00eaff;
@define-color rp-iris #9d00ff;
/* Apex Neon palette */
@define-color cc-bg @rp-surface;
@define-color noti-border-color @rp-hl-high;
@define-color noti-bg @rp-overlay;
@define-color noti-bg-darker @rp-hl-low;
@define-color noti-bg-hover @rp-hl-med;
@define-color noti-bg-focus alpha(@rp-hl-high, 0.6);
@define-color text-color @rp-text;
@define-color text-color-disabled @rp-subtle;
@define-color bg-selected @rp-foam;
@define-color red #ff0044; /* Active intent / destructive */
@define-color cyan #00eaff; /* Info / hover */
@define-color green #00ff99; /* Enabled / OK */
@define-color purple #9d00ff; /* Special mode */
@define-color alert #ff8899; /* Critical (distinct from "you are here" red) */
* {
font-family: JetBrainsMono NFP;
font-weight: bold;
font-size: 14px;
all: unset;
font-family: "JetBrainsMono Nerd Font", "Inter", sans-serif;
font-size: 12px;
color: @text;
}
.control-center .notification-row:focus,
.control-center .notification-row:hover {
opacity: 1;
background: @noti-bg-darker;
}
.notification-row {
outline: none;
margin: 20px;
padding: 0;
}
.notification {
background: transparent;
margin: 0px;
}
.notification-content {
background: @cc-bg;
padding: 7px;
border-radius: 0px;
border: 2px solid @noti-border-color;
margin: 0;
}
.close-button {
background: @rp-gold;
color: @cc-bg;
text-shadow: none;
padding: 0;
border-radius: 0px;
margin-top: 5px;
margin-right: 5px;
}
.close-button:hover {
box-shadow: none;
background: @rp-rose;
color: @cc-bg;
transition: all .15s ease-in-out;
border: none;
}
.notification-action {
color: @text-color;
border: 2px solid @noti-border-color;
border-top: none;
border-radius: 0px;
background: @rp-base;
}
.notification-default-action:hover,
.notification-action:hover {
color: @text-color;
background: @noti-bg-hover;
}
.summary {
padding-top: 7px;
font-size: 13px;
color: @text-color;
}
.time {
font-size: 11px;
color: @rp-gold;
margin-right: 24px;
}
.body {
font-size: 12px;
color: @text-color;
/* ===== Windows ===== */
.control-center,
.notification-window {
background-color: rgba(5, 5, 5, 0.92);
}
.control-center {
background: @cc-bg;
border: 2px solid @noti-border-color;
border-radius: 0px;
border: 2px solid @overlay;
border-radius: 12px;
padding: 10px;
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.70);
}
.control-center-list {
background: transparent;
}
.control-center-list-placeholder {
opacity: .5;
}
.floating-notifications {
background: transparent;
}
.blank-window {
background: alpha(@rp-base, 0.1);
.notification-window {
border: 2px solid @overlay;
border-radius: 12px;
padding: 8px;
box-shadow: 0 14px 34px rgba(0, 0, 0, 0.70);
}
/* ===== Title row ===== */
.widget-title {
color: @text-color;
background: @noti-bg-darker;
padding: 5px 10px;
margin: 10px 10px 5px 10px;
font-size: 1.5rem;
border-radius: 5px;
margin-bottom: 8px;
}
.widget-title > button {
font-size: 1rem;
color: @text-color;
text-shadow: none;
background: @noti-bg;
box-shadow: none;
border-radius: 5px;
.widget-title label {
font-size: 15px;
font-weight: 800;
}
.widget-title > button:hover {
background: @rp-gold;
color: @cc-bg;
.widget-title button {
background-color: @surface;
border: 1px solid @overlay;
border-radius: 10px;
padding: 6px 10px;
}
.widget-title button:hover {
border-color: @red;
}
.widget-title button:active {
background-color: @red;
color: @base; /* text turns black on red, non-negotiable */
}
/* ===== DND ===== */
.widget-dnd {
background: @noti-bg-darker;
padding: 5px 10px;
margin: 5px 10px 10px 10px;
border-radius: 5px;
font-size: large;
color: @text-color;
background-color: @surface;
border: 1px solid @overlay;
border-radius: 10px;
padding: 8px 10px;
margin-bottom: 10px;
}
.widget-dnd > switch {
border-radius: 4px;
background: @rp-muted;
.widget-dnd label {
font-weight: 700;
}
.widget-dnd > switch:checked {
background: @rp-gold;
border: 1px solid @rp-gold;
.widget-dnd switch {
background-color: @overlay;
border-radius: 999px;
padding: 3px;
}
.widget-dnd > switch slider {
background: @cc-bg;
border-radius: 5px;
.widget-dnd switch slider {
background-color: @text;
border-radius: 999px;
min-width: 18px;
min-height: 18px;
}
.widget-dnd > switch:checked slider {
background: @cc-bg;
border-radius: 5px;
.widget-dnd switch:checked {
background-color: @purple;
}
.widget-label {
margin: 10px 10px 5px 10px;
.widget-dnd switch:checked slider {
background-color: @base;
}
.widget-label > label {
font-size: 1rem;
color: @text-color;
/* ===== Notifications list: remove "giant grey slab" ===== */
.widget-notifications {
background-color: transparent;
}
.widget-mpris {
color: @text-color;
background: @noti-bg-darker;
padding: 5px 10px 0px 0px;
margin: 5px 10px 5px 10px;
border-radius: 0px;
.notification-group,
.notification-group-headers,
.notification-group-icon {
background-color: transparent;
}
.widget-mpris > box > button {
border-radius: 5px;
/* ===== Notification card ===== */
.notification-row {
background-color: transparent;
margin: 0 0 8px 0;
outline: none;
}
.widget-mpris-player {
padding: 5px 10px;
margin: 10px;
.notification {
background-color: @surface;
border: 1px solid @overlay;
border-radius: 12px;
padding: 10px;
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.60);
}
.widget-mpris-title {
font-weight: 700;
font-size: 1.25rem;
.notification-row:hover .notification {
border-color: @cyan;
}
.widget-mpris-subtitle {
font-size: 1.1rem;
color: @text-color-disabled;
.notification-row:focus .notification {
border-color: @red;
}
.widget-buttons-grid {
font-size: x-large;
padding: 5px;
margin: 5px 10px 10px 10px;
border-radius: 5px;
background: @noti-bg-darker;
/* Urgency */
.notification.critical {
border-color: @alert;
box-shadow: 0 0 0 1px @alert;
}
.widget-buttons-grid > flowbox > flowboxchild > button {
margin: 3px;
background: @cc-bg;
border-radius: 5px;
color: @text-color;
border: 1px solid @noti-border-color;
.image {
border-radius: 10px;
margin-right: 8px;
}
.widget-buttons-grid > flowbox > flowboxchild > button:hover {
background: @rp-gold;
color: @cc-bg;
.summary {
font-weight: 800;
font-size: 13px;
}
.widget-menubar > box > .menu-button-bar > button {
border: none;
background: transparent;
color: @text-color;
.body {
color: @muted;
margin-top: 2px;
}
.topbar-buttons > button {
border: none;
background: transparent;
color: @text-color;
.time {
color: @cyan;
font-weight: 700;
}
/* Notification actions */
.notification-action {
background-color: @overlay;
border-radius: 10px;
padding: 5px 8px;
margin-top: 6px;
}
.notification-action:hover {
box-shadow: inset 0 0 0 1px @cyan;
}
.notification-action:active {
background-color: @cyan;
color: @base;
}
/* Close button */
.close-button {
background-color: @overlay;
border-radius: 8px;
padding: 3px;
}
.close-button:hover {
background-color: @red;
color: @base;
}
.close-button:active {
background-color: @red;
color: @base;
}
/* ===== Popup notifications container (safe even if class names differ) ===== */
.floating-notifications.background {
background-color: transparent;
padding: 0;
}

View File

@@ -8,7 +8,7 @@
"layer": "top",
"position": "left",
"output": "{{ $primary_output }}",
"width": 90,
"width": 54,
"spacing": 4,
"margin-top": 0,
"margin-bottom": 0,
@@ -19,7 +19,6 @@
{{- if eq .chezmoi.hostname "owlenpc00" }}
"custom/alhp",
{{- end }}
"hyprland/window",
"hyprland/workspaces"
],
@@ -47,14 +46,6 @@
{{- end }}
],
"hyprland/window": {
"format": "{title}",
"max-length": 18,
"icon": true,
"icon-size": 18,
"separate-outputs": false
},
"hyprland/workspaces": {
"format": "{icon} {id}",
"all-outputs": true,
@@ -72,18 +63,31 @@
"cpu": {
"interval": 2,
"format": "{usage}%"
"format": "{usage}%",
"states": {
"warning": 75,
"critical": 90
}
},
"memory": {
"interval": 5,
"format": "{used:0.1f}G/{total:0.1f}G\n{swapUsed:0.1f}G/{swapTotal:0.1f}G"
"format": " {percentage}%\n {swapPercentage}%",
"tooltip-format": "RAM: {used:0.1f}G/{total:0.1f}G\nSWAP: {swapUsed:0.1f}G/{swapTotal:0.1f}G",
"states": {
"warning": 75,
"critical": 90
}
},
"disk#root": {
"interval": 30,
"format": "/ {percentage_used}%",
"path": "/"
"path": "/",
"states": {
"warning": 80,
"critical": 90
}
},
"network": {
@@ -92,7 +96,8 @@
"format-ethernet": "",
"tooltip-format-wifi": "{signalStrength}\n {bandwidthUpBytes}\n {bandwidthDownBytes}",
"tooltip-format-ethernet": " {bandwidthUpBytes}\n {bandwidthDownBytes}",
"format-disconnected": ""
"format-disconnected": "",
"tooltip-format-disconnected": "Disconnected"
},
"idle_inhibitor": {
@@ -225,6 +230,7 @@
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:18.3/hwmon",
"input-filename": "temp1_input",
"interval": 5,
"warning-threshold": 80,
"critical-threshold": 85,
"format": " {temperatureC}°C",
"format-critical": " {temperatureC}°C ",
@@ -235,6 +241,7 @@
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:01.1/0000:10:00.0/0000:11:00.0/0000:12:00.0/hwmon",
"input-filename": "temp1_input",
"interval": 5,
"warning-threshold": 90,
"critical-threshold": 100,
"format": "GPU {temperatureC}°C",
"format-critical": "GPU {temperatureC}°C ",
@@ -245,6 +252,7 @@
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:01.1/0000:10:00.0/0000:11:00.0/0000:12:00.0/hwmon",
"input-filename": "temp2_input",
"interval": 5,
"warning-threshold": 100,
"critical-threshold": 110,
"format": " {temperatureC}°C",
"format-critical": " {temperatureC}°C ",
@@ -255,6 +263,7 @@
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:01.1/0000:10:00.0/0000:11:00.0/0000:12:00.0/hwmon",
"input-filename": "temp3_input",
"interval": 5,
"warning-threshold": 90,
"critical-threshold": 100,
"format": " {temperatureC}°C",
"format-critical": " {temperatureC}°C ",
@@ -265,6 +274,7 @@
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:02.2/0000:23:00.0/nvme/nvme0/hwmon",
"input-filename": "temp1_input",
"interval": 10,
"warning-threshold": 75,
"critical-threshold": 85,
"format": " {temperatureC}°C",
"format-critical": " {temperatureC}°C ",
@@ -272,10 +282,11 @@
},
"custom/swaync": {
"format": " {}",
"exec-if": "which swaync-client >/dev/null 2>&1 && pgrep -x swaync >/dev/null 2>&1",
"exec": "swaync-client -c",
"exec": "$HOME/.config/waybar/scripts/swaync-count.sh",
"return-type": "json",
"interval": 2,
"format": "{text}",
"on-click": "swaync-client -t -sw",
"on-click-right": "swaync-client -d",
"on-click-middle": "swaync-client -C"

View File

@@ -2,51 +2,50 @@
set -euo pipefail
IFS=$'\n\t'
# defaults
text=""
tooltip='All good'
class='good'
tooltip="All good"
class="good"
# Check if alhp.utils command exists, if not consider it as down
if ! command -v alhp.utils &> /dev/null; then
tooltip="Service unavailable"
text=""
class="down"
if ! command -v alhp.utils >/dev/null 2>&1; then
class="down"
tooltip="Service unavailable"
else
ALHP_OUTPUT=$(alhp.utils -j)
mirror_stale=$(jq -r '.mirror_out_of_date' <<<"$ALHP_OUTPUT")
if ! ALHP_OUTPUT=$(alhp.utils -j 2>/dev/null); then
class="down"
tooltip="Service error"
else
total=$(jq -r '.total // 0' <<<"$ALHP_OUTPUT" 2>/dev/null || echo 0)
mirror_stale=$(jq -r '.mirror_out_of_date // false' <<<"$ALHP_OUTPUT" 2>/dev/null || echo false)
total=$(jq -r '.total' <<<"$ALHP_OUTPUT")
mirror_stale=$(jq -r '.mirror_out_of_date' <<<"$ALHP_OUTPUT")
readarray -t packages < <(jq -r '.packages // [] | .[]' <<<"$ALHP_OUTPUT" 2>/dev/null || true)
# safe array even if packages is null
readarray -t packages < <(
jq -r '.packages // [] | .[]' <<<"$ALHP_OUTPUT"
)
# 1) Mirror stale? highest priority
if [[ "$mirror_stale" == "true" ]]; then
class="stale"
tooltip="Mirror is out of date"
# 2) Any pending PKGBUILDs?
class="stale"
tooltip="Mirror is out of date"
elif (( total > 0 )); then
class="bad"
text="$total"
class="bad"
text="$total"
if (( ${#packages[@]} > 0 )); then
tooltip=$(printf "%s\n" "${packages[@]}")
else
tooltip="Pending: $total"
fi
fi
fi
fi
case "$class" in
good) icon=" ";;
stale) icon="󰏖 ";;
bad) icon="󰏗 ";;
down) icon="x ";;
good) icon="" ;;
stale) icon="󰏖" ;;
bad) icon="󰏗" ;;
down) icon="󰅖" ;;
esac
# Emit compact JSON for Statusbar
jq -nc \
--arg text "<span color=\"#4F84CC\">$icon</span> <span color=\"#CAD3E8\">$text</span>" \
--arg class "$class" \
--arg tooltip "$tooltip" \
'{text: $text, class: $class, tooltip: $tooltip}'
out="$icon"
[[ -n "$text" ]] && out+=" $text"
jq -nc \
--arg text "$out" \
--arg class "$class" \
--arg tooltip "$tooltip" \
'{text:$text, class:$class, tooltip:$tooltip}'

View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
count_raw=$(swaync-client -c 2>/dev/null || echo "")
if [[ "$count_raw" =~ ^[0-9]+$ ]]; then
count=$count_raw
else
count=0
fi
class="clear"
text=""
tooltip="No notifications"
if (( count > 0 )); then
class="unread"
text="$count"
tooltip="Unread: $count"
fi
jq -nc \
--arg text "$text" \
--arg class "$class" \
--arg tooltip "$tooltip" \
'{text:$text, class:$class, tooltip:$tooltip}'

View File

@@ -3,6 +3,14 @@ set -euo pipefail
cycle_seconds=3
# Critical thresholds (deg C) to match module semantics
cpu_warn=80
cpu_crit=85
gpu_warn=100
gpu_crit=110
nvme_warn=75
nvme_crit=85
resolve_hwmon_file() {
local base="$1" file="$2" sub
if [[ -r "$base/$file" ]]; then
@@ -55,35 +63,61 @@ gpu_path="/sys/devices/pci0000:00/0000:00:01.1/0000:10:00.0/0000:11:00.0/0000:12
nvme_path="/sys/devices/pci0000:00/0000:00:02.2/0000:23:00.0/nvme/nvme0/hwmon"
labels=()
keys=()
icons=()
values=()
warn=()
crit=()
if temp=$(read_temp "$cpu_path" "temp1_input" "k10temp"); then
labels+=("CPU")
keys+=("cpu")
icons+=("")
values+=("$temp")
warn+=("$cpu_warn")
crit+=("$cpu_crit")
fi
if temp=$(read_temp "$gpu_path" "temp2_input" "amdgpu"); then
labels+=("GPU")
keys+=("gpu_hotspot")
icons+=("")
values+=("$temp")
warn+=("$gpu_warn")
crit+=("$gpu_crit")
fi
if temp=$(read_temp "$nvme_path" "temp1_input" "nvme"); then
labels+=("NVMe")
keys+=("nvme")
icons+=("")
values+=("$temp")
warn+=("$nvme_warn")
crit+=("$nvme_crit")
fi
count=${#values[@]}
if (( count == 0 )); then
printf '{"text":" --","tooltip":"No temp sensors found"}\n'
jq -nc --arg text " --" --arg tooltip "No temp sensors found" \
'{text:$text, tooltip:$tooltip, class:["down"]}'
exit 0
fi
idx=$(( ($(date +%s) / cycle_seconds) % count ))
text="${icons[idx]} ${values[idx]}°C"
val=${values[idx]}
key=${keys[idx]}
warn_threshold=${warn[idx]}
critical_threshold=${crit[idx]}
is_warning=false
is_critical=false
if (( val >= critical_threshold )); then
is_critical=true
elif (( val >= warn_threshold )); then
is_warning=true
fi
text="${icons[idx]} ${val}°C"
tooltip=""
for i in "${!values[@]}"; do
@@ -93,4 +127,10 @@ for i in "${!values[@]}"; do
tooltip+="${labels[i]}: ${values[i]}°C"
done
printf '{"text":"%s","tooltip":"%s"}\n' "$text" "$tooltip"
jq -nc \
--arg text "$text" \
--arg tooltip "$tooltip" \
--arg key "$key" \
--argjson is_warning "$is_warning" \
--argjson is_critical "$is_critical" \
'{text:$text, tooltip:$tooltip, class: ([$key] + (if $is_critical then ["critical"] elif $is_warning then ["warning"] else [] end)) }'

View File

@@ -9,30 +9,32 @@
@define-color pine #00ff99; /* Toxic Green */
@define-color gold #ffb700; /* Warning Gold */
@define-color iris #9d00ff; /* Void Purple */
@define-color stealth #404040; /* GEMINI: Stealth */
@define-color alert #ff8899; /* Apex Neon: BrRed = Alerts */
@define-color hl_low #141414;
@define-color hl_med #262626;
@define-color hl_high #262626; /* keep borders “light surface”, not random gray */
@define-color bar_alpha rgba(5, 5, 5, 0.65);
@define-color surface_alpha rgba(20, 20, 20, 0.82);
@define-color overlay_alpha rgba(38, 38, 38, 0.92);
@define-color bar_alpha rgba(5, 5, 5, 0.85);
@define-color surface_alpha rgba(5, 5, 5, 0.9);
@define-color overlay_alpha rgba(20, 20, 20, 0.9);
/* Bar */
window#waybar {
background: @bar_alpha;
color: @text;
border: 0;
border-bottom: 1px solid @overlay;
}
/* Extra breathing room for the first/last pill in each section */
#left > :first-child,
#center > :first-child,
#right > :first-child { margin-top: 8px; }
#right > :first-child { margin-top: 6px; }
#left > :last-child,
#center > :last-child,
#right > :last-child { margin-bottom: 8px; }
#right > :last-child { margin-bottom: 6px; }
/* Typography */
* {
@@ -42,8 +44,8 @@ window#waybar {
/* Workspaces */
#workspaces {
margin: 1px;
padding: 2px 4px;
margin: 0;
padding: 2px 3px;
background: transparent;
font-size: 10px;
}
@@ -53,15 +55,15 @@ window#waybar {
background: @surface_alpha;
color: @muted; /* inactive should look “off” */
border: 1px solid @overlay; /* light surface border */
border-radius: 6px;
margin: 2px;
padding: 3px 6px;
border-radius: 5px;
margin: 1px;
padding: 2px 5px;
}
/* Hover = cyan tech highlight */
/* Hover = red target lock */
#workspaces button:hover {
background: @overlay_alpha;
border-color: @foam;
border-color: @love;
color: @text;
}
@@ -72,15 +74,15 @@ window#waybar {
border-color: @love;
}
/* Urgent = still red, but let it glow harder */
/* Urgent = alert red, not focus red */
#workspaces button.urgent {
background: @love;
background: @alert;
color: @base;
box-shadow: 0 0 6px rgba(255, 0, 68, 0.55);
border-color: @alert;
box-shadow: 0 0 6px rgba(255, 136, 153, 0.55);
}
/* Shared pill look for ALL modules */
#window,
#cpu,
#memory,
#disk,
@@ -102,13 +104,12 @@ window#waybar {
background: @surface_alpha;
color: @text;
border: 1px solid @overlay;
border-radius: 8px;
padding: 3px 6px;
margin: 2px 3px;
border-radius: 6px;
padding: 2px 6px;
margin: 2px 2px;
}
/* Universal hover = cyan border "scanline" effect */
#window:hover,
/* Universal hover = red selection cue */
#cpu:hover,
#memory:hover,
#disk:hover,
@@ -128,80 +129,53 @@ window#waybar {
#custom-hyprsunset:hover,
#custom-alhp:hover {
background: @overlay_alpha;
border-color: @foam;
}
/* Focus/primary module accents (Apex-Neon logic) */
#window { border-left: 3px solid @love; } /* focus = Razor Red */
/* Metrics: make them "dashboard semantics" */
#cpu { border-left: 3px solid @pine; } /* success/ok */
#memory { border-left: 3px solid @iris; } /* special */
#disk { border-left: 3px solid @foam; } /* info/tech */
#network{ border-left: 3px solid @foam; } /* network = cyan (tech accent) */
/* Temperature modules */
#temperature.cpu { border-left: 3px solid @pine; }
#temperature.gpu_hotspot { border-left: 3px solid @love; } /* hot = red, not pink */
#temperature.nvme { border-left: 3px solid @gold; }
#temperature.critical {
background: @love;
color: @base; /* black on red */
border-left-color: @love;
border-color: @love;
}
/* WirePlumber / audio */
#wireplumber { border-left: 3px solid @gold; }
/* State-driven styling: low urgency = border, high urgency = full pill */
#cpu.warning,
#memory.warning,
#disk.warning,
#battery.warning,
#temperature.warning,
#custom-temps-cycle.warning {
border-color: @gold;
}
#custom-alhp.stale,
#wireplumber.muted {
color: @muted;
border-left-color: @overlay;
border-color: @gold;
}
/* Privacy states */
#privacy.screencast { border-left: 3px solid @foam; } /* "active tech" */
#privacy.microphone { border-left: 3px solid @gold; }
#privacy.camera { border-left: 3px solid @iris; }
/* Idle inhibitor */
#idle_inhibitor.activated { border-left: 3px solid @foam; }
#idle_inhibitor.deactivated { border-left: 3px solid @overlay; color: @muted; }
/* Gamemode */
#gamemode { border-left: 3px solid @gold; }
/* Clock */
#clock { border-left: 3px solid @foam; }
/* Battery */
#battery { border-left: 3px solid @foam; }
#battery.warning { border-left-color: @gold; }
#battery.critical { border-left-color: @love; color: @love; }
/* Power profiles */
#power-profiles-daemon { border-left: 3px solid @gold; }
#power-profiles-daemon.performance { border-left-color: @love; }
#power-profiles-daemon.balanced { border-left-color: @foam; }
#power-profiles-daemon.power-saver { border-left-color: @pine; }
/* Bluetooth */
#bluetooth { border-left: 3px solid @iris; }
#bluetooth.off,
#bluetooth.disabled {
color: @muted;
border-left-color: @overlay;
#custom-swaync.unread {
border-color: @foam;
}
/* Notifications */
#custom-swaync { border-left: 3px solid @iris; }
#custom-swaync.dnd { border-left-color: @gold; }
#idle_inhibitor.activated { border-color: @foam; }
/* Night shift */
#custom-hyprsunset { border-left: 3px solid @foam; } /* tech accent instead of rose */
#privacy { border-color: @iris; }
#privacy-item,
#privacy-item.screenshare,
#privacy-item.audio-in,
#privacy-item.audio-out { color: @iris; }
/* ALHP custom module */
#custom-alhp { border-left: 3px solid @pine; }
#cpu.critical,
#memory.critical,
#disk.critical,
#battery.critical,
#network.disconnected,
#network.disabled,
#temperature.critical,
#custom-temps-cycle.critical,
#custom-alhp.bad,
#custom-alhp.down {
background: @alert;
color: @base;
border-color: @alert;
}
#wireplumber.muted { color: @muted; }
#idle_inhibitor.deactivated { color: @muted; }
/* Group wrappers */
#group-temps,
@@ -212,36 +186,34 @@ window#waybar {
padding: 0;
}
#custom-temps-cycle { border-left: 3px solid @foam; }
#custom-temps-cycle.down { color: @muted; }
#group-temps #temperature { margin: 2px 0; }
#group-temps #temperature:hover { background: @overlay_alpha; border-color: @foam; }
/* Preserve semantics within group */
#group-temps #temperature.cpu { border-left: 3px solid @pine; }
#group-temps #temperature.gpu_edge { border-left: 3px solid @iris; }
#group-temps #temperature.gpu_hotspot { border-left: 3px solid @love; }
#group-temps #temperature.nvme { border-left: 3px solid @gold; }
#group-temps #temperature { margin: 1px 0; }
#group-temps #temperature:hover { background: @overlay_alpha; border-color: @love; }
#group-temps #temperature.critical {
background: @love;
background: @alert;
color: @base;
border-color: @alert;
}
#group-temps #temperature.warning { border-color: @gold; }
/* Tray */
#tray { border-left: 3px solid @iris; }
#tray > .passive { opacity: 0.7; }
#tray > .needs-attention {
border-left: 3px solid @love;
box-shadow: 0 0 6px rgba(255, 0, 68, 0.55);
background: @alert;
color: @base;
border: 1px solid @alert;
box-shadow: 0 0 6px rgba(255, 136, 153, 0.4);
}
/* Volume group sizing */
#group-volume #wireplumber {
margin: 1px 0;
padding: 2px 4px;
padding: 2px 3px;
}
#group-volume #wireplumber:hover { background: @overlay_alpha; border-color: @foam; }
#group-volume #wireplumber:hover { background: @overlay_alpha; border-color: @love; }
/* Tooltips */
tooltip,
@@ -276,7 +248,7 @@ menuitem,
menuitem:hover,
.menuitem:hover {
background: @overlay_alpha;
border: 1px solid @foam;
border: 1px solid @love;
}
menuitem:disabled,
@@ -288,4 +260,3 @@ menu separator,
min-height: 1px;
margin: 6px 0;
}

View File

@@ -0,0 +1,27 @@
// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
"ui_font_weight": 400.0,
"ui_font_family": "InconsolataGo Nerd Font Mono",
"buffer_font_family": "InconsolataGo Nerd Font Mono",
"icon_theme": {
"mode": "system",
"light": "Zed (Default)",
"dark": "Zed (Default)"
},
"vim_mode": true,
"base_keymap": "JetBrains",
"ui_font_size": 16.0,
"buffer_font_size": 12.0,
"theme": {
"mode": "system",
"light": "Apex Aeon",
"dark": "Apex Neon"
}
}

View File

@@ -0,0 +1,629 @@
{
"$schema": "https://zed.dev/schema/themes/v0.2.0.json",
"name": "Apex",
"author": "S0wlz (Owlibou)",
"themes": [
{
"name": "Apex Neon",
"appearance": "dark",
"style": {
"background": "#050505",
"background.appearance": "opaque",
"surface.background": "#141414",
"elevated_surface.background": "#141414",
"panel.background": "#141414",
"panel.focused_border": "#ff0044",
"panel.indent_guide": "#26262666",
"panel.indent_guide_active": "#737373aa",
"panel.indent_guide_hover": "#737373cc",
"tab_bar.background": "#141414",
"tab.inactive_background": "#141414",
"tab.active_background": "#050505",
"title_bar.background": "#050505",
"title_bar.inactive_background": "#141414",
"toolbar.background": "#141414",
"status_bar.background": "#141414",
"border": "#262626",
"border.variant": "#141414",
"border.focused": "#ff0044",
"border.selected": "#ff0044",
"border.disabled": "#141414",
"border.transparent": "transparent",
"text": "#ededed",
"text.muted": "#737373",
"text.placeholder": "#737373",
"text.disabled": "#737373",
"text.accent": "#00eaff",
"icon": "#ededed",
"icon.muted": "#737373",
"icon.placeholder": "#737373",
"icon.disabled": "#737373",
"icon.accent": "#00eaff",
"accents": [
"#ff0044",
"#00eaff",
"#9d00ff",
"#00ff99",
"#ffb700"
],
"element.background": "#141414",
"element.hover": "#262626",
"element.active": "#262626",
"element.selected": "#262626",
"element.disabled": "#141414",
"ghost_element.background": null,
"ghost_element.hover": "#26262666",
"ghost_element.active": "#26262688",
"ghost_element.selected": "#26262666",
"ghost_element.disabled": null,
"drop_target.background": "#00eaff22",
"editor.background": "#050505",
"editor.foreground": "#ededed",
"editor.gutter.background": "#050505",
"editor.subheader.background": "#141414",
"editor.active_line.background": "#141414",
"editor.highlighted_line.background": "#141414",
"editor.line_number": "#737373",
"editor.active_line_number": "#ff0044",
"editor.wrap_guide": "#262626",
"editor.active_wrap_guide": "#737373",
"editor.indent_guide": "#26262666",
"editor.indent_guide_active": "#737373aa",
"editor.invisible": "#26262688",
"editor.document_highlight.read_background": "#00eaff22",
"editor.document_highlight.write_background": "#ff004422",
"editor.document_highlight.bracket_background": "#26262666",
"search.match_background": "#00eaff33",
"scrollbar.track.background": "#050505",
"scrollbar.track.border": "#050505",
"scrollbar.thumb.background": "#262626aa",
"scrollbar.thumb.hover_background": "#404040",
"scrollbar.thumb.border": "transparent",
"pane.focused_border": "#ff0044",
"pane_group.border": "#262626",
"link_text.hover": "#5af3ff",
"success": "#00ff99",
"success.background": "#00ff991a",
"success.border": "#00ff99",
"warning": "#ffb700",
"warning.background": "#ffb7001a",
"warning.border": "#ffb700",
"error": "#ff8899",
"error.background": "#ff88991a",
"error.border": "#ff8899",
"info": "#00eaff",
"info.background": "#00eaff1a",
"info.border": "#00eaff",
"hint": "#0088cc",
"hint.background": "#0088cc1a",
"hint.border": "#0088cc",
"predictive": "#0088cc",
"predictive.background": "#0088cc1a",
"predictive.border": "#0088cc",
"unreachable": "#9d00ff",
"unreachable.background": "#9d00ff1a",
"unreachable.border": "#9d00ff",
"created": "#00ff99",
"created.background": "#00ff991a",
"created.border": "#00ff99",
"modified": "#ffb700",
"modified.background": "#ffb7001a",
"modified.border": "#ffb700",
"deleted": "#ff8899",
"deleted.background": "#ff88991a",
"deleted.border": "#ff8899",
"renamed": "#00eaff",
"renamed.background": "#00eaff1a",
"renamed.border": "#00eaff",
"conflict": "#ff8899",
"conflict.background": "#ff88991a",
"conflict.border": "#ff8899",
"ignored": "#737373",
"ignored.background": "#7373731a",
"ignored.border": "#262626",
"hidden": "#737373",
"hidden.background": "#7373731a",
"hidden.border": "#262626",
"terminal.background": "#050505",
"terminal.foreground": "#ededed",
"terminal.bright_foreground": "#ffffff",
"terminal.dim_foreground": "#737373",
"terminal.ansi.background": "#050505",
"terminal.ansi.black": "#050505",
"terminal.ansi.red": "#ff0044",
"terminal.ansi.green": "#00ff99",
"terminal.ansi.yellow": "#ffb700",
"terminal.ansi.blue": "#00eaff",
"terminal.ansi.magenta": "#9d00ff",
"terminal.ansi.cyan": "#00eaff",
"terminal.ansi.white": "#ededed",
"terminal.ansi.bright_black": "#262626",
"terminal.ansi.bright_red": "#ff8899",
"terminal.ansi.bright_green": "#2bffb2",
"terminal.ansi.bright_yellow": "#ffd24d",
"terminal.ansi.bright_blue": "#5af3ff",
"terminal.ansi.bright_magenta": "#c84dff",
"terminal.ansi.bright_cyan": "#5af3ff",
"terminal.ansi.bright_white": "#ffffff",
"terminal.ansi.dim_black": "#050505",
"terminal.ansi.dim_red": "#ff0044",
"terminal.ansi.dim_green": "#00ff99",
"terminal.ansi.dim_yellow": "#ffb700",
"terminal.ansi.dim_blue": "#00eaff",
"terminal.ansi.dim_magenta": "#9d00ff",
"terminal.ansi.dim_cyan": "#00eaff",
"terminal.ansi.dim_white": "#ededed",
"players": [
{
"cursor": "#ff0044",
"background": "#ff0044",
"selection": "#ff004433"
},
{
"cursor": "#00eaff",
"background": "#00eaff",
"selection": "#00eaff33"
},
{
"cursor": "#9d00ff",
"background": "#9d00ff",
"selection": "#9d00ff33"
},
{
"cursor": "#00ff99",
"background": "#00ff99",
"selection": "#00ff9933"
},
{
"cursor": "#ffb700",
"background": "#ffb700",
"selection": "#ffb70033"
}
],
"version_control.added": "#00ff99",
"version_control.modified": "#ffb700",
"version_control.deleted": "#ff8899",
"version_control.conflict": "#ff8899",
"version_control.renamed": "#00eaff",
"version_control.ignored": "#737373",
"syntax": {
"comment": {
"color": "#737373",
"font_style": "italic"
},
"comment.doc": {
"color": "#737373",
"font_style": "italic"
},
"keyword": {
"color": "#00eaff"
},
"keyword.import": {
"color": "#00eaff"
},
"keyword.storage": {
"color": "#00eaff"
},
"function": {
"color": "#0088cc"
},
"function.method": {
"color": "#0088cc"
},
"function.special.definition": {
"color": "#0088cc"
},
"type": {
"color": "#9d00ff"
},
"type.builtin": {
"color": "#9d00ff"
},
"string": {
"color": "#00ff99"
},
"string.escape": {
"color": "#2bffb2"
},
"string.regex": {
"color": "#ffb700"
},
"number": {
"color": "#ffb700"
},
"boolean": {
"color": "#ffb700"
},
"constant": {
"color": "#ededed"
},
"constant.builtin": {
"color": "#9d00ff"
},
"variable": {
"color": "#ededed"
},
"variable.special": {
"color": "#9d00ff"
},
"property": {
"color": "#ededed"
},
"attribute": {
"color": "#0088cc"
},
"tag": {
"color": "#00eaff"
},
"label": {
"color": "#0088cc"
},
"operator": {
"color": "#ededed"
},
"punctuation": {
"color": "#737373"
},
"punctuation.bracket": {
"color": "#737373"
},
"punctuation.delimiter": {
"color": "#737373"
},
"punctuation.list_marker": {
"color": "#737373",
"font_weight": 700
},
"link_text": {
"color": "#00eaff"
},
"link_uri": {
"color": "#0088cc"
},
"emphasis": {
"font_style": "italic"
},
"emphasis.strong": {
"font_weight": 700
},
"title": {
"color": "#ededed",
"font_weight": 700
},
"text.literal": {
"color": "#00ff99"
},
"preproc": {
"color": "#0088cc"
},
"constructor": {
"color": "#0088cc"
},
"enum": {
"color": "#9d00ff"
},
"variant": {
"color": "#9d00ff"
},
"hint": {
"color": "#0088cc"
},
"predictive": {
"color": "#737373"
}
}
}
},
{
"name": "Apex Aeon",
"appearance": "light",
"style": {
"background": "#f5f5f5",
"background.appearance": "opaque",
"surface.background": "#e8e8e8",
"elevated_surface.background": "#ffffff",
"panel.background": "#e8e8e8",
"panel.focused_border": "#ff0044",
"panel.indent_guide": "#a0a0a066",
"panel.indent_guide_active": "#737373aa",
"panel.indent_guide_hover": "#737373cc",
"tab_bar.background": "#e8e8e8",
"tab.inactive_background": "#e8e8e8",
"tab.active_background": "#f5f5f5",
"title_bar.background": "#f5f5f5",
"title_bar.inactive_background": "#e8e8e8",
"toolbar.background": "#e8e8e8",
"status_bar.background": "#e8e8e8",
"border": "#737373",
"border.variant": "#a0a0a0",
"border.focused": "#ff0044",
"border.selected": "#ff0044",
"border.disabled": "#a0a0a0",
"border.transparent": "transparent",
"text": "#0a0a0a",
"text.muted": "#737373",
"text.placeholder": "#737373",
"text.disabled": "#a0a0a0",
"text.accent": "#007a88",
"icon": "#0a0a0a",
"icon.muted": "#737373",
"icon.placeholder": "#737373",
"icon.disabled": "#a0a0a0",
"icon.accent": "#007a88",
"accents": [
"#ff0044",
"#007a88",
"#7a3cff",
"#00b377",
"#d18f00"
],
"element.background": "#ffffff",
"element.hover": "#e8e8e8",
"element.active": "#e8e8e8",
"element.selected": "#e8e8e8",
"element.disabled": "#e8e8e8",
"ghost_element.background": null,
"ghost_element.hover": "#a0a0a033",
"ghost_element.active": "#a0a0a044",
"ghost_element.selected": "#a0a0a033",
"ghost_element.disabled": null,
"drop_target.background": "#33bccc22",
"editor.background": "#f5f5f5",
"editor.foreground": "#0a0a0a",
"editor.gutter.background": "#f5f5f5",
"editor.subheader.background": "#e8e8e8",
"editor.active_line.background": "#e8e8e8",
"editor.highlighted_line.background": "#e8e8e8",
"editor.line_number": "#737373",
"editor.active_line_number": "#ff0044",
"editor.wrap_guide": "#e8e8e8",
"editor.active_wrap_guide": "#a0a0a0",
"editor.indent_guide": "#a0a0a066",
"editor.indent_guide_active": "#737373aa",
"editor.invisible": "#a0a0a088",
"editor.document_highlight.read_background": "#007a881a",
"editor.document_highlight.write_background": "#ff00441a",
"editor.document_highlight.bracket_background": "#a0a0a033",
"search.match_background": "#33bccc44",
"scrollbar.track.background": "#f5f5f5",
"scrollbar.track.border": "#f5f5f5",
"scrollbar.thumb.background": "#a0a0a0aa",
"scrollbar.thumb.hover_background": "#737373",
"scrollbar.thumb.border": "transparent",
"pane.focused_border": "#ff0044",
"pane_group.border": "#a0a0a0",
"link_text.hover": "#33bccc",
"success": "#00b377",
"success.background": "#00b3771a",
"success.border": "#00b377",
"warning": "#d18f00",
"warning.background": "#d18f001a",
"warning.border": "#d18f00",
"error": "#ff4d6d",
"error.background": "#ff4d6d1a",
"error.border": "#ff4d6d",
"info": "#007a88",
"info.background": "#007a881a",
"info.border": "#007a88",
"hint": "#005577",
"hint.background": "#0055771a",
"hint.border": "#005577",
"predictive": "#005577",
"predictive.background": "#0055771a",
"predictive.border": "#005577",
"unreachable": "#7a3cff",
"unreachable.background": "#7a3cff1a",
"unreachable.border": "#7a3cff",
"created": "#00b377",
"created.background": "#00b3771a",
"created.border": "#00b377",
"modified": "#d18f00",
"modified.background": "#d18f001a",
"modified.border": "#d18f00",
"deleted": "#ff4d6d",
"deleted.background": "#ff4d6d1a",
"deleted.border": "#ff4d6d",
"renamed": "#007a88",
"renamed.background": "#007a881a",
"renamed.border": "#007a88",
"conflict": "#ff4d6d",
"conflict.background": "#ff4d6d1a",
"conflict.border": "#ff4d6d",
"ignored": "#737373",
"ignored.background": "#7373731a",
"ignored.border": "#a0a0a0",
"hidden": "#737373",
"hidden.background": "#7373731a",
"hidden.border": "#a0a0a0",
"terminal.background": "#f5f5f5",
"terminal.foreground": "#0a0a0a",
"terminal.bright_foreground": "#0a0a0a",
"terminal.dim_foreground": "#737373",
"terminal.ansi.background": "#f5f5f5",
"terminal.ansi.black": "#0a0a0a",
"terminal.ansi.red": "#ff0044",
"terminal.ansi.green": "#00b377",
"terminal.ansi.yellow": "#d18f00",
"terminal.ansi.blue": "#007a88",
"terminal.ansi.magenta": "#7a3cff",
"terminal.ansi.cyan": "#007a88",
"terminal.ansi.white": "#f5f5f5",
"terminal.ansi.bright_black": "#737373",
"terminal.ansi.bright_red": "#ff4d6d",
"terminal.ansi.bright_green": "#33d6a6",
"terminal.ansi.bright_yellow": "#ffbf40",
"terminal.ansi.bright_blue": "#33bccc",
"terminal.ansi.bright_magenta": "#a680ff",
"terminal.ansi.bright_cyan": "#33bccc",
"terminal.ansi.bright_white": "#ffffff",
"terminal.ansi.dim_black": "#0a0a0a",
"terminal.ansi.dim_red": "#ff0044",
"terminal.ansi.dim_green": "#00b377",
"terminal.ansi.dim_yellow": "#d18f00",
"terminal.ansi.dim_blue": "#007a88",
"terminal.ansi.dim_magenta": "#7a3cff",
"terminal.ansi.dim_cyan": "#007a88",
"terminal.ansi.dim_white": "#f5f5f5",
"players": [
{
"cursor": "#ff0044",
"background": "#ff0044",
"selection": "#ff004433"
},
{
"cursor": "#007a88",
"background": "#007a88",
"selection": "#007a8833"
},
{
"cursor": "#7a3cff",
"background": "#7a3cff",
"selection": "#7a3cff33"
},
{
"cursor": "#00b377",
"background": "#00b377",
"selection": "#00b37733"
},
{
"cursor": "#d18f00",
"background": "#d18f00",
"selection": "#d18f0033"
}
],
"version_control.added": "#00b377",
"version_control.modified": "#d18f00",
"version_control.deleted": "#ff4d6d",
"version_control.conflict": "#ff4d6d",
"version_control.renamed": "#007a88",
"version_control.ignored": "#737373",
"syntax": {
"comment": {
"color": "#737373",
"font_style": "italic"
},
"comment.doc": {
"color": "#737373",
"font_style": "italic"
},
"keyword": {
"color": "#007a88"
},
"keyword.import": {
"color": "#007a88"
},
"keyword.storage": {
"color": "#007a88"
},
"function": {
"color": "#005577"
},
"function.method": {
"color": "#005577"
},
"function.special.definition": {
"color": "#005577"
},
"type": {
"color": "#7a3cff"
},
"type.builtin": {
"color": "#7a3cff"
},
"string": {
"color": "#00b377"
},
"string.escape": {
"color": "#33d6a6"
},
"string.regex": {
"color": "#d18f00"
},
"number": {
"color": "#d18f00"
},
"boolean": {
"color": "#d18f00"
},
"constant": {
"color": "#0a0a0a"
},
"constant.builtin": {
"color": "#7a3cff"
},
"variable": {
"color": "#0a0a0a"
},
"variable.special": {
"color": "#7a3cff"
},
"property": {
"color": "#0a0a0a"
},
"attribute": {
"color": "#005577"
},
"tag": {
"color": "#007a88"
},
"label": {
"color": "#005577"
},
"operator": {
"color": "#0a0a0a"
},
"punctuation": {
"color": "#737373"
},
"punctuation.bracket": {
"color": "#737373"
},
"punctuation.delimiter": {
"color": "#737373"
},
"punctuation.list_marker": {
"color": "#737373",
"font_weight": 700
},
"link_text": {
"color": "#007a88"
},
"link_uri": {
"color": "#005577"
},
"emphasis": {
"font_style": "italic"
},
"emphasis.strong": {
"font_weight": 700
},
"title": {
"color": "#0a0a0a",
"font_weight": 700
},
"text.literal": {
"color": "#00b377"
},
"preproc": {
"color": "#005577"
},
"constructor": {
"color": "#005577"
},
"enum": {
"color": "#7a3cff"
},
"variant": {
"color": "#7a3cff"
},
"hint": {
"color": "#005577"
},
"predictive": {
"color": "#737373"
}
}
}
}
]
}

10
dot_gemini/settings.json Normal file
View File

@@ -0,0 +1,10 @@
{
"security": {
"auth": {
"selectedType": "oauth-personal"
}
},
"ui": {
"theme": "/home/mpuchstein/Dev/Themes/apex/dist/gemini/apex-neon.json"
}
}