Files
s0wlz (Matthias Puchstein) c5f7162ebb quickshell: add initial bar config with per-monitor workspaces
- 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>
2026-04-05 20:00:54 +02:00

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)