feat: Add Hyprland special workspaces plugin (#116)
* feat: Add Hyprland special workspaces plugin * fix: Nest translation keys under settings object
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# Special Workspaces
|
||||
|
||||
Displays populated and currently active Hyprland special workspaces as compact
|
||||
chips in the Noctalia bar.
|
||||
|
||||
## Plugin
|
||||
|
||||
| Field | Value |
|
||||
| --- | --- |
|
||||
| ID | `jamesfeeder/special-workspaces` |
|
||||
| Entries | Bar widget: `special-workspaces`; service: `workspace-state` |
|
||||
|
||||
## Requirements
|
||||
|
||||
- Noctalia v5 with plugin API 3 or newer.
|
||||
- Hyprland, including its `hyprctl` utility.
|
||||
- Install `socat` on `PATH`.
|
||||
|
||||
## Usage
|
||||
|
||||
Enable `jamesfeeder/special-workspaces` in **Settings → Plugins**, then add
|
||||
**Special Workspaces** to the bar from **Settings → Bar**.
|
||||
|
||||
The widget shows special workspaces in alphabetical order. Active workspaces
|
||||
remain visible when empty. Inactive workspaces appear only while populated and
|
||||
can be hidden with `hide_inactive`.
|
||||
|
||||
## Settings
|
||||
|
||||
| Setting | Type | Default | Description |
|
||||
| --- | --- | --- | --- |
|
||||
| `max_label_chars` | `int` | `0` | Maximum Unicode characters shown from each workspace name. `0` shows the full name. |
|
||||
| `hide_inactive` | `bool` | `false` | Hide populated workspaces unless they are visible on a monitor. |
|
||||
| `capsule_radius` | `int` | `8` | Corner radius in logical pixels. Negative values are treated as `0`. |
|
||||
| `capsule_padding` | `int` | `5` | Space before and after the label along the bar axis, in logical pixels. Negative values are treated as `0`. |
|
||||
| `capsule_min_width` | `int` | `35` | Minimum capsule length along the bar axis, in logical pixels. Negative values are treated as `0`. |
|
||||
| `active_style` | `select` | `"fill"` | Active capsule style: `"fill"` or `"ghost"`. |
|
||||
| `inactive_style` | `select` | `"fill"` | Inactive capsule style: `"fill"` or `"ghost"`. Hidden when `hide_inactive` is enabled. |
|
||||
|
||||
## Notes
|
||||
|
||||
- Active means visible on any monitor, not focused.
|
||||
- Fill style uses `primary` colors for active workspaces and `secondary` colors
|
||||
for inactive workspaces. Ghost style uses a transparent fill with `primary`
|
||||
or `on_surface` text.
|
||||
- On vertical bars, capsules grow vertically and display one Unicode character
|
||||
per line from top to bottom.
|
||||
- The service snapshots `hyprctl -j clients` and `hyprctl -j monitors`, then
|
||||
listens to Hyprland's `.socket2.sock` through `socat`.
|
||||
- If the event socket disconnects, the service waits for it to return,
|
||||
refreshes its snapshot, and reconnects. It retains the last valid state while
|
||||
`hyprctl` is unavailable and retries failed snapshots up to twice.
|
||||
Reference in New Issue
Block a user