MCPcopy Index your code
hub / github.com/MalpenZibo/ashell

github.com/MalpenZibo/ashell @0.9.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.9.0 ↗ · + Follow
1,172 symbols 2,345 edges 90 files 55 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ashell

A ready to go Wayland status bar for Hyprland and Niri.

<a href="https://matrix.to/#/#ashell:matrix.org"><img alt="Matrix" src="https://img.shields.io/badge/matrix-%23ashell-blue?logo=matrix"></a>
<a href="https://github.com/MalpenZibo/ashell/blob/main/LICENSE"><img alt="GitHub License" src="https://img.shields.io/github/license/MalpenZibo/ashell"></a>
<a href="https://github.com/MalpenZibo/ashell/releases"><img alt="GitHub Release" src="https://img.shields.io/github/v/release/MalpenZibo/ashell?logo=github"></a>







<a href="https://malpenzibo.github.io/ashell/docs/intro">Getting Started</a> | <a href="https://malpenzibo.github.io/ashell/docs/configuration">Configuration</a> | <a href="https://malpenzibo.github.io/ashell/dev-guide/">Developer&nbsp;Guide</a>

✨ Features

  • Automatic Hyprland/Niri compositor detection
  • Multi-monitor support (all monitors, active monitor, or specific targets)
  • Hot-reload configuration (changes apply automatically via file watch)
  • Bar positioning (top or bottom) with configurable layer (Bottom, Top, Overlay)
  • Theming: Islands, Solid, and Gradient styles with custom colors, opacity, scale, and fonts
  • OS Updates indicator with configurable check interval
  • Hyprland/Niri Active Window (title, class, or initial title/class)
  • Hyprland/Niri Workspaces with naming, color coding, and per-monitor visibility
  • System Information (CPU, RAM, Disk, IP address, Network speed, Temperature) with warn/alert thresholds
  • Hyprland/Niri Keyboard Layout with custom labels
  • Hyprland Keyboard Submap
  • System Tray with context menus
  • Clock with calendar, weather, timezone cycling, and format cycling (Tempo)
  • Privacy indicators (microphone, camera, and screenshare usage)
  • Media Player with album art and track info
  • Notification manager with toast popups, grouping, and urgency support
  • Settings panel
  • Power menu (shutdown, suspend, hibernate, reboot, logout, lock)
  • Battery and peripheral battery information
  • Audio sources and sinks (with microphone)
  • Screen brightness
  • Network (WiFi scanning, password entry; supports NetworkManager and IWD backends)
  • VPN
  • Bluetooth
  • Power profiles
  • Idle inhibitor
  • Airplane mode
  • Custom quick-action buttons with status commands
  • IPC socket for scripting and keybindings (ashell msg <command>)
  • OSD overlay for volume, brightness, and airplane mode changes
  • Custom Modules
  • Button (execute command on click)
  • Text (display-only, update UI with command output via listen_cmd)
  • Regex-based icon mapping and alert states

🛠️ Install

Packaging status

Refer to the Installation page for more details.

⚙️ Configuration

ashell comes with a default configuration that should work out of the box.

If you want to customize it you can refer to the Configuration page for more details.

💬 Community

Join the conversation on Matrix or open an issue on GitHub.

📖 Developer Guide

If you want to contribute or understand the codebase, check out the Developer Guide.

🤖 AI-Assisted Contributions

AI-assisted contributions are accepted — the same quality standards apply regardless of how the code was written. You are responsible for the code you submit: review AI output carefully, ensure make check passes, and be prepared to explain your changes.

Before working on a feature or large change, discuss it with maintainers first. Small, incremental PRs are preferred — code review is manual and remains the bottleneck.

For the full AI contribution guide, see the Developer Guide.

📷 Screenshots

I will try my best to keep these screenshots as updated as possible but some details could be different

default style

solid style

gradient style

opacity settings

Extension points exported contracts — how you extend this code

Service (Interface)
(no doc) [8 implementers]
src/services/mod.rs
IntoButtonContent (Interface)
(no doc) [3 implementers]
src/components/button.rs
ReadOnlyService (Interface)
(no doc) [11 implementers]
src/services/mod.rs
Icon (Interface)
(no doc) [3 implementers]
src/components/icons.rs
NetworkBackend (Interface)
Trait defining the interface for a network backend. This allows abstracting the specific D-Bus implementation (like IWD [3 …
src/services/network/mod.rs
ChannelVolumesExt (Interface)
(no doc) [1 implementers]
src/services/audio.rs
ThrottleExt (Interface)
(no doc) [1 implementers]
src/services/throttle.rs

Core symbols most depended-on inside this repo

iter
called by 136
src/outputs.rs
spacing
called by 83
src/components/centerbox.rs
use_theme
called by 67
src/theme.rs
width
called by 51
src/components/button.rs
align_y
called by 36
src/components/menu_wrapper.rs
style
called by 33
src/components/icons.rs
command
called by 32
src/services/audio.rs
padding
called by 30
src/components/centerbox.rs

Shape

Method 675
Class 163
Function 155
Enum 139
Interface 40

Languages

Rust99%
TypeScript1%

Modules by API surface

src/config.rs85 symbols
src/services/audio.rs42 symbols
src/outputs.rs37 symbols
src/services/network/iwd_dbus/mod.rs36 symbols
src/services/network/dbus.rs35 symbols
src/modules/settings/audio.rs35 symbols
src/components/position_button.rs35 symbols
src/modules/tempo.rs34 symbols
src/modules/notifications.rs33 symbols
src/i18n.rs31 symbols
src/services/mpris/mod.rs30 symbols
src/services/upower/dbus.rs28 symbols

For agents

$ claude mcp add ashell \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact