Luigit
repositories / dotfiles

dotfiles

bugabingas dorkfiles

owned by admin

quickshell/nuguland/.system/specs/NL-SPEC-0B9CBD34-nuguland-bar-orientation/index.md

Raw
Rendered preview

id: NL-SPEC-0B9CBD34 type: spec title: Nuguland bar orientation

Nuguland bar orientation

Behavior

  • The bar has one global orientation: horizontal or vertical.
  • The default is horizontal.
  • The orientation interface accepts either orientation or toggle and returns the resulting orientation.
  • Unknown input is a no-op returning the current orientation.
  • Changes apply live and remain consistent across bar and popout geometry.

Layout

Concern Horizontal Vertical
Edge top left
Span full width full height
Thickness fixed bar height widest visible compact content
Flow left to right top to bottom
Clock inline hour and minute stacked hour, rule, minute
Popouts below the bar right of the bar
  • The clock remains the middle zone and never overlaps another bar zone.
  • Vertical workspace pills remain compact and use the widget-label abbreviation rule.
  • OSD and toast placement remains independently top-right.
  • Orientation transitions are immediate.

Abbreviation contract

Drop a, e, i, o, and u, then take the first three characters. If fewer than three characters remain, take the first three characters of the original label.

Input Output
notify ntf
code cod
media med
system sys
audio aud
power pwr

Popout constraints

  • Bar thickness is the only orientation-dependent offset shared with popout geometry.
  • Vertical popouts use the free area to the right, move rightward, and clamp on the y-axis.
  • Horizontal popouts use the free area below, move downward, and clamp on the x-axis.
  • The outside-dismiss region excludes the bar in both orientations.

Acceptance

  • Horizontal chips share a y-axis and vertical chips share an x-axis in increasing order.
  • Vertical thickness follows content rather than a fixed width.
  • The abbreviation self-test passes every required case.
  • Registered clock geometry does not overlap another bar zone.
  • Popout state reports the correct origin, constrained axis, and transition direction.
  • Outside dismissal does not intercept bar clicks.
  • Returning to horizontal preserves existing behavior.
  • The compositor keybind toggles orientation.
  • A human confirms labels, clock, and separator remain legible.
---
id: NL-SPEC-0B9CBD34
type: spec
title: Nuguland bar orientation
---

# Nuguland bar orientation

## Behavior

- The bar has one global orientation: `horizontal` or `vertical`.
- The default is `horizontal`.
- The orientation interface accepts either orientation or `toggle` and returns the resulting orientation.
- Unknown input is a no-op returning the current orientation.
- Changes apply live and remain consistent across bar and popout geometry.

## Layout

| Concern | Horizontal | Vertical |
| --- | --- | --- |
| Edge | top | left |
| Span | full width | full height |
| Thickness | fixed bar height | widest visible compact content |
| Flow | left to right | top to bottom |
| Clock | inline hour and minute | stacked hour, rule, minute |
| Popouts | below the bar | right of the bar |

- The clock remains the middle zone and never overlaps another bar zone.
- Vertical workspace pills remain compact and use the widget-label abbreviation rule.
- OSD and toast placement remains independently top-right.
- Orientation transitions are immediate.

## Abbreviation contract

Drop `a`, `e`, `i`, `o`, and `u`, then take the first three characters.
If fewer than three characters remain, take the first three characters of the original label.

| Input | Output |
| --- | --- |
| `notify` | `ntf` |
| `code` | `cod` |
| `media` | `med` |
| `system` | `sys` |
| `audio` | `aud` |
| `power` | `pwr` |

## Popout constraints

- Bar thickness is the only orientation-dependent offset shared with popout geometry.
- Vertical popouts use the free area to the right, move rightward, and clamp on the y-axis.
- Horizontal popouts use the free area below, move downward, and clamp on the x-axis.
- The outside-dismiss region excludes the bar in both orientations.

## Acceptance

- Horizontal chips share a y-axis and vertical chips share an x-axis in increasing order.
- Vertical thickness follows content rather than a fixed width.
- The abbreviation self-test passes every required case.
- Registered clock geometry does not overlap another bar zone.
- Popout state reports the correct origin, constrained axis, and transition direction.
- Outside dismissal does not intercept bar clicks.
- Returning to horizontal preserves existing behavior.
- The compositor keybind toggles orientation.
- A human confirms labels, clock, and separator remain legible.