Skip to content

Repository files navigation

BlazeDock Logo

🔥 BlazeDock

A professional, lag-free Wayland dock for Linux

CI Status Release License Rust Version

Features • Installation • Configuration • Roadmap • Contributing


Overview

BlazeDock is a modern, native Wayland dock built with Rust and GTK4. Designed specifically for Fedora 43+ and other modern Linux distributions, it aims to exceed macOS Dock functionality while maintaining the performance benefits of native code.

Why BlazeDock?

Feature BlazeDock Plank Latte Dock
Wayland Native ✅ ❌ ⚠️
Memory Safe (Rust) ✅ ❌ ❌
GTK4 ✅ GTK3 Qt
Active Development ✅ ❌ ❌
Memory Usage ~50MB ~80MB ~150MB

Features

✅ Complete Feature Set (v0.1.x)

  • 🚀 Native Performance - Written in Rust for zero-lag operation (~25MB memory)
  • 🎨 Glassmorphism UI - Modern dark theme with transparency
  • 📌 Pinned Applications - Persistent launcher configuration
  • 🖥️ Wayland Native - Full Layer Shell support (Sway/Hyprland) + floating fallback (KDE/GNOME)
  • ⚙️ TOML Configuration - Easy customization with live reload
  • 🔄 Auto-start - Systemd user service and desktop entry
  • 🔍 Window Previews - Preview UI on hover (shows app icon fallback*)
  • 📊 Progress Rings - Cairo-drawn circular progress indicators
  • 🔔 Notification Badges - Count, progress, attention, and custom badges
  • 🎯 Magnification - macOS-style cosine-based zoom effect
  • ⌨️ Keyboard Shortcuts - Arrow navigation, type-to-search (Super+1-9 when dock focused*)
  • 🖱️ Window Dragging - Drag floating dock to reposition
  • 🎨 Theme Integration - Auto-detect KDE/GNOME accent colors
  • 🖥️ Multi-Monitor - Primary, All, Follow, and Per-Monitor modes
  • 📁 Profile System - Multiple dock configurations (work, gaming, presentation)
  • 🔄 Dynamic Running Apps - macOS-style display of non-pinned running applications
  • ⚡ Auto-Hide - Intelligent show/hide with edge detection
  • 🎯 Running Indicators - Dots and window count badges

See the full Roadmap and Feature Status for details.

Installation

Requirements

  • Fedora 43+ (or compatible distribution)
  • Wayland session (GNOME, KDE Plasma, Sway, etc.)
  • GTK4 >= 4.10
  • gtk4-layer-shell >= 1.0

Installation

# Clone the repository
git clone https://github.com/RavenRepo/blaze-dock.git
cd blaze-dock

# Run the installer for the current user
./scripts/install.sh --user

# Enable and start the service
systemctl --user enable --now blazedock

System-wide Installation

# Install binary
sudo cp target/release/blazedock /usr/local/bin/

# Enable autostart (optional)
mkdir -p ~/.config/autostart
cp data/blazedock-autostart.desktop ~/.config/autostart/

Configuration

BlazeDock uses a TOML configuration file located at ~/.config/blazedock/blazedock.toml.

Example Configuration

# Dock position: "left", "right", "top", or "bottom"
position = "left"

# Icon size in pixels
icon_size = 48

# Dock width/height
dock_size = 72

# Background opacity (0.0 - 1.0)
opacity = 0.85

# Enable exclusive zone (windows won't overlap)
exclusive_zone = true

# Enable hover zoom effect
hover_zoom = true
hover_zoom_scale = 1.15

# Multi-monitor mode: "primary", "all", "follow", "per-monitor"
multi_monitor_mode = "primary"

# Enable keyboard shortcuts (Super+1-9)
enable_shortcuts = true

# Active profile name
active_profile = "default"

# Show running apps dynamically
show_running_apps = true

# Enable window previews on hover
enable_window_previews = true

# Theme mode: "light", "dark", "system"
theme_mode = "system"

# Pinned applications
[[pinned_apps]]
name = "Firefox"
icon = "firefox"
command = "firefox"

[[pinned_apps]]
name = "Terminal"
icon = "org.gnome.Terminal"
command = "gnome-terminal"

See config/blazedock.toml for a complete example.

Usage

Running

# Standard launch
blazedock

# With debug logging
RUST_LOG=debug blazedock

# With specific config
BLAZEDOCK_CONFIG=/path/to/config.toml blazedock

Keyboard Shortcuts

Shortcut Action
Super+1-9 Launch/focus app at position
Super+D Toggle dock visibility
Super+/ Open search overlay
Arrow Keys Navigate dock items
Enter/Space Activate focused item
Escape Close search/popover

Screenshots

Coming soon

Roadmap

BlazeDock has a solid foundation with most UI features complete. Some advanced system integration features are pending Wayland protocol implementation. See docs/FEATURE_STATUS.md for detailed status.

Phase Overview

Phase Status Focus
1. Core Foundation ✅ Complete Basic dock, config, launching
2. Visual Excellence ✅ Complete Animations, theming, badges, progress rings
3. Window Integration ⚠️ Partial UI ready, window tracking placeholder
4. System Integration ⚠️ Partial Theme detection works, D-Bus placeholder
5. Intelligence ✅ Complete Auto-hide, edge detection, context awareness
6. Power User ✅ Complete Profiles, multi-monitor (global shortcuts pending)

Known Limitations

Note: These features have UI components but pending backend implementation:

  • Window Tracking: Uses process scanning; Wayland foreign-toplevel protocol not yet implemented
  • Window Previews: Shows app icon fallback; live screencopy capture pending
  • Global Shortcuts: Super+1-9 only works when dock has keyboard focus
  • D-Bus Badges: Unity LauncherEntry badge support not yet implemented

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Quick Start for Contributors

# Fork and clone
git clone https://github.com/YOUR_USERNAME/blaze-dock.git
cd blaze-dock

# Create a branch
git checkout -b feature/my-feature

# Make changes, then
cargo fmt
cargo clippy
cargo test

# Commit and push
git commit -m "feat: add my feature"
git push origin feature/my-feature

Areas We Need Help

  • 🧪 Testing on different Wayland compositors
  • 🖥️ Multi-monitor testing
  • 🎨 Icon theme compatibility
  • 📝 Documentation improvements
  • 🌍 Translations

Tech Stack

Component Technology
Language Rust 1.70+
UI Framework GTK4
Wayland Integration gtk4-layer-shell
Configuration TOML + Serde
Async Runtime Tokio

Performance

Metric Target Current
Startup Time < 100ms ~80ms
Idle CPU 0% 0%
Memory Usage < 50MB ~25MB
Binary Size < 5MB 1.8MB

License

BlazeDock is licensed under the MIT License.

Acknowledgments

Support


Made with ❤️ for the Linux community

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages