Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a1351f05e9 | |||
| 7118498773 | |||
| 3d05e560b1 | |||
| 604b902261 | |||
| bb0b0dfa87 | |||
| fc4dde32eb | |||
| cc1ad7bbb7 | |||
| 16ba5b642a | |||
| 1608582cbd | |||
| 34145d5fbe |
32
CLAUDE.md
Normal file
32
CLAUDE.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Owlry - Claude Code Instructions
|
||||
|
||||
## Release Workflow
|
||||
|
||||
Always use `just` for releases and AUR deployment:
|
||||
|
||||
```bash
|
||||
# Bump version (updates Cargo.toml + Cargo.lock, commits)
|
||||
just bump 0.x.y
|
||||
|
||||
# Push and create tag
|
||||
git push && just tag
|
||||
|
||||
# Update AUR package
|
||||
just aur-update
|
||||
|
||||
# Review changes, then publish
|
||||
just aur-publish
|
||||
```
|
||||
|
||||
Do NOT manually edit Cargo.toml for version bumps - use `just bump`.
|
||||
|
||||
## Available just recipes
|
||||
|
||||
- `just build` / `just release` - Build debug/release
|
||||
- `just check` - Run cargo check + clippy
|
||||
- `just test` - Run tests
|
||||
- `just bump <version>` - Bump version
|
||||
- `just tag` - Create and push git tag
|
||||
- `just aur-update` - Update PKGBUILD checksums
|
||||
- `just aur-publish` - Commit and push to AUR
|
||||
- `just aur-test` - Test PKGBUILD locally
|
||||
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -859,7 +859,7 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
|
||||
|
||||
[[package]]
|
||||
name = "owlry"
|
||||
version = "0.1.2"
|
||||
version = "0.1.8"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"dirs",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "owlry"
|
||||
version = "0.1.2"
|
||||
version = "0.1.8"
|
||||
edition = "2024"
|
||||
rust-version = "1.90"
|
||||
description = "A lightweight, owl-themed application launcher for Wayland"
|
||||
|
||||
41
README.md
41
README.md
@@ -100,6 +100,13 @@ Example: `:cmd git` searches only PATH commands for "git"
|
||||
|
||||
Configuration file: `~/.config/owlry/config.toml`
|
||||
|
||||
An example config is installed at `/usr/share/doc/owlry/config.example.toml`:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.config/owlry
|
||||
cp /usr/share/doc/owlry/config.example.toml ~/.config/owlry/config.toml
|
||||
```
|
||||
|
||||
```toml
|
||||
[general]
|
||||
show_icons = true
|
||||
@@ -157,15 +164,45 @@ You can override this with `launch_wrapper` in config, or set to empty string `"
|
||||
|
||||
By default, Owlry inherits colors from your system GTK4 theme (Adwaita, Breeze, etc.).
|
||||
|
||||
### Owl Theme
|
||||
### Built-in Themes
|
||||
|
||||
Enable the built-in owl-inspired dark theme:
|
||||
Owlry includes an owl-inspired dark theme:
|
||||
|
||||
```toml
|
||||
[appearance]
|
||||
theme = "owl"
|
||||
```
|
||||
|
||||
### Included Example Themes
|
||||
|
||||
Example themes are installed to `/usr/share/owlry/themes/`:
|
||||
|
||||
| Theme | Description |
|
||||
|-------|-------------|
|
||||
| `owl` | Owl-inspired dark theme with amber accents |
|
||||
| `catppuccin-mocha` | Soothing pastel theme |
|
||||
| `nord` | Arctic, north-bluish palette |
|
||||
| `rose-pine` | All natural pine, faux fur and soho vibes |
|
||||
| `dracula` | Dark theme for vampires |
|
||||
| `gruvbox-dark` | Retro groove color scheme |
|
||||
| `tokyo-night` | Lights of Tokyo at night |
|
||||
| `solarized-dark` | Precision colors for machines and people |
|
||||
| `one-dark` | Atom's iconic One Dark theme |
|
||||
|
||||
To use an example theme:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.config/owlry/themes
|
||||
cp /usr/share/owlry/themes/catppuccin-mocha.css ~/.config/owlry/themes/
|
||||
```
|
||||
|
||||
Then set in config:
|
||||
|
||||
```toml
|
||||
[appearance]
|
||||
theme = "catppuccin-mocha"
|
||||
```
|
||||
|
||||
### Custom Theme
|
||||
|
||||
Create a custom theme file at `~/.config/owlry/themes/mytheme.css`:
|
||||
|
||||
42
config.example.toml
Normal file
42
config.example.toml
Normal file
@@ -0,0 +1,42 @@
|
||||
# Owlry Configuration
|
||||
# Copy to ~/.config/owlry/config.toml
|
||||
|
||||
[general]
|
||||
show_icons = true
|
||||
max_results = 10
|
||||
terminal_command = "kitty" # Auto-detected if not set
|
||||
|
||||
# Launch wrapper for app execution (auto-detected if not set)
|
||||
# Examples:
|
||||
# "uwsm app --" # For uwsm sessions
|
||||
# "hyprctl dispatch exec --" # For Hyprland
|
||||
# "" # Direct execution
|
||||
# launch_wrapper = "uwsm app --"
|
||||
|
||||
[appearance]
|
||||
width = 600
|
||||
height = 400
|
||||
font_size = 14
|
||||
border_radius = 12
|
||||
|
||||
# Theme: "owl" for built-in dark theme, or leave unset for GTK default
|
||||
# theme = "owl"
|
||||
|
||||
# Individual color overrides (CSS color values)
|
||||
# [appearance.colors]
|
||||
# background = "#1a1b26"
|
||||
# background_secondary = "#24283b"
|
||||
# border = "#414868"
|
||||
# text = "#c0caf5"
|
||||
# text_secondary = "#565f89"
|
||||
# accent = "#7aa2f7"
|
||||
# accent_bright = "#89b4fa"
|
||||
# badge_app = "#9ece6a"
|
||||
# badge_cmd = "#7aa2f7"
|
||||
# badge_dmenu = "#bb9af7"
|
||||
# badge_uuctl = "#f7768e"
|
||||
|
||||
[providers]
|
||||
applications = true
|
||||
commands = true
|
||||
uuctl = true
|
||||
14
src/main.rs
14
src/main.rs
@@ -8,7 +8,7 @@ mod ui;
|
||||
|
||||
use app::OwlryApp;
|
||||
use cli::CliArgs;
|
||||
use log::info;
|
||||
use log::{info, warn};
|
||||
|
||||
fn main() {
|
||||
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init();
|
||||
@@ -17,6 +17,18 @@ fn main() {
|
||||
|
||||
info!("Starting Owlry launcher");
|
||||
|
||||
// Diagnostic: log critical environment variables
|
||||
let home = std::env::var("HOME").unwrap_or_else(|_| "<not set>".to_string());
|
||||
let path = std::env::var("PATH").unwrap_or_else(|_| "<not set>".to_string());
|
||||
let xdg_data = std::env::var("XDG_DATA_HOME").unwrap_or_else(|_| "<not set>".to_string());
|
||||
info!("HOME={}", home);
|
||||
info!("PATH={}", path);
|
||||
info!("XDG_DATA_HOME={}", xdg_data);
|
||||
|
||||
if home == "<not set>" || path == "<not set>" {
|
||||
warn!("Critical environment variables missing! Items may not load correctly.");
|
||||
}
|
||||
|
||||
let app = OwlryApp::new(args);
|
||||
std::process::exit(app.run());
|
||||
}
|
||||
|
||||
@@ -17,17 +17,37 @@ impl DmenuProvider {
|
||||
}
|
||||
|
||||
/// Check if stdin has data (non-blocking check)
|
||||
/// Returns true only if stdin is a pipe or regular file with data available.
|
||||
/// Returns false for TTYs, /dev/null, and other character devices.
|
||||
pub fn has_stdin_data() -> bool {
|
||||
use std::os::unix::io::AsRawFd;
|
||||
|
||||
let stdin_fd = io::stdin().as_raw_fd();
|
||||
|
||||
// First check if stdin is a pipe or regular file (valid dmenu input sources)
|
||||
// Character devices (TTY, /dev/null) should NOT trigger dmenu mode
|
||||
let mut stat_buf: libc::stat = unsafe { std::mem::zeroed() };
|
||||
let stat_result = unsafe { libc::fstat(stdin_fd, &mut stat_buf) };
|
||||
if stat_result != 0 {
|
||||
return false;
|
||||
}
|
||||
|
||||
let mode = stat_buf.st_mode;
|
||||
let is_pipe = (mode & libc::S_IFMT) == libc::S_IFIFO;
|
||||
let is_file = (mode & libc::S_IFMT) == libc::S_IFREG;
|
||||
|
||||
// Only check for data if stdin is a pipe or file
|
||||
if !is_pipe && !is_file {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Non-blocking poll to check if data is available
|
||||
let mut poll_fd = libc::pollfd {
|
||||
fd: stdin_fd,
|
||||
events: libc::POLLIN,
|
||||
revents: 0,
|
||||
};
|
||||
|
||||
// Non-blocking poll with 0 timeout
|
||||
let result = unsafe { libc::poll(&mut poll_fd, 1, 0) };
|
||||
result > 0 && (poll_fd.revents & libc::POLLIN) != 0
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ pub use uuctl::UuctlProvider;
|
||||
|
||||
use fuzzy_matcher::FuzzyMatcher;
|
||||
use fuzzy_matcher::skim::SkimMatcherV2;
|
||||
use log::info;
|
||||
|
||||
/// Represents a single searchable/launchable item
|
||||
#[derive(Debug, Clone)]
|
||||
@@ -110,6 +111,11 @@ impl ProviderManager {
|
||||
pub fn refresh_all(&mut self) {
|
||||
for provider in &mut self.providers {
|
||||
provider.refresh();
|
||||
info!(
|
||||
"Provider '{}' loaded {} items",
|
||||
provider.name(),
|
||||
provider.items().len()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
114
themes/catppuccin-mocha.css
Normal file
114
themes/catppuccin-mocha.css
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Owlry - Catppuccin Mocha Theme
|
||||
* A soothing pastel theme based on Catppuccin Mocha palette
|
||||
* https://catppuccin.com/
|
||||
*
|
||||
* Usage: Copy to ~/.config/owlry/themes/catppuccin-mocha.css
|
||||
* Set theme = "catppuccin-mocha" in config.toml
|
||||
*/
|
||||
|
||||
:root {
|
||||
--owlry-bg: #1e1e2e;
|
||||
--owlry-bg-secondary: #313244;
|
||||
--owlry-border: #45475a;
|
||||
--owlry-text: #cdd6f4;
|
||||
--owlry-text-secondary: #a6adc8;
|
||||
--owlry-accent: #cba6f7;
|
||||
--owlry-accent-bright: #f5c2e7;
|
||||
--owlry-badge-app: #a6e3a1;
|
||||
--owlry-badge-cmd: #89b4fa;
|
||||
--owlry-badge-dmenu: #f9e2af;
|
||||
--owlry-badge-uuctl: #fab387;
|
||||
}
|
||||
|
||||
.owlry-main {
|
||||
background-color: rgba(30, 30, 46, 0.95);
|
||||
border: 1px solid rgba(69, 71, 90, 0.6);
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5),
|
||||
0 0 0 1px rgba(203, 166, 247, 0.1);
|
||||
}
|
||||
|
||||
.owlry-search {
|
||||
background-color: rgba(49, 50, 68, 0.8);
|
||||
border: 2px solid rgba(69, 71, 90, 0.5);
|
||||
color: var(--owlry-text);
|
||||
caret-color: var(--owlry-accent);
|
||||
}
|
||||
|
||||
.owlry-search:focus {
|
||||
border-color: var(--owlry-accent);
|
||||
box-shadow: 0 0 0 2px rgba(203, 166, 247, 0.2);
|
||||
}
|
||||
|
||||
.owlry-result-row:hover {
|
||||
background-color: rgba(49, 50, 68, 0.6);
|
||||
}
|
||||
|
||||
.owlry-result-row:selected {
|
||||
background-color: rgba(203, 166, 247, 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);
|
||||
}
|
||||
|
||||
.owlry-badge-app {
|
||||
background-color: rgba(166, 227, 161, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
}
|
||||
|
||||
.owlry-badge-cmd {
|
||||
background-color: rgba(137, 180, 250, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
}
|
||||
|
||||
.owlry-badge-dmenu {
|
||||
background-color: rgba(249, 226, 175, 0.2);
|
||||
color: var(--owlry-badge-dmenu);
|
||||
}
|
||||
|
||||
.owlry-badge-uuctl {
|
||||
background-color: rgba(250, 179, 135, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
}
|
||||
|
||||
.owlry-filter-button:checked {
|
||||
background-color: rgba(203, 166, 247, 0.2);
|
||||
color: var(--owlry-accent);
|
||||
border-color: rgba(203, 166, 247, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-app:checked {
|
||||
background-color: rgba(166, 227, 161, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
border-color: rgba(166, 227, 161, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-cmd:checked {
|
||||
background-color: rgba(137, 180, 250, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
border-color: rgba(137, 180, 250, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-uuctl:checked {
|
||||
background-color: rgba(250, 179, 135, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
border-color: rgba(250, 179, 135, 0.4);
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
background-color: rgba(69, 71, 90, 0.5);
|
||||
}
|
||||
|
||||
scrollbar slider:hover {
|
||||
background-color: rgba(88, 91, 112, 0.7);
|
||||
}
|
||||
|
||||
scrollbar slider:active {
|
||||
background-color: var(--owlry-accent);
|
||||
}
|
||||
114
themes/dracula.css
Normal file
114
themes/dracula.css
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Owlry - Dracula Theme
|
||||
* A dark theme for vampires
|
||||
* https://draculatheme.com/
|
||||
*
|
||||
* Usage: Copy to ~/.config/owlry/themes/dracula.css
|
||||
* Set theme = "dracula" in config.toml
|
||||
*/
|
||||
|
||||
:root {
|
||||
--owlry-bg: #282a36;
|
||||
--owlry-bg-secondary: #44475a;
|
||||
--owlry-border: #6272a4;
|
||||
--owlry-text: #f8f8f2;
|
||||
--owlry-text-secondary: #6272a4;
|
||||
--owlry-accent: #bd93f9;
|
||||
--owlry-accent-bright: #ff79c6;
|
||||
--owlry-badge-app: #50fa7b;
|
||||
--owlry-badge-cmd: #8be9fd;
|
||||
--owlry-badge-dmenu: #f1fa8c;
|
||||
--owlry-badge-uuctl: #ffb86c;
|
||||
}
|
||||
|
||||
.owlry-main {
|
||||
background-color: rgba(40, 42, 54, 0.95);
|
||||
border: 1px solid rgba(98, 114, 164, 0.6);
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5),
|
||||
0 0 0 1px rgba(189, 147, 249, 0.1);
|
||||
}
|
||||
|
||||
.owlry-search {
|
||||
background-color: rgba(68, 71, 90, 0.8);
|
||||
border: 2px solid rgba(98, 114, 164, 0.5);
|
||||
color: var(--owlry-text);
|
||||
caret-color: var(--owlry-accent);
|
||||
}
|
||||
|
||||
.owlry-search:focus {
|
||||
border-color: var(--owlry-accent);
|
||||
box-shadow: 0 0 0 2px rgba(189, 147, 249, 0.2);
|
||||
}
|
||||
|
||||
.owlry-result-row:hover {
|
||||
background-color: rgba(68, 71, 90, 0.6);
|
||||
}
|
||||
|
||||
.owlry-result-row:selected {
|
||||
background-color: rgba(189, 147, 249, 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);
|
||||
}
|
||||
|
||||
.owlry-badge-app {
|
||||
background-color: rgba(80, 250, 123, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
}
|
||||
|
||||
.owlry-badge-cmd {
|
||||
background-color: rgba(139, 233, 253, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
}
|
||||
|
||||
.owlry-badge-dmenu {
|
||||
background-color: rgba(241, 250, 140, 0.2);
|
||||
color: var(--owlry-badge-dmenu);
|
||||
}
|
||||
|
||||
.owlry-badge-uuctl {
|
||||
background-color: rgba(255, 184, 108, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
}
|
||||
|
||||
.owlry-filter-button:checked {
|
||||
background-color: rgba(189, 147, 249, 0.2);
|
||||
color: var(--owlry-accent);
|
||||
border-color: rgba(189, 147, 249, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-app:checked {
|
||||
background-color: rgba(80, 250, 123, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
border-color: rgba(80, 250, 123, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-cmd:checked {
|
||||
background-color: rgba(139, 233, 253, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
border-color: rgba(139, 233, 253, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-uuctl:checked {
|
||||
background-color: rgba(255, 184, 108, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
border-color: rgba(255, 184, 108, 0.4);
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
background-color: rgba(98, 114, 164, 0.5);
|
||||
}
|
||||
|
||||
scrollbar slider:hover {
|
||||
background-color: rgba(98, 114, 164, 0.7);
|
||||
}
|
||||
|
||||
scrollbar slider:active {
|
||||
background-color: var(--owlry-accent);
|
||||
}
|
||||
114
themes/gruvbox-dark.css
Normal file
114
themes/gruvbox-dark.css
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Owlry - Gruvbox Dark Theme
|
||||
* Retro groove color scheme
|
||||
* https://github.com/morhetz/gruvbox
|
||||
*
|
||||
* Usage: Copy to ~/.config/owlry/themes/gruvbox-dark.css
|
||||
* Set theme = "gruvbox-dark" in config.toml
|
||||
*/
|
||||
|
||||
:root {
|
||||
--owlry-bg: #282828;
|
||||
--owlry-bg-secondary: #3c3836;
|
||||
--owlry-border: #504945;
|
||||
--owlry-text: #ebdbb2;
|
||||
--owlry-text-secondary: #a89984;
|
||||
--owlry-accent: #fe8019;
|
||||
--owlry-accent-bright: #fabd2f;
|
||||
--owlry-badge-app: #b8bb26;
|
||||
--owlry-badge-cmd: #83a598;
|
||||
--owlry-badge-dmenu: #fabd2f;
|
||||
--owlry-badge-uuctl: #fb4934;
|
||||
}
|
||||
|
||||
.owlry-main {
|
||||
background-color: rgba(40, 40, 40, 0.95);
|
||||
border: 1px solid rgba(80, 73, 69, 0.6);
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5),
|
||||
0 0 0 1px rgba(254, 128, 25, 0.1);
|
||||
}
|
||||
|
||||
.owlry-search {
|
||||
background-color: rgba(60, 56, 54, 0.8);
|
||||
border: 2px solid rgba(80, 73, 69, 0.5);
|
||||
color: var(--owlry-text);
|
||||
caret-color: var(--owlry-accent);
|
||||
}
|
||||
|
||||
.owlry-search:focus {
|
||||
border-color: var(--owlry-accent);
|
||||
box-shadow: 0 0 0 2px rgba(254, 128, 25, 0.2);
|
||||
}
|
||||
|
||||
.owlry-result-row:hover {
|
||||
background-color: rgba(60, 56, 54, 0.6);
|
||||
}
|
||||
|
||||
.owlry-result-row:selected {
|
||||
background-color: rgba(254, 128, 25, 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);
|
||||
}
|
||||
|
||||
.owlry-badge-app {
|
||||
background-color: rgba(184, 187, 38, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
}
|
||||
|
||||
.owlry-badge-cmd {
|
||||
background-color: rgba(131, 165, 152, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
}
|
||||
|
||||
.owlry-badge-dmenu {
|
||||
background-color: rgba(250, 189, 47, 0.2);
|
||||
color: var(--owlry-badge-dmenu);
|
||||
}
|
||||
|
||||
.owlry-badge-uuctl {
|
||||
background-color: rgba(251, 73, 52, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
}
|
||||
|
||||
.owlry-filter-button:checked {
|
||||
background-color: rgba(254, 128, 25, 0.2);
|
||||
color: var(--owlry-accent);
|
||||
border-color: rgba(254, 128, 25, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-app:checked {
|
||||
background-color: rgba(184, 187, 38, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
border-color: rgba(184, 187, 38, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-cmd:checked {
|
||||
background-color: rgba(131, 165, 152, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
border-color: rgba(131, 165, 152, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-uuctl:checked {
|
||||
background-color: rgba(251, 73, 52, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
border-color: rgba(251, 73, 52, 0.4);
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
background-color: rgba(80, 73, 69, 0.5);
|
||||
}
|
||||
|
||||
scrollbar slider:hover {
|
||||
background-color: rgba(102, 92, 84, 0.7);
|
||||
}
|
||||
|
||||
scrollbar slider:active {
|
||||
background-color: var(--owlry-accent);
|
||||
}
|
||||
114
themes/nord.css
Normal file
114
themes/nord.css
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Owlry - Nord Theme
|
||||
* An arctic, north-bluish color palette
|
||||
* https://nordtheme.com/
|
||||
*
|
||||
* Usage: Copy to ~/.config/owlry/themes/nord.css
|
||||
* Set theme = "nord" in config.toml
|
||||
*/
|
||||
|
||||
:root {
|
||||
--owlry-bg: #2e3440;
|
||||
--owlry-bg-secondary: #3b4252;
|
||||
--owlry-border: #4c566a;
|
||||
--owlry-text: #eceff4;
|
||||
--owlry-text-secondary: #d8dee9;
|
||||
--owlry-accent: #88c0d0;
|
||||
--owlry-accent-bright: #8fbcbb;
|
||||
--owlry-badge-app: #a3be8c;
|
||||
--owlry-badge-cmd: #81a1c1;
|
||||
--owlry-badge-dmenu: #ebcb8b;
|
||||
--owlry-badge-uuctl: #bf616a;
|
||||
}
|
||||
|
||||
.owlry-main {
|
||||
background-color: rgba(46, 52, 64, 0.95);
|
||||
border: 1px solid rgba(76, 86, 106, 0.6);
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4),
|
||||
0 0 0 1px rgba(136, 192, 208, 0.1);
|
||||
}
|
||||
|
||||
.owlry-search {
|
||||
background-color: rgba(59, 66, 82, 0.8);
|
||||
border: 2px solid rgba(76, 86, 106, 0.5);
|
||||
color: var(--owlry-text);
|
||||
caret-color: var(--owlry-accent);
|
||||
}
|
||||
|
||||
.owlry-search:focus {
|
||||
border-color: var(--owlry-accent);
|
||||
box-shadow: 0 0 0 2px rgba(136, 192, 208, 0.2);
|
||||
}
|
||||
|
||||
.owlry-result-row:hover {
|
||||
background-color: rgba(59, 66, 82, 0.6);
|
||||
}
|
||||
|
||||
.owlry-result-row:selected {
|
||||
background-color: rgba(136, 192, 208, 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);
|
||||
}
|
||||
|
||||
.owlry-badge-app {
|
||||
background-color: rgba(163, 190, 140, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
}
|
||||
|
||||
.owlry-badge-cmd {
|
||||
background-color: rgba(129, 161, 193, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
}
|
||||
|
||||
.owlry-badge-dmenu {
|
||||
background-color: rgba(235, 203, 139, 0.2);
|
||||
color: var(--owlry-badge-dmenu);
|
||||
}
|
||||
|
||||
.owlry-badge-uuctl {
|
||||
background-color: rgba(191, 97, 106, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
}
|
||||
|
||||
.owlry-filter-button:checked {
|
||||
background-color: rgba(136, 192, 208, 0.2);
|
||||
color: var(--owlry-accent);
|
||||
border-color: rgba(136, 192, 208, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-app:checked {
|
||||
background-color: rgba(163, 190, 140, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
border-color: rgba(163, 190, 140, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-cmd:checked {
|
||||
background-color: rgba(129, 161, 193, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
border-color: rgba(129, 161, 193, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-uuctl:checked {
|
||||
background-color: rgba(191, 97, 106, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
border-color: rgba(191, 97, 106, 0.4);
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
background-color: rgba(76, 86, 106, 0.5);
|
||||
}
|
||||
|
||||
scrollbar slider:hover {
|
||||
background-color: rgba(76, 86, 106, 0.7);
|
||||
}
|
||||
|
||||
scrollbar slider:active {
|
||||
background-color: var(--owlry-accent);
|
||||
}
|
||||
114
themes/one-dark.css
Normal file
114
themes/one-dark.css
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Owlry - One Dark Theme
|
||||
* Atom's iconic One Dark theme
|
||||
* https://github.com/atom/atom/tree/master/packages/one-dark-syntax
|
||||
*
|
||||
* Usage: Copy to ~/.config/owlry/themes/one-dark.css
|
||||
* Set theme = "one-dark" in config.toml
|
||||
*/
|
||||
|
||||
:root {
|
||||
--owlry-bg: #282c34;
|
||||
--owlry-bg-secondary: #21252b;
|
||||
--owlry-border: #181a1f;
|
||||
--owlry-text: #abb2bf;
|
||||
--owlry-text-secondary: #5c6370;
|
||||
--owlry-accent: #61afef;
|
||||
--owlry-accent-bright: #c678dd;
|
||||
--owlry-badge-app: #98c379;
|
||||
--owlry-badge-cmd: #61afef;
|
||||
--owlry-badge-dmenu: #e5c07b;
|
||||
--owlry-badge-uuctl: #e06c75;
|
||||
}
|
||||
|
||||
.owlry-main {
|
||||
background-color: rgba(40, 44, 52, 0.95);
|
||||
border: 1px solid rgba(24, 26, 31, 0.6);
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5),
|
||||
0 0 0 1px rgba(97, 175, 239, 0.1);
|
||||
}
|
||||
|
||||
.owlry-search {
|
||||
background-color: rgba(33, 37, 43, 0.8);
|
||||
border: 2px solid rgba(24, 26, 31, 0.5);
|
||||
color: var(--owlry-text);
|
||||
caret-color: var(--owlry-accent);
|
||||
}
|
||||
|
||||
.owlry-search:focus {
|
||||
border-color: var(--owlry-accent);
|
||||
box-shadow: 0 0 0 2px rgba(97, 175, 239, 0.2);
|
||||
}
|
||||
|
||||
.owlry-result-row:hover {
|
||||
background-color: rgba(33, 37, 43, 0.6);
|
||||
}
|
||||
|
||||
.owlry-result-row:selected {
|
||||
background-color: rgba(97, 175, 239, 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);
|
||||
}
|
||||
|
||||
.owlry-badge-app {
|
||||
background-color: rgba(152, 195, 121, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
}
|
||||
|
||||
.owlry-badge-cmd {
|
||||
background-color: rgba(97, 175, 239, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
}
|
||||
|
||||
.owlry-badge-dmenu {
|
||||
background-color: rgba(229, 192, 123, 0.2);
|
||||
color: var(--owlry-badge-dmenu);
|
||||
}
|
||||
|
||||
.owlry-badge-uuctl {
|
||||
background-color: rgba(224, 108, 117, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
}
|
||||
|
||||
.owlry-filter-button:checked {
|
||||
background-color: rgba(97, 175, 239, 0.2);
|
||||
color: var(--owlry-accent);
|
||||
border-color: rgba(97, 175, 239, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-app:checked {
|
||||
background-color: rgba(152, 195, 121, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
border-color: rgba(152, 195, 121, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-cmd:checked {
|
||||
background-color: rgba(97, 175, 239, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
border-color: rgba(97, 175, 239, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-uuctl:checked {
|
||||
background-color: rgba(224, 108, 117, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
border-color: rgba(224, 108, 117, 0.4);
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
background-color: rgba(92, 99, 112, 0.5);
|
||||
}
|
||||
|
||||
scrollbar slider:hover {
|
||||
background-color: rgba(92, 99, 112, 0.7);
|
||||
}
|
||||
|
||||
scrollbar slider:active {
|
||||
background-color: var(--owlry-accent);
|
||||
}
|
||||
123
themes/owl.css
Normal file
123
themes/owl.css
Normal file
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* Owlry - Owl Theme
|
||||
* An owl-inspired dark theme with amber accents
|
||||
*
|
||||
* Color Palette:
|
||||
* - Deep night sky: #1a1b26 (background)
|
||||
* - Twilight: #24283b (secondary bg)
|
||||
* - Owl feathers: #414868 (borders/muted)
|
||||
* - Moon glow: #c0caf5 (primary text)
|
||||
* - Owl eyes (amber): #e0af68 (accent/highlight)
|
||||
* - Forest shadows: #565f89 (secondary text)
|
||||
* - Barn owl cream: #f5e0dc (bright accent)
|
||||
*
|
||||
* Usage: Copy to ~/.config/owlry/themes/owl.css
|
||||
* Set theme = "owl" in config.toml
|
||||
* (Note: "owl" is also built-in, so this file is optional)
|
||||
*/
|
||||
|
||||
:root {
|
||||
--owlry-bg: #1a1b26;
|
||||
--owlry-bg-secondary: #24283b;
|
||||
--owlry-border: #414868;
|
||||
--owlry-text: #c0caf5;
|
||||
--owlry-text-secondary: #565f89;
|
||||
--owlry-accent: #e0af68;
|
||||
--owlry-accent-bright: #f5e0dc;
|
||||
--owlry-badge-app: #7aa2f7;
|
||||
--owlry-badge-cmd: #bb9af7;
|
||||
--owlry-badge-dmenu: #9ece6a;
|
||||
--owlry-badge-uuctl: #e0af68;
|
||||
}
|
||||
|
||||
.owlry-main {
|
||||
background-color: rgba(26, 27, 38, 0.95);
|
||||
border: 1px solid rgba(65, 72, 104, 0.6);
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5),
|
||||
0 0 0 1px rgba(224, 175, 104, 0.1);
|
||||
}
|
||||
|
||||
.owlry-search {
|
||||
background-color: rgba(36, 40, 59, 0.8);
|
||||
border: 2px solid rgba(65, 72, 104, 0.5);
|
||||
color: var(--owlry-text);
|
||||
caret-color: var(--owlry-accent);
|
||||
}
|
||||
|
||||
.owlry-search:focus {
|
||||
border-color: var(--owlry-accent);
|
||||
box-shadow: 0 0 0 2px rgba(224, 175, 104, 0.2);
|
||||
}
|
||||
|
||||
.owlry-result-row:hover {
|
||||
background-color: rgba(36, 40, 59, 0.6);
|
||||
}
|
||||
|
||||
.owlry-result-row:selected {
|
||||
background-color: rgba(224, 175, 104, 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);
|
||||
}
|
||||
|
||||
.owlry-badge-app {
|
||||
background-color: rgba(122, 162, 247, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
}
|
||||
|
||||
.owlry-badge-cmd {
|
||||
background-color: rgba(187, 154, 247, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
}
|
||||
|
||||
.owlry-badge-dmenu {
|
||||
background-color: rgba(158, 206, 106, 0.2);
|
||||
color: var(--owlry-badge-dmenu);
|
||||
}
|
||||
|
||||
.owlry-badge-uuctl {
|
||||
background-color: rgba(224, 175, 104, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
}
|
||||
|
||||
.owlry-filter-button:checked {
|
||||
background-color: rgba(224, 175, 104, 0.2);
|
||||
color: var(--owlry-accent);
|
||||
border-color: rgba(224, 175, 104, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-app:checked {
|
||||
background-color: rgba(122, 162, 247, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
border-color: rgba(122, 162, 247, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-cmd:checked {
|
||||
background-color: rgba(187, 154, 247, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
border-color: rgba(187, 154, 247, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-uuctl:checked {
|
||||
background-color: rgba(224, 175, 104, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
border-color: rgba(224, 175, 104, 0.4);
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
background-color: rgba(65, 72, 104, 0.5);
|
||||
}
|
||||
|
||||
scrollbar slider:hover {
|
||||
background-color: rgba(86, 95, 137, 0.7);
|
||||
}
|
||||
|
||||
scrollbar slider:active {
|
||||
background-color: var(--owlry-accent);
|
||||
}
|
||||
114
themes/rose-pine.css
Normal file
114
themes/rose-pine.css
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Owlry - Rosé Pine Theme
|
||||
* All natural pine, faux fur and a bit of soho vibes
|
||||
* https://rosepinetheme.com/
|
||||
*
|
||||
* Usage: Copy to ~/.config/owlry/themes/rose-pine.css
|
||||
* Set theme = "rose-pine" in config.toml
|
||||
*/
|
||||
|
||||
:root {
|
||||
--owlry-bg: #191724;
|
||||
--owlry-bg-secondary: #1f1d2e;
|
||||
--owlry-border: #26233a;
|
||||
--owlry-text: #e0def4;
|
||||
--owlry-text-secondary: #908caa;
|
||||
--owlry-accent: #c4a7e7;
|
||||
--owlry-accent-bright: #ebbcba;
|
||||
--owlry-badge-app: #9ccfd8;
|
||||
--owlry-badge-cmd: #c4a7e7;
|
||||
--owlry-badge-dmenu: #f6c177;
|
||||
--owlry-badge-uuctl: #eb6f92;
|
||||
}
|
||||
|
||||
.owlry-main {
|
||||
background-color: rgba(25, 23, 36, 0.95);
|
||||
border: 1px solid rgba(38, 35, 58, 0.6);
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5),
|
||||
0 0 0 1px rgba(196, 167, 231, 0.1);
|
||||
}
|
||||
|
||||
.owlry-search {
|
||||
background-color: rgba(31, 29, 46, 0.8);
|
||||
border: 2px solid rgba(38, 35, 58, 0.5);
|
||||
color: var(--owlry-text);
|
||||
caret-color: var(--owlry-accent);
|
||||
}
|
||||
|
||||
.owlry-search:focus {
|
||||
border-color: var(--owlry-accent);
|
||||
box-shadow: 0 0 0 2px rgba(196, 167, 231, 0.2);
|
||||
}
|
||||
|
||||
.owlry-result-row:hover {
|
||||
background-color: rgba(31, 29, 46, 0.6);
|
||||
}
|
||||
|
||||
.owlry-result-row:selected {
|
||||
background-color: rgba(196, 167, 231, 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);
|
||||
}
|
||||
|
||||
.owlry-badge-app {
|
||||
background-color: rgba(156, 207, 216, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
}
|
||||
|
||||
.owlry-badge-cmd {
|
||||
background-color: rgba(196, 167, 231, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
}
|
||||
|
||||
.owlry-badge-dmenu {
|
||||
background-color: rgba(246, 193, 119, 0.2);
|
||||
color: var(--owlry-badge-dmenu);
|
||||
}
|
||||
|
||||
.owlry-badge-uuctl {
|
||||
background-color: rgba(235, 111, 146, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
}
|
||||
|
||||
.owlry-filter-button:checked {
|
||||
background-color: rgba(196, 167, 231, 0.2);
|
||||
color: var(--owlry-accent);
|
||||
border-color: rgba(196, 167, 231, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-app:checked {
|
||||
background-color: rgba(156, 207, 216, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
border-color: rgba(156, 207, 216, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-cmd:checked {
|
||||
background-color: rgba(196, 167, 231, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
border-color: rgba(196, 167, 231, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-uuctl:checked {
|
||||
background-color: rgba(235, 111, 146, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
border-color: rgba(235, 111, 146, 0.4);
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
background-color: rgba(38, 35, 58, 0.5);
|
||||
}
|
||||
|
||||
scrollbar slider:hover {
|
||||
background-color: rgba(144, 140, 170, 0.5);
|
||||
}
|
||||
|
||||
scrollbar slider:active {
|
||||
background-color: var(--owlry-accent);
|
||||
}
|
||||
114
themes/solarized-dark.css
Normal file
114
themes/solarized-dark.css
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Owlry - Solarized Dark Theme
|
||||
* Precision colors for machines and people
|
||||
* https://ethanschoonover.com/solarized/
|
||||
*
|
||||
* Usage: Copy to ~/.config/owlry/themes/solarized-dark.css
|
||||
* Set theme = "solarized-dark" in config.toml
|
||||
*/
|
||||
|
||||
:root {
|
||||
--owlry-bg: #002b36;
|
||||
--owlry-bg-secondary: #073642;
|
||||
--owlry-border: #586e75;
|
||||
--owlry-text: #839496;
|
||||
--owlry-text-secondary: #657b83;
|
||||
--owlry-accent: #268bd2;
|
||||
--owlry-accent-bright: #2aa198;
|
||||
--owlry-badge-app: #859900;
|
||||
--owlry-badge-cmd: #268bd2;
|
||||
--owlry-badge-dmenu: #b58900;
|
||||
--owlry-badge-uuctl: #dc322f;
|
||||
}
|
||||
|
||||
.owlry-main {
|
||||
background-color: rgba(0, 43, 54, 0.95);
|
||||
border: 1px solid rgba(88, 110, 117, 0.6);
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5),
|
||||
0 0 0 1px rgba(38, 139, 210, 0.1);
|
||||
}
|
||||
|
||||
.owlry-search {
|
||||
background-color: rgba(7, 54, 66, 0.8);
|
||||
border: 2px solid rgba(88, 110, 117, 0.5);
|
||||
color: var(--owlry-text);
|
||||
caret-color: var(--owlry-accent);
|
||||
}
|
||||
|
||||
.owlry-search:focus {
|
||||
border-color: var(--owlry-accent);
|
||||
box-shadow: 0 0 0 2px rgba(38, 139, 210, 0.2);
|
||||
}
|
||||
|
||||
.owlry-result-row:hover {
|
||||
background-color: rgba(7, 54, 66, 0.6);
|
||||
}
|
||||
|
||||
.owlry-result-row:selected {
|
||||
background-color: rgba(38, 139, 210, 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);
|
||||
}
|
||||
|
||||
.owlry-badge-app {
|
||||
background-color: rgba(133, 153, 0, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
}
|
||||
|
||||
.owlry-badge-cmd {
|
||||
background-color: rgba(38, 139, 210, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
}
|
||||
|
||||
.owlry-badge-dmenu {
|
||||
background-color: rgba(181, 137, 0, 0.2);
|
||||
color: var(--owlry-badge-dmenu);
|
||||
}
|
||||
|
||||
.owlry-badge-uuctl {
|
||||
background-color: rgba(220, 50, 47, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
}
|
||||
|
||||
.owlry-filter-button:checked {
|
||||
background-color: rgba(38, 139, 210, 0.2);
|
||||
color: var(--owlry-accent);
|
||||
border-color: rgba(38, 139, 210, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-app:checked {
|
||||
background-color: rgba(133, 153, 0, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
border-color: rgba(133, 153, 0, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-cmd:checked {
|
||||
background-color: rgba(38, 139, 210, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
border-color: rgba(38, 139, 210, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-uuctl:checked {
|
||||
background-color: rgba(220, 50, 47, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
border-color: rgba(220, 50, 47, 0.4);
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
background-color: rgba(88, 110, 117, 0.5);
|
||||
}
|
||||
|
||||
scrollbar slider:hover {
|
||||
background-color: rgba(101, 123, 131, 0.7);
|
||||
}
|
||||
|
||||
scrollbar slider:active {
|
||||
background-color: var(--owlry-accent);
|
||||
}
|
||||
114
themes/tokyo-night.css
Normal file
114
themes/tokyo-night.css
Normal file
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Owlry - Tokyo Night Theme
|
||||
* A clean, dark theme that celebrates the lights of Tokyo at night
|
||||
* https://github.com/enkia/tokyo-night-vscode-theme
|
||||
*
|
||||
* Usage: Copy to ~/.config/owlry/themes/tokyo-night.css
|
||||
* Set theme = "tokyo-night" in config.toml
|
||||
*/
|
||||
|
||||
:root {
|
||||
--owlry-bg: #1a1b26;
|
||||
--owlry-bg-secondary: #24283b;
|
||||
--owlry-border: #414868;
|
||||
--owlry-text: #c0caf5;
|
||||
--owlry-text-secondary: #565f89;
|
||||
--owlry-accent: #7aa2f7;
|
||||
--owlry-accent-bright: #bb9af7;
|
||||
--owlry-badge-app: #9ece6a;
|
||||
--owlry-badge-cmd: #7dcfff;
|
||||
--owlry-badge-dmenu: #e0af68;
|
||||
--owlry-badge-uuctl: #f7768e;
|
||||
}
|
||||
|
||||
.owlry-main {
|
||||
background-color: rgba(26, 27, 38, 0.95);
|
||||
border: 1px solid rgba(65, 72, 104, 0.6);
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5),
|
||||
0 0 0 1px rgba(122, 162, 247, 0.1);
|
||||
}
|
||||
|
||||
.owlry-search {
|
||||
background-color: rgba(36, 40, 59, 0.8);
|
||||
border: 2px solid rgba(65, 72, 104, 0.5);
|
||||
color: var(--owlry-text);
|
||||
caret-color: var(--owlry-accent);
|
||||
}
|
||||
|
||||
.owlry-search:focus {
|
||||
border-color: var(--owlry-accent);
|
||||
box-shadow: 0 0 0 2px rgba(122, 162, 247, 0.2);
|
||||
}
|
||||
|
||||
.owlry-result-row:hover {
|
||||
background-color: rgba(36, 40, 59, 0.6);
|
||||
}
|
||||
|
||||
.owlry-result-row:selected {
|
||||
background-color: rgba(122, 162, 247, 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);
|
||||
}
|
||||
|
||||
.owlry-badge-app {
|
||||
background-color: rgba(158, 206, 106, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
}
|
||||
|
||||
.owlry-badge-cmd {
|
||||
background-color: rgba(125, 207, 255, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
}
|
||||
|
||||
.owlry-badge-dmenu {
|
||||
background-color: rgba(224, 175, 104, 0.2);
|
||||
color: var(--owlry-badge-dmenu);
|
||||
}
|
||||
|
||||
.owlry-badge-uuctl {
|
||||
background-color: rgba(247, 118, 142, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
}
|
||||
|
||||
.owlry-filter-button:checked {
|
||||
background-color: rgba(122, 162, 247, 0.2);
|
||||
color: var(--owlry-accent);
|
||||
border-color: rgba(122, 162, 247, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-app:checked {
|
||||
background-color: rgba(158, 206, 106, 0.2);
|
||||
color: var(--owlry-badge-app);
|
||||
border-color: rgba(158, 206, 106, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-cmd:checked {
|
||||
background-color: rgba(125, 207, 255, 0.2);
|
||||
color: var(--owlry-badge-cmd);
|
||||
border-color: rgba(125, 207, 255, 0.4);
|
||||
}
|
||||
|
||||
.owlry-filter-uuctl:checked {
|
||||
background-color: rgba(247, 118, 142, 0.2);
|
||||
color: var(--owlry-badge-uuctl);
|
||||
border-color: rgba(247, 118, 142, 0.4);
|
||||
}
|
||||
|
||||
scrollbar slider {
|
||||
background-color: rgba(65, 72, 104, 0.5);
|
||||
}
|
||||
|
||||
scrollbar slider:hover {
|
||||
background-color: rgba(86, 95, 137, 0.7);
|
||||
}
|
||||
|
||||
scrollbar slider:active {
|
||||
background-color: var(--owlry-accent);
|
||||
}
|
||||
Reference in New Issue
Block a user