Commit Graph

27 Commits

Author SHA1 Message Date
mpuchstein 54e12efcae quickshell: fix workspace highlight drift and unstable sort
The sliding active indicator positioned itself via Repeater.itemAt(), which
returns null mid-rebuild; the fallback then stranded it at the top (looked
like workspace 1 was active while the font correctly showed another). Cells
are uniform, so compute the indicator's y arithmetically from the index
instead. Also make monitorWsData's sort deterministic: numbered workspaces
ascending, then named ones (e.g. joplin) alphabetically — parseInt alone
yields NaN and an unstable order for named workspaces.
2026-06-01 14:26:20 +02:00
mpuchstein dd5d8a348d quickshell: move the notification pill between k8s and system
Reorder the bottom bar group so notifications sit between the Kubernetes
and System pills.
2026-06-01 14:26:20 +02:00
mpuchstein 7c798c005c quickshell: run a single shared gamemode monitor
GamemodePill is instantiated per screen Variant, so it spawned one
long-lived gdbus monitor per monitor (3 on desktop). Move the watcher into
a shared Gamemode singleton so only one runs regardless of screen count.
2026-06-01 14:15:07 +02:00
mpuchstein 5c585697ae quickshell: use hyprlock for lock and power actions
swaylock broke and the stack already locks with hyprlock everywhere else;
point the desktop lockCommand and power menu at hyprlock and drop the
now-identical laptop/desktop branches.
2026-06-01 14:06:53 +02:00
mpuchstein 9525ff12db quickshell: poll k8s metrics only while the popout is open
The metrics poller spawned the heavy k8s-metrics script every 15s all day
even though its data only renders in the popout. Gate it on the popout
being open (triggeredOnStart fetches immediately on open) and slow the
pill's status poll from 30s to 120s.
2026-06-01 14:06:40 +02:00
mpuchstein 91c92c46eb quickshell: drop committed superpowers brainstorm scratch
These scratch HTML mockups and .server runtime files were tracked in the
source tree and would be applied into ~/.config. Remove them and ignore
the directory.
2026-06-01 14:05:35 +02:00
mpuchstein a74fef4bc5 quickshell: unify media player selection in a Media singleton
The pill and popout each picked an active MPRIS player independently, so
with multiple players open they disagreed and flipped. Add a Media
singleton that selects one active player with stickiness and bind both
components to it.
2026-06-01 14:05:35 +02:00
mpuchstein 1d85012b53 quickshell: collapse k8s-metrics into a single jq pass
Feed the three kubectl outputs into one jq program that does app
aggregation, CPU/memory unit normalization, and quota math, replacing the
per-pod jq fork loops and eight quota jq reads (~40 forks down to ~4).
2026-06-01 14:05:35 +02:00
mpuchstein 35b8e4372e quickshell: read system metrics natively and harden update polling
Replace the per-tick sh -c subprocess reads in the system popout with
Quickshell FileView reads (/proc/stat, /proc/meminfo, and once-resolved
hwmon/battery sysfs paths), dropping the 5s tick from ~7 process spawns to
~2. Wrap checkupdates in timeout 120 and guard against restarting an
in-flight run so a slow sync can no longer thrash or stall.
2026-06-01 14:05:35 +02:00
mpuchstein 11e4e94ee8 hypr: fix per-workspace layout detection, refactor lua, event-driven quickshell
Lua config (hyprland.d.lua):
- keybinds: layout-aware binds now read the per-workspace layout via
  cur_ws_layout() instead of the global hl.get_config("general.layout"),
  fixing mouse-wheel/bracket scrolling and ratio keys on the lua:*-scroll
  layouts.
- add state.lua shared module (ws_layouts) replacing the _G globals.
- layout: factor the 9 duplicated layout_msg bodies into scroll_msg/swap_msg
  builders; drop a dead #state expression.
- rules: NO_BLUELIGHT window.open handler no longer leaks a rule per open
  (one per class) and regex-escapes/nil-guards the class.
- monitors: quote non-numeric scale so scale="auto" renders.
- drop debug print() focus handler, local-next shadowing, stray {mouse=true}
  on wheel binds (kept on drag/resize, which require it).

Quickshell:
- brightness OSD is now event-driven: Osd.qml gains an IpcHandler(target:osd)
  and the keybind pushes the new level via `qs ipc call osd brightness`,
  removing the always-on 500ms brightnessctl poll.
