https://github.com/user-attachments/assets/beaaf135-5cdf-46d9-975d-91e3e6f04068

Personal dotfiles for a Hyprland + Quickshell desktop, packaged so they can be installed via Nix flake or make install.

To try it without installing anything, boot the demo VM: cd nixos && nix build .#nixosConfigurations.vm.config.system.build.vm && ./result/bin/run-mugen-vm-vm (autologins into Hyprland; credentials are mugen / mugen).

For directory layout, install paths, dependencies, and keybindings see SETUP.md.


Environment

OS NixOS (also runs on Arch-based distros)
GPU AMD Radeon RX 9070 XT
WM Hyprland (Lua config — the classic .conf twins are kept as a fallback)
Shell Zsh + Starship
Terminal Kitty
Desktop Shell Quickshell
Wallpaper awww / mpvpaper
Colors Matugen (Material You)

Yura

https://github.com/user-attachments/assets/61328371-aa8e-4f96-aae8-2817fadf3ed4

A casual hello in the bar; the corner pop-up shuffles the wallpaper, switches to light mode, and opens a browser through tool calls.

Yura is the desktop chat assistant. It runs in two places: a single input row in the bar (Super + Y) and a chat panel anchored to a screen corner (Super + Shift + Y).

The backend is mugen-ai, a Go server in ai/. It supports:

  • Local models via Ollama
  • Anthropic Claude
  • Google Gemini
  • OpenAI-compatible APIs (OpenAI, OpenRouter, LM Studio, vLLM, etc.)

Set up alongside mugen-shell via NixOS, Arch + Nix, or make install; see SETUP.md. All Yura configuration (providers, personality, tool toggles, allowed apps) lives under Settings → AI / Yura.

Features

  • Bar row and corner panel share the same conversations and stay in sync; the sidebar keeps multi-conversation history on disk.
  • Per-conversation model binding, plus a per-conversation Thinking toggle routed through each provider's reasoning channel.
  • Markdown replies with code-block copy, streaming with a stop button, IME-aware input.
  • Personality, providers, and every other Yura knob editable from the Settings GUI — Save & Apply hot-restarts the backend.
  • Voice input (optional): say "Hey Yura", talk, and the reply is spoken back via VOICEVOX / AivisSpeech (or Piper for non-Japanese voices). The mic stays open for follow-ups, and both UIs get a push-to-talk button. Setup in SETUP.md → Voice input.
  • Strict-by-default app allowlist, per-category tool toggles, and external MCP servers merged into the same gated set.

Shell control by chat

Yura drives the desktop through gated tool calls: volume, mic, brightness, theme, wallpaper, music, notifications, timers, calendar, panels, and an allowlisted app launcher. Reversible actions run immediately, destructive ones confirm in chat, and external MCP writes sit behind an Approve / Deny prompt. Power actions are deliberately not exposed. Try "set volume to 30", "shuffle the wallpaper", or "set a 25 minute timer" — the full domain table, gating details, and config are in SETUP.md → Shell control by chat.


Preview

TikTok demo — @ripnk6498


Features

  • Material You color scheme generated from the current wallpaper via Matugen
  • Video and image wallpaper switching (mpvpaper + awww) with a picker UI
  • Cava audio visualizer
  • Standalone Calendar window with month grid, events list, and inline add / edit
  • Countdown timer with preset durations, free-form M:SS input, a progress ring, and a remaining-time pill in the bar
  • Music player integration (playerctl / MPRIS) with YouTube thumbnail fallback and a seekable progress slider
  • Clipboard history and notification center
  • Speaker and microphone control sharing one volume panel
  • Laptop backlight slider with hardware-key integration (hidden on systems without a backlight)
  • WiFi, Bluetooth, and IME management
  • Battery indicator (optional water-level fill inside the power menu icon) and a collapsible system tray
  • App launcher, idle inhibitor toggle, screenshot capture with clipboard copy, screenshot gallery, power menu
  • Standalone Settings window: theme, blur, animations, sounds, lock timer, date format, plus the full Yura and Voice input sections

Usage

After installation (see SETUP.md), the bar starts automatically with the Hyprland session. Press Super + / for the shortcut reference. Right-clicking the power menu icon opens Settings, and the chevron next to the notification icon expands the system tray. The full keybind list is in SETUP.md → Keybindings.


Credits

mugen-shell stands on Hyprland, Quickshell, and many other projects — the full list is in SETUP.md → Credits.

The bundled "Hey Yura" wake word model (voice/models/hey_yura.onnx) is a custom openWakeWord model trained on Japanese speech synthesized with VOICEVOX.


License

MIT License