- Vertical bar on DP-2 with rounded-square pills throughout - Per-monitor workspace groups sorted by screen x position, with Nerd Font icons for named workspaces and apex-neon red active indicator - Bar layout: datetime+weather top, workspaces centered, gamemode+media+notif+system bottom - Popouts anchor to triggering icon (top-right for datetime/weather, bottom-right for media/notif/system) - Lock command switched from hyprlock to swaylock - Hyprland blur/ignore_alpha layerrules for quickshell namespace Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
71 lines
2.5 KiB
Markdown
71 lines
2.5 KiB
Markdown
# Quickshell Desktop Shell
|
|
|
|
A vertical bar + popout panel shell for Hyprland, built with Quickshell v0.2.x and themed with Catppuccin.
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
quickshell # launch (reads from ~/.config/quickshell/)
|
|
```
|
|
|
|
Quickshell hot-reloads on file save. If it crashes: `killall quickshell && quickshell &`
|
|
|
|
## Configuration
|
|
|
|
All user settings live in **`shared/Config.qml`**. Edit this file to customize your setup:
|
|
|
|
| Setting | Default | Description |
|
|
|---------|---------|-------------|
|
|
| `catppuccinFlavor` | `"mocha"` | Color theme: `"mocha"`, `"macchiato"`, `"frappe"`, `"latte"` |
|
|
| `transparency` | `true` | Semi-transparent bar/popouts (requires Hyprland layerrules below) |
|
|
| `monitor` | `"DP-1"` | Which monitor to display the bar on |
|
|
| `workspaceCount` | `5` | Number of workspace indicators |
|
|
| `weatherLocation` | `"Munich"` | City name for wttr.in weather data |
|
|
| `useCelsius` | `true` | Temperature unit (`false` for Fahrenheit) |
|
|
| `use24h` | `true` | Clock format (`false` for 12-hour) |
|
|
| `weekStartsMonday` | `true` | Calendar week start day |
|
|
| `diskMount1` / `diskMount2` | `"/"` / `~/data` | Disk mounts shown in system popout |
|
|
| `idleProcess` | `"hypridle"` | Idle daemon to toggle |
|
|
| `lockCommand` | `"hyprlock"` | Lock screen command |
|
|
|
|
## Hyprland Layerrules (required for blur/transparency)
|
|
|
|
Add to your `hyprland.conf`:
|
|
|
|
```ini
|
|
# Enable blur on all Quickshell windows
|
|
layerrule = match:namespace quickshell:.*, blur on
|
|
layerrule = match:namespace quickshell:.*, ignore_alpha 0.79
|
|
```
|
|
|
|
The shell registers these namespaces:
|
|
|
|
| Namespace | Window |
|
|
|-----------|--------|
|
|
| `quickshell:bar` | The main bar panel |
|
|
| `quickshell:popout` | Popout overlay (notifications, media, weather, etc.) |
|
|
| `quickshell:osd` | Volume/brightness OSD |
|
|
| `quickshell:notifications` | Toast notification popups |
|
|
| `quickshell:idle` | Idle screen overlay |
|
|
|
|
To target specific windows, replace `quickshell:.*` with the exact namespace:
|
|
|
|
```ini
|
|
# Only blur the bar, not popouts
|
|
layerrule = match:namespace quickshell:bar, blur on
|
|
layerrule = match:namespace quickshell:bar, ignore_alpha 0.79
|
|
```
|
|
|
|
If you set `transparency: false` in Config.qml, layerrules are not needed.
|
|
|
|
## Dependencies
|
|
|
|
- **Hyprland** — compositor
|
|
- **PipeWire** — audio control
|
|
- **lm_sensors** (`sensors`) — CPU temperature
|
|
- **Nerd Fonts** (Inconsolata Go Nerd Font) — all icons
|
|
- **hyprlock** / **hypridle** / **hyprshutdown** — lock, idle, power
|
|
- **brightnessctl** — brightness OSD (optional, auto-detected)
|
|
- **wf-recorder** — screen recording (optional)
|
|
- **hyprpicker** — color picker (optional)
|