10 Commits

Author SHA1 Message Date
mpuchstein 9c58cbdcf8 hypr: rewire owlry launcher binds for 2.2 profiles
Fix the launcher bind, which used pre-2.2 syntax (owlry -p
app,cmd,system,ssh) where -p is now --prompt, so the whole string was
passed as prompt text. Use bare 'owlry' for Super+Space and add Super+D
for the new dev profile (owlry --profile dev).
2026-06-01 22:10:13 +02:00
mpuchstein 119789cc53 hypr: use a single brightnessctl call for the brightness OSD
brightnessctl -m s sets and prints the new percentage in one invocation,
so drop the second brightnessctl call per (repeating) brightness keypress.
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 0d61fb3c5d hypr: integrate hyprsunset blue light filter and game bypass 2026-05-29 03:30:14 +02:00
Matthias Puchstein f2c5236dc6 some surface adjustments for hyprland (brightnesskeys etc) 2026-05-28 15:33:24 +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 5cf2ad9f4a hypr: migrate layout management to native Lua
Replace hypr-workspace-layout shell script with native Lua functions in
keybinds.lua. Add custom Lua layouts (master-scroll variants, swap
variants) to the SUPER+period cycle. Implement swap-on-focus via
_G._hl_ws_layouts shared global so window.active handler can check
per-workspace layout without IPC or hl.get_workspaces().
2026-05-12 04:19:10 +02:00
mpuchstein 9c7bf54cf1 hypr: replace hypr-workspace-layout shell script with native Lua
Port all layout management to Hyprland v0.55 Lua API:
- Per-workspace layout toggle/cycle via hl.workspace_rule + hl.get_active_window()
- Layout-aware move/nav/resize as pure Lua functions
- Group smart-join via hl.get_active_window().grouped
- mfact exact handlers in all custom scroll/swap layouts
- No io.popen, no exec_cmd, no IPC deadlock risk
2026-05-12 03:48:46 +02:00
mpuchstein 7b1c53cd64 refactor utilise some new hyprland features 2026-05-12 02:40:21 +02:00
mpuchstein d53bc5dadb hypr: migrate to Lua config (v0.55) with custom scroll layouts
Replace hyprlang hyprland.d/ with Lua-based hyprland.d.lua/ modules:
- theme.lua.tmpl: apex-neon + apex-aeon color tables, col.* bracket keys
- general.lua: config, bezier curves, animations (bezier=/spring= fixed)
- monitors.lua.tmpl, workspaces.lua.tmpl, input.lua.tmpl, rules.lua.tmpl
- keybinds.lua.tmpl: +/SHIFT/CTRL format, monitor focus (Super+I/O),
  scroll binds for custom layouts
- layout.lua: master-scroll, slave-master-scroll, center-master-scroll
  (peek-hint scrolling slave columns, focus-triggered auto-scroll)

Entry point uses package.path + require() for per-file error isolation.
Old hyprlang configs preserved under hyprland.conf.bak/.
Add .luarc.json for hyprland stub autocompletion in editors.
2026-05-12 01:00:42 +02:00