diff --git a/templates/owlry/apex.css.j2 b/templates/owlry/apex.css.j2 new file mode 100644 index 0000000..dcc7cc7 --- /dev/null +++ b/templates/owlry/apex.css.j2 @@ -0,0 +1,174 @@ +{% set scheme_slug = scheme|lower|replace(' ', '-') %} +{% macro rgb(hex) -%} +{%- set value = hex|replace('#', '') -%} +{{ value[0:2]|int(base=16) }}, {{ value[2:4]|int(base=16) }}, {{ value[4:6]|int(base=16) }} +{%- endmacro %} +/* + * Owlry - {{ scheme }} Theme + * "State over Decoration." + * + * A high-contrast theme built for focus and clinical clarity. + * Color exists to signal STATE, not to decorate space. + * + * Author: S0wlz (Owlibou) + * + * Usage: Set theme = "{{ scheme_slug }}" in config.toml + */ + +:root { + /* Core surfaces */ + --owlry-bg: {{ palette.background }}; + --owlry-bg-secondary: {{ ui.panel }}; + --owlry-border: {{ ui.border }}; + --owlry-text: {{ palette.foreground }}; + --owlry-text-secondary: {{ ui.dim }}; + + /* The Predator - primary accent */ + --owlry-accent: {{ palette.cursor }}; + --owlry-accent-bright: {{ ansi.bright.red }}; + + /* Provider badges - mapped to Apex semantics */ + --owlry-badge-app: {{ palette.info }}; /* Cyan: apps are informational */ + --owlry-badge-bookmark: {{ palette.warning }}; /* Yellow: bookmarks need attention */ + --owlry-badge-calc: {{ ansi.bright.yellow }}; /* Bright Yellow: calculator results */ + --owlry-badge-clip: {{ palette.special }}; /* Purple: clipboard is special */ + --owlry-badge-cmd: {{ palette.special }}; /* Purple: commands are elevated */ + --owlry-badge-dmenu: {{ palette.success }}; /* Green: dmenu is success/pipe */ + --owlry-badge-emoji: {{ ansi.bright.magenta }}; /* Bright Purple: emoji is special */ + --owlry-badge-file: {{ ansi.bright.cyan }}; /* Bright Cyan: file search is active info */ + --owlry-badge-script: {{ ansi.bright.green }}; /* Bright Green: scripts execute successfully */ + --owlry-badge-ssh: {{ palette.info }}; /* Cyan: SSH is technical/info */ + --owlry-badge-sys: {{ palette.cursor }}; /* Red: system actions are critical */ + --owlry-badge-uuctl: {{ palette.warning }}; /* Yellow: uuctl requires attention */ + --owlry-badge-web: {{ palette.info }}; /* Cyan: web is informational */ + + /* Widget badges */ + --owlry-badge-media: {{ ansi.bright.magenta }}; /* Bright Purple: media is special */ + --owlry-badge-weather: {{ ansi.bright.cyan }}; /* Bright Cyan: weather is active info */ + --owlry-badge-pomo: {{ ansi.bright.red }}; /* Alert Red: pomodoro demands attention */ +} + +.owlry-main { + background-color: rgba({{ rgb(palette.background) }}, 0.98); + border: 1px solid rgba({{ rgb(ui.border) }}, 0.8); + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.8), + 0 0 0 1px rgba({{ rgb(palette.cursor) }}, 0.1); +} + +.owlry-search { + background-color: rgba({{ rgb(ui.panel) }}, 0.9); + border: 2px solid rgba({{ rgb(ui.border) }}, 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({{ rgb(palette.cursor) }}, 0.3); +} + +.owlry-result-row:hover { + background-color: rgba({{ rgb(ui.panel) }}, 0.8); +} + +.owlry-result-row:selected { + background-color: rgba({{ rgb(palette.cursor) }}, 0.15); + border-left: 3px solid var(--owlry-accent); +} + +.owlry-result-row:selected .owlry-result-name { + color: var(--owlry-accent-bright); +} + +.owlry-result-row:selected .owlry-result-icon { + color: var(--owlry-accent); +} + +/* Provider badges - styled per Apex semantics */ +.owlry-badge-app { + background-color: rgba({{ rgb(palette.info) }}, 0.15); + color: var(--owlry-badge-app); +} + +.owlry-badge-bookmark { + background-color: rgba({{ rgb(palette.warning) }}, 0.15); + color: var(--owlry-badge-bookmark); +} + +.owlry-badge-calc { + background-color: rgba({{ rgb(ansi.bright.yellow) }}, 0.15); + color: var(--owlry-badge-calc); +} + +.owlry-badge-clip { + background-color: rgba({{ rgb(palette.special) }}, 0.15); + color: var(--owlry-badge-clip); +} + +.owlry-badge-cmd { + background-color: rgba({{ rgb(palette.special) }}, 0.15); + color: var(--owlry-badge-cmd); +} + +.owlry-badge-dmenu { + background-color: rgba({{ rgb(palette.success) }}, 0.15); + color: var(--owlry-badge-dmenu); +} + +.owlry-badge-emoji { + background-color: rgba({{ rgb(ansi.bright.magenta) }}, 0.15); + color: var(--owlry-badge-emoji); +} + +.owlry-badge-file { + background-color: rgba({{ rgb(ansi.bright.cyan) }}, 0.15); + color: var(--owlry-badge-file); +} + +.owlry-badge-script { + background-color: rgba({{ rgb(ansi.bright.green) }}, 0.15); + color: var(--owlry-badge-script); +} + +.owlry-badge-ssh { + background-color: rgba({{ rgb(palette.info) }}, 0.15); + color: var(--owlry-badge-ssh); +} + +.owlry-badge-sys { + background-color: rgba({{ rgb(palette.cursor) }}, 0.15); + color: var(--owlry-badge-sys); +} + +.owlry-badge-uuctl { + background-color: rgba({{ rgb(palette.warning) }}, 0.15); + color: var(--owlry-badge-uuctl); +} + +.owlry-badge-web { + background-color: rgba({{ rgb(palette.info) }}, 0.15); + color: var(--owlry-badge-web); +} + +/* Widget badges */ +.owlry-badge-media { + background-color: rgba({{ rgb(ansi.bright.magenta) }}, 0.15); + color: var(--owlry-badge-media); +} + +.owlry-badge-weather { + background-color: rgba({{ rgb(ansi.bright.cyan) }}, 0.15); + color: var(--owlry-badge-weather); +} + +.owlry-badge-pomo { + background-color: rgba({{ rgb(ansi.bright.red) }}, 0.15); + color: var(--owlry-badge-pomo); +} + +/* Filter button - default uses The Predator */ +.owlry-filter-button:checked { + background-color: rgba({{ rgb(palette.cursor) }}, 0.2); + color: var(--owlry-accent); + border-color: rgba({{ rgb(palette.cursor) }}, 0.5); +} diff --git a/templates/owlry/meta.yaml b/templates/owlry/meta.yaml new file mode 100644 index 0000000..42d6393 --- /dev/null +++ b/templates/owlry/meta.yaml @@ -0,0 +1,4 @@ +author: S0wlz (Owlibou) +description: Owlry theme +version: 1.0.0 +strategy: individual diff --git a/templates/sherlock/apex.css.j2 b/templates/sherlock/apex.css.j2 new file mode 100644 index 0000000..3099f14 --- /dev/null +++ b/templates/sherlock/apex.css.j2 @@ -0,0 +1,129 @@ +{% macro rgb(hex) -%} +{%- set value = hex|replace('#', '') -%} +{{ value[0:2]|int(base=16) }}, {{ value[2:4]|int(base=16) }}, {{ value[4:6]|int(base=16) }} +{%- endmacro %} +/* {{ scheme }} - Sherlock Theme (Parser Compliant) */ + +/* 1. PALETTE DEFINITIONS */ +@define-color apex_base {{ palette.background }}; +@define-color apex_surface {{ ui.panel }}; +@define-color apex_overlay {{ ui.border }}; +@define-color apex_muted {{ ui.stealth }}; +@define-color apex_text {{ palette.foreground }}; +@define-color apex_love {{ palette.cursor }}; +@define-color apex_foam {{ palette.info }}; +@define-color apex_gold {{ palette.warning }}; + +/* 2. WINDOW & INPUT */ +window { + background-color: @apex_base; + color: @apex_text; + border: 2px solid @apex_love; + border-radius: 10px; + padding: 6px; +} + +entry { + background-color: @apex_surface; + color: @apex_text; + caret-color: @apex_love; + border: 1px solid @apex_overlay; + border-radius: 7px; + padding: 6px 9px; + margin-bottom: 6px; +} + +entry:focus { + border-color: @apex_love; + box-shadow: 0 0 10px rgba({{ rgb(palette.cursor) }}, 0.2); +} + +entry selection { + background-color: @apex_foam; + color: {{ palette.selection_fg }}; +} + +/* 3. LIST & SELECTION */ +listview { + background-color: transparent; +} + +/* The actual row selection - Informational */ +listview > row:selected { + background-color: @apex_foam; + color: {{ palette.selection_fg }}; + border-radius: 7px; + border: none; + outline: none; +} + +/* 4. TILES (The Items) */ +.tile, .launcher-tile, .launcher-item, .item { + background-color: @apex_surface; + color: @apex_text; + border-radius: 7px; + padding: 4px 10px; + margin-bottom: 4px; +} + +/* When the ROW is selected, make the TILE transparent so info shows through */ +listview > row:selected .tile, +listview > row:selected .launcher-tile, +listview > row:selected .item { + background-color: transparent; + color: {{ palette.selection_fg }}; +} + +/* Force TEXT on selection */ +listview > row:selected label, +listview > row:selected .title, +listview > row:selected .description, +listview > row:selected .subtitle { + color: {{ palette.selection_fg }}; +} + +/* Force ICONS on selection */ +listview > row:selected image, +listview > row:selected .icon { + color: {{ palette.selection_fg }}; +} + +/* 5. WIDGETS (Weather Fix without !important) */ +.widget, .weather-widget, .music-widget { + background-color: @apex_surface; + border: 1px solid @apex_overlay; + color: @apex_text; + border-radius: 7px; +} + +/* Specific overrides for weather internals */ +.weather-widget box { + background-color: transparent; +} + +.weather-widget label { + color: @apex_text; +} + +/* Temperature info */ +.weather-widget .temperature { + color: @apex_foam; + font-weight: 800; +} + +.weather-widget .condition { + color: @apex_muted; +} + +/* 6. SCROLLBARS */ +scrollbar slider { + background-color: @apex_overlay; + min-width: 6px; + border-radius: 10px; +} +scrollbar slider:hover { background-color: @apex_love; } + +progressbar progress { + background-color: @apex_love; + border-radius: 4px; +} diff --git a/templates/sherlock/meta.yaml b/templates/sherlock/meta.yaml new file mode 100644 index 0000000..1c070ac --- /dev/null +++ b/templates/sherlock/meta.yaml @@ -0,0 +1,4 @@ +author: S0wlz (Owlibou) +description: Sherlock launcher theme +version: 1.0.0 +strategy: individual diff --git a/templates/spicetify/color.ini.j2 b/templates/spicetify/color.ini.j2 new file mode 100644 index 0000000..0a2070e --- /dev/null +++ b/templates/spicetify/color.ini.j2 @@ -0,0 +1,17 @@ +{% set scheme_slug = scheme|lower|replace(' ', '-') %} +[{{ scheme_slug }}] +text = {{ palette.foreground|replace('#', '') }} +subtext = {{ ui.stealth|replace('#', '') }} +main = {{ palette.background|replace('#', '') }} +sidebar = {{ palette.background|replace('#', '') }} +player = {{ palette.background|replace('#', '') }} +card = {{ ui.panel|replace('#', '') }} +shadow = 000000 +selected-row = {{ palette.info|replace('#', '') }} +button = {{ palette.info|replace('#', '') }} +button-active = {{ palette.cursor|replace('#', '') }} +button-disabled = {{ ui.stealth|replace('#', '') }} +tab-active = {{ ui.border|replace('#', '') }} +notification = {{ palette.info|replace('#', '') }} +notification-error = {{ palette.cursor|replace('#', '') }} +misc = {{ palette.warning|replace('#', '') }} diff --git a/templates/spicetify/meta.yaml b/templates/spicetify/meta.yaml new file mode 100644 index 0000000..d46ab3d --- /dev/null +++ b/templates/spicetify/meta.yaml @@ -0,0 +1,4 @@ +author: S0wlz (Owlibou) +description: Spicetify theme files +version: 1.0.0 +strategy: individual diff --git a/templates/spicetify/user.css.j2 b/templates/spicetify/user.css.j2 new file mode 100644 index 0000000..3512ee2 --- /dev/null +++ b/templates/spicetify/user.css.j2 @@ -0,0 +1 @@ +/* {{ scheme }} - Spicetify overrides */