docs: add README with badges and GPL-3.0 license
- Comprehensive README with installation, usage, and configuration - Shields for Rust 1.90+, GTK 4.12, Wayland, GPL-3.0 license - Accurate default values and config field names - Theming documentation with CSS variables reference - Keyboard shortcuts and search prefix reference - GPL-3.0-or-later license (matching Cargo.toml) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
215
README.md
Normal file
215
README.md
Normal file
@@ -0,0 +1,215 @@
|
||||
# Owlry
|
||||
|
||||
[](https://www.rust-lang.org/)
|
||||
[](LICENSE)
|
||||
[](https://gtk.org/)
|
||||
[](https://wayland.freedesktop.org/)
|
||||
|
||||
A lightweight, owl-themed application launcher for Wayland, built with GTK4 and Layer Shell.
|
||||
|
||||
## Features
|
||||
|
||||
- **Provider-based architecture** - Search applications, PATH commands, and systemd user services
|
||||
- **Fuzzy search** - Fast, typo-tolerant matching across all providers
|
||||
- **Filter tabs & prefixes** - Scope searches with UI tabs or `:app`, `:cmd`, `:uuctl` prefixes
|
||||
- **Systemd integration** - Manage user services with submenu actions (start/stop/restart/status/journal)
|
||||
- **GTK4 theming** - Respects system theme by default, with optional custom themes
|
||||
- **CSS variables** - Full customization via config or custom stylesheets
|
||||
- **Wayland native** - Uses Layer Shell for proper overlay behavior
|
||||
|
||||
## Installation
|
||||
|
||||
### Dependencies
|
||||
|
||||
```bash
|
||||
# Arch Linux
|
||||
sudo pacman -S gtk4 gtk4-layer-shell
|
||||
|
||||
# Ubuntu/Debian
|
||||
sudo apt install libgtk-4-dev libgtk4-layer-shell-dev
|
||||
|
||||
# Fedora
|
||||
sudo dnf install gtk4-devel gtk4-layer-shell-devel
|
||||
```
|
||||
|
||||
### Build from source
|
||||
|
||||
Requires Rust 1.90 or later.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/yourusername/owlry.git
|
||||
cd owlry
|
||||
cargo build --release
|
||||
```
|
||||
|
||||
The binary will be at `target/release/owlry`.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# Launch with default settings (GTK theme, all providers)
|
||||
owlry
|
||||
|
||||
# Launch with only applications
|
||||
owlry --mode app
|
||||
|
||||
# Launch with specific providers
|
||||
owlry --providers app,cmd
|
||||
|
||||
# Show help
|
||||
owlry --help
|
||||
```
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Enter` | Launch selected item |
|
||||
| `Escape` | Close launcher / exit submenu |
|
||||
| `↑` / `↓` | Navigate results |
|
||||
| `Tab` | Cycle filter modes |
|
||||
| `Shift+Tab` | Cycle filter modes (reverse) |
|
||||
| `Ctrl+1` | Toggle Applications filter |
|
||||
| `Ctrl+2` | Toggle Commands filter |
|
||||
| `Ctrl+3` | Toggle systemd filter |
|
||||
|
||||
### Search Prefixes
|
||||
|
||||
| Prefix | Scope |
|
||||
|--------|-------|
|
||||
| `:app ` | Applications only |
|
||||
| `:cmd ` | PATH commands only |
|
||||
| `:uuctl ` | systemd user services only |
|
||||
|
||||
Example: `:cmd git` searches only PATH commands for "git"
|
||||
|
||||
## Configuration
|
||||
|
||||
Configuration file: `~/.config/owlry/config.toml`
|
||||
|
||||
```toml
|
||||
[general]
|
||||
show_icons = true
|
||||
max_results = 10
|
||||
# terminal_command = "kitty" # Auto-detected if not set
|
||||
|
||||
[appearance]
|
||||
width = 600
|
||||
height = 400
|
||||
font_size = 14
|
||||
border_radius = 12
|
||||
# theme = "owl" # Optional: "owl" or custom theme name
|
||||
|
||||
# [appearance.colors]
|
||||
# Override individual colors (optional)
|
||||
# accent = "#e0af68"
|
||||
# background = "#1a1b26"
|
||||
|
||||
[providers]
|
||||
applications = true
|
||||
commands = true
|
||||
uuctl = true
|
||||
```
|
||||
|
||||
### Default Values
|
||||
|
||||
| Setting | Default |
|
||||
|---------|---------|
|
||||
| `show_icons` | `true` |
|
||||
| `max_results` | `10` |
|
||||
| `terminal_command` | Auto-detected ($TERMINAL → xdg-terminal-exec → kitty/alacritty/etc) |
|
||||
| `width` | `600` |
|
||||
| `height` | `400` |
|
||||
| `font_size` | `14` |
|
||||
| `border_radius` | `12` |
|
||||
| `theme` | None (GTK default) |
|
||||
|
||||
## Theming
|
||||
|
||||
### GTK Theme (Default)
|
||||
|
||||
By default, Owlry inherits colors from your system GTK4 theme (Adwaita, Breeze, etc.).
|
||||
|
||||
### Owl Theme
|
||||
|
||||
Enable the built-in owl-inspired dark theme:
|
||||
|
||||
```toml
|
||||
[appearance]
|
||||
theme = "owl"
|
||||
```
|
||||
|
||||
### Custom Theme
|
||||
|
||||
Create a custom theme file at `~/.config/owlry/themes/mytheme.css`:
|
||||
|
||||
```css
|
||||
:root {
|
||||
--owlry-bg: #1e1e2e;
|
||||
--owlry-bg-secondary: #313244;
|
||||
--owlry-border: #45475a;
|
||||
--owlry-text: #cdd6f4;
|
||||
--owlry-text-secondary: #a6adc8;
|
||||
--owlry-accent: #f38ba8;
|
||||
--owlry-accent-bright: #f5c2e7;
|
||||
}
|
||||
```
|
||||
|
||||
Then reference it in config:
|
||||
|
||||
```toml
|
||||
[appearance]
|
||||
theme = "mytheme"
|
||||
```
|
||||
|
||||
### CSS Variables Reference
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `--owlry-bg` | Main background |
|
||||
| `--owlry-bg-secondary` | Secondary surfaces |
|
||||
| `--owlry-border` | Border color |
|
||||
| `--owlry-text` | Primary text |
|
||||
| `--owlry-text-secondary` | Muted text |
|
||||
| `--owlry-accent` | Accent/highlight color |
|
||||
| `--owlry-accent-bright` | Bright accent |
|
||||
| `--owlry-font-size` | Base font size |
|
||||
| `--owlry-border-radius` | Border radius |
|
||||
| `--owlry-badge-app` | Application badge color |
|
||||
| `--owlry-badge-cmd` | Command badge color |
|
||||
| `--owlry-badge-dmenu` | Dmenu badge color |
|
||||
| `--owlry-badge-uuctl` | systemd badge color |
|
||||
|
||||
### Custom Stylesheet
|
||||
|
||||
For full control, create `~/.config/owlry/style.css` with any GTK4 CSS.
|
||||
|
||||
## Providers
|
||||
|
||||
### Applications
|
||||
|
||||
Searches `.desktop` files from standard XDG directories.
|
||||
|
||||
### Commands
|
||||
|
||||
Searches executable files in `$PATH`.
|
||||
|
||||
### systemd User Services
|
||||
|
||||
Lists and controls user-level systemd services. Select a service to access actions:
|
||||
|
||||
- Start / Stop / Restart / Reload
|
||||
- Kill (force stop)
|
||||
- Status (opens in terminal)
|
||||
- Journal (live logs in terminal)
|
||||
- Enable / Disable (autostart)
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the GNU General Public License v3.0 or later - see [LICENSE](LICENSE) for details.
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
- [GTK4](https://gtk.org/) - UI toolkit
|
||||
- [gtk4-layer-shell](https://github.com/wmww/gtk4-layer-shell) - Wayland Layer Shell bindings
|
||||
- [fuzzy-matcher](https://crates.io/crates/fuzzy-matcher) - Fuzzy search algorithm
|
||||
Reference in New Issue
Block a user