- GamemodePill watches GameMode's D-Bus signals via gdbus monitor instead of
  polling gamemoded --status every 5s.

Cleanup:
- remove stock hyprland.lua.refactor/ boilerplate and the redundant,
  partly-wrong hyprland_lua_api.md (both were deployed into ~/.config/hypr;
  .luarc.json already points the LSP at /usr/share/hypr/stubs).
- refresh hypr/AGENTS.md (lua layout) and quickshell/CLAUDE.md (v0.3.0).
2026-06-01 13:06:59 +02:00
mpuchstein 8b9c38ab48 hypr: unify lockscreen and login screen via hyprlogin
Replace nwg-hello with hyprlogin as the greetd greeter. Both hyprlock
and hyprlogin now share a single apex-neon theme fragment
(.chezmoitemplates/apex-neon-lock.conf), giving an identical look on
lock and login.

- Add system/ staging tree for /etc files (not auto-applied by chezmoi)
- Add system/install-greeter.sh to render templates and sudo-install to /etc
- Add apex-neon shared fragment: palette, font, animations, input-field,
  clock/date bubbles, weather/location bubbles
- Add dot_config/hypr/themes/apex-neon-lock.conf.tmpl ($HOME copy for hyprlock)
- Rewrite hyprlock.conf.tmpl to source the shared fragment; move
  notification bubble here (hyprlock-only, requires quickshell)
- Add Quickshell IpcHandler so `qs ipc call notifications count` works
- Session fixed to hyprland-uwsm.desktop; greetd config targets greetd.conf
2026-05-29 17:19:32 +02:00
Matthias Puchstein a7e045c6b7 quickshell: enable kubernetes widget on all machines 2026-05-17 09:34:27 +02:00
Matthias Puchstein 7ade51b920 quickshell: add laptop support (battery, power-profile, conditional GPU/k8s)
Template Config.qml with chezmoi data for multi-machine support. Surface
gets eDP-1 monitor, battery/power-profile widgets, no discrete GPU or
Kubernetes polling. Desktop behavior unchanged.
2026-05-17 09:21:10 +02:00
mpuchstein eaaf857026 feat hypr keybind helper via quickshell; fix nvim plugins (not completly done yet) 2026-05-13 02:09:43 +02:00
mpuchstein 26303f56d8 chore updating hyprland to lua 2026-05-12 01:50:20 +02:00
mpuchstein 0c82f00884 fix: k8s-metrics non-fatal resourcequota failure keeps pod metrics alive 2026-04-22 02:00:38 +02:00
mpuchstein e868eb29aa k8s-widget: add KubernetesPopout and complete bar wiring 2026-04-22 01:49:40 +02:00
mpuchstein 7261824837 fix: deduplicate status color and guard stale 0/0 in KubernetesPill 2026-04-22 01:45:02 +02:00
mpuchstein 222e01c562 k8s-widget: add KubernetesPill to bar 2026-04-22 01:40:31 +02:00
mpuchstein 8b5e5e392d k8s-widget: add Kubernetes.qml singleton 2026-04-22 01:23:51 +02:00
mpuchstein 4cd2956f18 fix: k8s-metrics exit code and CPU label format 2026-04-22 01:20:42 +02:00
mpuchstein b43ae65747 k8s-widget: fix metrics aggregation for multi-replica apps 2026-04-22 01:14:21 +02:00
mpuchstein a2e6c23d58 k8s-widget: add k8s-metrics.sh 2026-04-22 01:11:56 +02:00
mpuchstein 5dafcfec0e k8s-widget: add k8s-status.sh 2026-04-22 01:04:42 +02:00
mpuchstein 1cfc32ff3b k8s-widget: add kube config properties 2026-04-22 01:01:27 +02:00
mpuchstein d5d890aa43 quickshell: add systemd service and system popout update/ALHP status improvements
- Add quickshell.service for systemd --user autostart
- Add ALHP status indicators (good/stale/building) with color-coded icons
- Make updates and ALHP building rows expandable with animated chevron
- Capture full checkupdates package list for expand drawer
- Parse alhp.utils packages array for ALHP expand drawer

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 23:44:23 +02:00
mpuchstein 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