- desk.sh: list/current/switch/cycle/match/capture over cfg/desk-*.kdl profiles; apply = relink display.kdl, niri validate (rollback on fail), load-config-file, noctalia notification; match scores // requires: lines (EDID long names) against live niri msg outputs - desk-autoswitch.sh: watch niri msg --json event-stream for OutputsChanged, debounced desk.sh match --apply, reconnect loop - blankpad-desk-autoswitch.service: ConditionHost=blankpad user unit - gen-keybinds.sh: keybinds.kdl -> markdown cheat sheet (sections from // --- headers, hotkey-overlay-title preferred over action) - tests/: 27 bats cases, all green (desk 16, gen-keybinds 6, niri-config 5 incl. real niri validate on the assembled tree with each desk profile active)
20 lines
423 B
Desktop File
20 lines
423 B
Desktop File
[Unit]
|
|
Description=Desk Profile Auto-Switch for Blankpad
|
|
After=graphical-session.target
|
|
ConditionHost=blankpad
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=%u
|
|
Group=%u
|
|
ExecStart=/usr/bin/env bash %h/.omp/scripts/desk-autoswitch.sh watch
|
|
Restart=on-failure
|
|
RestartSec=5
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
Environment=DESK_NIRI=/usr/bin/niri
|
|
Environment=DESK_NOTIFY=noctalia msg notification-show
|
|
|
|
[Install]
|
|
WantedBy=default.target
|