Krema
A lightweight, high-performance dock for KDE Plasma 6 — spiritual successor to Latte Dock
Install / Use
/learn @isac322/KremaREADME
Krema
Note: Krema is under active development. Core features are functional, but some features are still in progress. See the Roadmap for details.
A lightweight, high-performance dock for KDE Plasma 6 — spiritual successor to Latte Dock.
Krema brings back the beloved dock experience for KDE Plasma users who miss Latte Dock. Built from scratch with C++23, Qt 6, and KDE Frameworks 6, it delivers smooth parabolic zoom animations, live window previews via PipeWire, and deep native integration with the Plasma desktop.
Why Krema?
- Your dock is back — Krema picks up where Latte Dock left off, purpose-built for Plasma 6
- A dock that speaks Plasma — Uses KDE's own frameworks (Kirigami, KConfig, KColorScheme, KGlobalAccel) and respects your theme, shortcuts, and desktop conventions
- Lightweight by design — GPU-accelerated rendering via QRhi, Wayland-native via Layer Shell, lazy resource allocation
- Make it yours — 7 background styles including acrylic frosted glass and Mica, configurable zoom, spacing, and position
Features
Core Dock
- Parabolic Zoom — macOS-style icon magnification on hover
- Icon Size Normalization — Auto-detects icon padding and scales for uniform appearance
- Indicator Dots — Visual markers for running applications
- Pin/Unpin — Keep favorite apps in the dock
- Context Menu — Right-click for pin, close, new instance (KDE Breeze native)
- Mouse Wheel Cycling — Scroll to switch between windows of the same app
Visual Styles
- Panel-Inherit — Match your Plasma panel style automatically
- Semi-Transparent — Subtle translucency over your desktop
- Transparent — Fully transparent dock background
- Tinted — Custom color with adjustable opacity
- Acrylic / Frosted Glass — Blur + noise texture effect
- Mica — System accent color based, inspired by Windows 11 Mica
- Adaptive Opacity — Switches to opaque when windows overlap the dock
Window Previews
- PipeWire Thumbnails — Live GPU-efficient window previews on hover
- Multi-Window List — All windows of grouped apps shown together
- Click-to-Activate — Click a preview to switch to that window
- Preview Close Button — Close windows directly from the preview popup
Notifications & Attention
- Notification Badges — Badge count on dock icons via D-Bus and SmartLauncher Unity API
- Badge Display Modes — Choose between Number, Dot, or Off
- 6 Attention Animations — Bounce, Wiggle, Pulse, Glow, Dot Color, and Blink
- Task Progress Bar — Progress indicator on dock icons (e.g. file copy in Dolphin)
- Do Not Disturb — Attention animations suppressed when system DND is active
- Auto-Stop — Attention animations stop after configurable duration (default 5s)
Multi-Monitor & Virtual Desktops
- Multi-Monitor Modes — Primary only, all screens, or follow active window
- Per-Screen Settings — Override icon size, edge, visibility mode per monitor
- Follow Active Triggers — Mouse, focus, or composite trigger for dock follows
- Virtual Desktop Filtering — Show all desktops, dim other desktops, or current only
- Automatic Startup — Launches on login, enforces single instance
Integration & Accessibility
- KDE Native Integration — Kirigami UI, KDE color schemes, Plasma theme colors
- Wayland Native — Built on Layer Shell protocol for proper dock behavior
- Smart Visibility — Always visible, auto-hide, or dodge windows modes
- Drag & Drop — Reorder dock items, drop files onto apps, add launchers by dragging .desktop files
- Settings UI — Kirigami-based settings dialog (FormCard) for easy customization
- Keyboard Accessibility — Full keyboard navigation with AT-SPI screen reader support
Keyboard Shortcuts
| Shortcut | Action | |----------|--------| | Meta+` | Toggle dock visibility | | Meta+1-9 | Activate Nth app | | Meta+Shift+1-9 | Launch new instance of Nth app | | Meta+F5 | Focus dock for keyboard navigation | | Arrow keys | Navigate between dock items / preview thumbnails | | Enter | Activate focused item | | Escape | Exit keyboard navigation |
Installation
| Distribution | Versions | Architectures | |---|---|---| | Arch Linux / Manjaro | Rolling | x86_64, aarch64 | | Fedora | 42, 43, Rawhide | x86_64, aarch64 | | openSUSE | Tumbleweed, Slowroll | x86_64, aarch64 | | Ubuntu | 25.04, 25.10, 26.04 | x86_64, aarch64 | | Debian | 13 (Trixie) | x86_64, aarch64 |
<details> <summary><strong>Arch Linux / Manjaro (AUR)</strong></summary>yay -S krema
# or
paru -S krema
</details>
<details>
<summary><strong>Fedora (COPR)</strong></summary>
sudo dnf copr enable isac322/krema
sudo dnf install krema
</details>
<details>
<summary><strong>openSUSE (OBS)</strong></summary>
# Tumbleweed
sudo zypper addrepo https://download.opensuse.org/repositories/home:isac322/openSUSE_Tumbleweed/home:isac322.repo
sudo zypper refresh
sudo zypper install krema
# Slowroll
sudo zypper addrepo https://download.opensuse.org/repositories/home:isac322/openSUSE_Slowroll/home:isac322.repo
sudo zypper refresh
sudo zypper install krema
</details>
<details>
<summary><strong>Ubuntu (PPA)</strong></summary>
sudo add-apt-repository ppa:isac322/krema
sudo apt update
sudo apt install krema
Alternatively, use the OBS repository for Ubuntu 25.04/26.04.
</details> <details> <summary><strong>Debian 13 (OBS)</strong></summary>echo 'deb http://download.opensuse.org/repositories/home:/isac322/Debian_13/ /' | sudo tee /etc/apt/sources.list.d/krema.list
curl -fsSL https://download.opensuse.org/repositories/home:isac322/Debian_13/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_isac322.gpg > /dev/null
sudo apt update
sudo apt install krema
</details>
<details>
<summary><strong>Building from Source</strong></summary>
Dependencies (Arch Linux / Manjaro)
sudo pacman -S --needed \
cmake extra-cmake-modules ninja ccache just gcc \
qt6-base qt6-declarative qt6-wayland qt6-shadertools \
kwindowsystem kconfig kcoreaddons ki18n \
kglobalaccel kcolorscheme kiconthemes kcrash kxmlgui kservice \
kirigami layer-shell-qt wayland kpipewire plasma-workspace \
catch2
Minimum Versions
| Dependency | Minimum Version | |---|---| | KDE Plasma | 6.0.0 | | Qt 6 | 6.8.0 | | KDE Frameworks 6 | 6.0.0 | | CMake | 3.22 | | C++ Compiler | GCC 13+ / Clang 17+ |
Build & Run
just configure # cmake --preset dev
just build # cmake --build --preset dev
just test # ctest --preset dev
just run # run krema
</details>
Roadmap
See ROADMAP.md for the full development roadmap.
Acknowledgments
Krema is a spiritual successor to Latte Dock, which served the KDE community for years as the go-to dock application. We are grateful for the Latte Dock project and the community that built and maintained it. Krema aims to carry that spirit forward for KDE Plasma 6.
Contributing
Contributions are welcome! Please open an issue to discuss your idea before submitting a pull request.
License
Krema is licensed under GPL-3.0-or-later.
Related Skills
node-connect
352.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
