惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
S
SegmentFault 最新的问题
D
DataBreaches.Net
H
Help Net Security
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
Martin Fowler
Martin Fowler
IT之家
IT之家
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
罗磊的独立博客
Y
Y Combinator Blog
阮一峰的网络日志
阮一峰的网络日志
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
Vercel News
Vercel News
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
博客园 - 三生石上(FineUI控件)

Hacker News

Probed — Talk to Your People HN Work GitHub - Northwood-Systems/foreman: Self-hosted LLM gateway. Cost effective, deterministic, and fast. Secure and private by default. A Visualization Language for the AI Era NoCrap — Neuroscience-Based Recovery Pods GitHub - weirdGuy/kastor: Declarative language and toolchain for AI agents: define agents, tools and prompts in HCL, then compile to frameworks or manage them on hosted platforms with plan/apply semantics. Abralo - Run multiple Claude Code agents in one window GitHub - mehranzand/repofleet: RepoFleet is an issue-centered CLI tool for managing Git workflows across multiple repositories. GitHub - exmergo/dex: Dex is the agent-native analytics engineering toolkit. Point it at your warehouse and your dbt project. It learns the landscape, authors your transformations, and tells you exactly what to fix when the schema drifts. Built for analytics engineers and data engineers who want more out of their coding agent. Pug — Open Source Product Analytics GitHub - instavm/tarit: A hypervisor and sandbox cloud for self-hosted AI agents and RL Chiptune Radio — Aleph Void, LLC Free Mermaid Live Editor & Diagram Maker GitHub - Salnika/dejavu: Stop showing coding agents the same command output twice. GitHub - hirasso/html-obfuscator: Obfuscate emails, phone numbers, and other sensitive data in PHP. Invisible to humans, hidden from bots until they interact. Davit — a native macOS UI for Apple containers Fenzo AI - The perfect course, every time. HTML Drive — Edit and Publish HTML from Google Drive GitHub - rowboatlabs/rowboat: Open-source AI coworker, with memory ZeroGate | Automated Cluster Scaling A tiny scale-free kernel language — Joa Ebert GitHub - arman-jalili/guardian-framework: Architecture Enforcement Framework for AI-Assisted Development Yamanote.fun PostgreSQL on AWS: Size & Benchmark EC2 Instances GitHub - zqiren/Orbital: the agent that never starts from zero GitHub - Rodiun/frugon: Free, local, open-source LLM cost analyzer — see where your LLM bill leaks, on your machine. Artificiety — A Fantasy World for AI Agents Ex Situ FlexInference: Drop your AI costs today WhimFiles - Find Any File in Seconds
GitHub - skorotkiewicz/rudo: A small, elegant dock for Wa...
modinfo · 2026-04-17 · via Hacker News

Rodo

A small, elegant dock for Wayland.

rudo is built for a clean desktop: pinned apps, live running windows, gentle autohide, and simple user configuration. It is designed to feel at home on niri, while still working with other Wayland compositors that expose the right protocols.

Features
  • Wayland-first dock UI with GTK4 + layer-shell
  • Persistent pinned apps
  • Running window tracking
  • Launch feedback to prevent double-click spam
  • Badge notifications — unread counts from apps (Discord, Telegram, etc.)
  • Configurable menu system — power menu, custom actions, confirmations
  • Output-based grouping — group and order windows by monitor/screen
  • Optional autohide with hover-to-reveal
  • User theming via CSS
  • User behavior settings via JSON

Compositor Support

  • niri: best experience, using NIRI_SOCKET integration
  • Other Wayland compositors: works through wlr-foreign-toplevel-management when available
Feature Availability by Backend
Feature niri wlr-foreign-toplevel
Window tracking ✅ Full ✅ Full
Activation/close ✅ Full ✅ Full
Badge notifications ❌ Not yet ⚠️ Limited*

* Badge notifications depend on compositor-specific protocol extensions. Most compositors don't currently provide badge counts through the standard protocol.

Build

cargo build --release

Or with just:

just build

Run

cargo run --release

Or:

just run

Install

From AUR (Arch Linux)

For Arch Linux users, rudo is available in the AUR as rudo-bin:

yay -S rudo-bin
# or
paru -S rudo-bin

This installs the pre-built binary. No compilation needed.

Configuration

rudo stores its user files in ~/.config/rudo/.

  • pins.json: pinned applications
  • settings.json: behavior settings
  • style.css: visual overrides

Default settings.json:

{
  "autohide": {
    "enabled": true,
    "delay_secs": 3
  },
  "show_pin_button": true,
  "icon_size": 24,
  "position": "bottom",
  "animation_duration_ms": 220,
  "menu": {
    "enabled": true,
    "icon": "system-lock-screen-symbolic",
    "position": "end",
    "items": [
      {"label": "Lock", "icon": "system-lock-screen-symbolic", "command": "swaylock -f", "confirm": false},
      {"label": "Logout", "icon": "system-log-out-symbolic", "command": "loginctl terminate-user $USER", "confirm": true},
      {"label": "Restart", "icon": "system-restart-symbolic", "command": "systemctl reboot", "confirm": true},
      {"label": "Shutdown", "icon": "system-shutdown-symbolic", "command": "systemctl poweroff", "confirm": true}
    ]
  }
}
  • position: "bottom", "top", "left", "right" (requires restart)
  • icon_size: Size in pixels (default: 24)
  • animation_duration_ms: Show/hide animation in milliseconds (default: 220)
Menu System

Configure a power menu or custom actions via the menu section:

  • enabled: Show/hide the menu button
  • icon: Icon name for the menu button (default: system-lock-screen-symbolic)
  • position: "start" (before pins) or "end" (after running apps)
  • items: Array of menu items with label, command, optional icon, and confirm flag

Set confirm: true to show a confirmation dialog before executing destructive commands.

Badge Notifications

When supported by your compositor, rudo displays unread notification counts (badges) on dock items from apps like Discord, Telegram, etc. Badge counts are aggregated across all windows of the same app.

  • Zero-count badges are automatically hidden
  • Counts above 99 display as "99+"
  • Red badge with white text for visibility

style.css is loaded on every start after the built-in theme, so you can override the dock without rebuilding.

Autostart (niri)

Add to your niri config:

// ~/.config/niri/config.kdl
spawn-at-startup "rudo"

Development

just fmt
just check

Status

rudo is intentionally small. The codebase is structured to stay easy to change as more dock behavior is added over time.