60 Commits

Author SHA1 Message Date
mpuchstein c38fcfa997 hypr: fix hypridle hyprlock flag and dpms dispatch for 0.55
Drop the invalid -f flag from lock_cmd (a swaylock holdover; hyprlock
v0.9.5 has no fork flag and the pgrep guard already prevents duplicates),
and migrate all dpms calls to the Lua dispatch form required since
Hyprland 0.55:  hyprctl dispatch 'hl.dsp.dpms({ action = ... })'.
2026-06-02 12:51:46 +02:00
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 be6c66d801 hypr: keep software cursors for the vertical monitor
no_hardware_cursors auto (2) still corrupts the cursor on the rotated
vertical monitor, and Hyprland has no per-monitor override, so force
software cursors (1) globally.
2026-06-01 14:15:34 +02:00
mpuchstein 4be6478802 hypr: fix windowsIn animation missing speed field
hl.animation rejects a spring leaf without a speed (Hyprland logged
"missing required field speed"), so windowsIn fell back to default. Add
speed so the snappy spring actually applies.
2026-06-01 14:15:20 +02:00
mpuchstein 27dd3bae91 hypr: add a lively spring to the window-open animation
Give windowsIn a snappy spring so windows pop in with a touch of life,
while window movement stays on the crisp easeOutQuint curve.
2026-06-01 14:06:21 +02:00
mpuchstein cf2d67b7fd hypr: enable automatic hardware cursors
no_hardware_cursors 2 (auto) uses hardware cursors where supported and
falls back to software only when needed, instead of forcing software
cursors globally.
2026-06-01 14:06:00 +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 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
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 da3ce09a9e added some nushell stuff and deleted deprecated hyprland config 2026-05-18 00:01:44 +02:00
mpuchstein 75e3b1bea1 chore: misc dotfile updates across owlry, hypr, zsh, gemini, nu
owlry: migrate config from TOML template to Lua (owlry 2.1); drop
  scripts/.keep placeholder
hypr: add apex-neon and apex-aeon theme variable files
zsh: fix apex git prompt — use herestring instead of process sub
gemini: add apex-neon and apex-aeon theme JSON files
nu: add .chezmoiignore for history.txt; add run_once zoxide-nu script;
  extend refresh-apex-themes to sync nushell themes
2026-05-17 08:49:12 +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 8a6cb3b37f let gemini write an api overview of hyprland_lua 2026-05-12 04:36:13 +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 26303f56d8 chore updating hyprland to lua 2026-05-12 01:50:20 +02:00
mpuchstein 52344c6287 hypr: add vertical scroll layouts and swap-on-focus layouts
New scroll layouts for vertical monitors:
- top-master-scroll: master top, horizontal slave row below
- center-master-scroll-v: master center, slave rows above and below

New swap-on-focus layouts (focusing a slave promotes it to master):
- master-swap: master left, slaves right
- slave-master-swap: master right, slaves left
- top-master-swap: master top, slaves bottom

Shared place_scroll_row helper (horizontal mirror of place_scroll_col).
Guard recalc dispatch by layout name to avoid errors from built-in layouts.
2026-05-12 01:29:25 +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
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
Matthias Puchstein 9161efab66 added a keybind for small brightness changes 2026-03-25 03:24:31 +01:00
mpuchstein 8b97d14bbf hypr: add HDR monitor options and convert rules to template
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 23:44:19 +01:00
mpuchstein 5549369a5c made the named workspaces keybinds also use index and added the cursor theme to chezmoi 2026-03-16 15:47:35 +01:00
mpuchstein fb2a360762 hyprpaper got removed in favor of awww a long time ago 2026-03-16 15:16:46 +01:00
mpuchstein 17c577c9ac simplified workspaces 2026-03-16 13:15:11 +01:00
Matthias Puchstein 081e104584 some cleanup as I am setting up the surface 2026-03-16 00:32:59 +01:00
Matthias Puchstein 7c39de5d9a hypr,waybar: fix workspace visibility and tag-gate steam/spotify
Remove persistent:true from named workspaces so they only appear in
waybar when occupied. Gate steam on cs2 tag and spotify on entertainment
tag. Fix waybar to prefer hyprland/workspaces over niri/workspaces when
both tags are present.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 23:56:34 +01:00
mpuchstein 4d830edbb9 hypr: fix monitor workspace move direction (I=left, O=right)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 23:34:59 +01:00
mpuchstein f2617605db hypr: add owlry power menu with hyprshutdown integration
Replace direct uwsm stop keybind with owlry-power-menu script.
Menu offers lock/suspend/logout/reboot/shutdown via hyprshutdown
for graceful session teardown.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 17:17:48 +01:00
mpuchstein 06f567cb49 hypr: reorder named workspaces (mail first, then comms/element)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 17:16:35 +01:00
mpuchstein 8f046dd3ea hypr: add layout-aware window move and resize keybinds
- Extend hypr-workspace-layout with move-left/right/up/down and
  resize-grow-h/resize-shrink-h modes; scrolling uses swapcol/colresize,
  monocle is a no-op, other layouts use movewindow/resizeactive
- Wire SUPER SHIFT HJKL to the new move-* endpoints
- Replace hardcoded ALT SHIFT HJKL swapcol/colresize binds with
  layout-aware ALT SHIFT JK resize endpoints; ALT SHIFT HL dropped
- Move workspace definitions from 60-rules.conf to 20-workspaces.conf.tmpl

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 17:04:51 +01:00
mpuchstein d17080f62b hypr: add Spotify workspace integration
- Add on-created-empty auto-launch for spotify and passwordmgr workspaces
- Add hypr-spotify-toggle script (mirrors steam/joplin/mail pattern)
- Add Super+A,C quickws keybind for spotify toggle

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 02:01:12 +01:00
mpuchstein 399596b88e hypr,waybar: rework workspace numbering to support named workspaces ordering
Renumber regular workspaces to IDs 21-30 with defaultName 1-10, giving
named workspaces IDs 1-6 so they sort before numbered ones in waybar.
Add persistent named workspaces (comms, element, mail, joplin, steam,
spotify) with monitor/layout assignments. Update keybinds to use name:
dispatch. Add spotify as dedicated monocle workspace on DP-2.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 01:27:45 +01:00
mpuchstein 93496b7622 hypr: pin comms and element workspaces to DP-2 with scrolling layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 00:51:01 +01:00
mpuchstein e40f520d63 hypr: support per-workspace layout config in workspace template
Allow monitor workspaces in chezmoi.toml to be defined as objects with
optional layout and layoutopts fields, enabling per-workspace layout and
layoutopt rules. Plain int arrays remain supported for monitors with no
per-workspace overrides.

Also commit waybar and cursor config tweaks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 00:46:34 +01:00
mpuchstein 246417313e chore: misc config updates across hypr, nvim, waybar, zed, zsh
- hypr: add transform support to monitor template; tweak scrolling layout
- nvim: refine apex theme token colors (operators, special, tags)
- waybar: move bar to right border of secondary monitor (DP-2)
- zed: add ssh connection, window/tab settings, adjust font sizes, rework theme token colors
- zsh: add plugin highlight colors to apex themes
- docs: add CLAUDE.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 23:03:21 +01:00
mpuchstein 32b1ded850 hypr: add F1 bind palette with executable bind runner 2026-03-01 17:15:00 +01:00
mpuchstein 3e80132c5e hypr: refactor keymap with submaps and layout-aware nav 2026-03-01 16:57:48 +01:00
mpuchstein 62409836fc hypr: add workspace layout toggles with notifications 2026-03-01 16:07:48 +01:00
mpuchstein 7ddeee27af hypr: refresh wiki and add scrolling workspace controls 2026-03-01 02:46:31 +01:00
mpuchstein 24d57001df hypr/autostart: route joplin and teamspeak to named workspaces 2026-02-28 20:17:07 +01:00
mpuchstein dadad155b2 added niri base config for tablet, switched from hyprlock to swaylock, crosshair updated 2026-02-23 21:25:29 +01:00
mpuchstein 4e2e75a044 simplified my pipewire conf 2026-02-15 00:54:45 +01:00
mpuchstein 5e7493da0b dotfiles: add niri config and pkg lists
- add niri config template with tag-conditional input settings

- add tag-based pkglist files and ignore pkglist in chezmoi

- update hyprland keybinds for ghostty and browser

- tweak apex nvim color schemes
2026-01-12 23:18:27 +01:00
mpuchstein 136d237620 config: expand launcher sources, set sklearn data, prune wallpapers 2026-01-05 04:01:35 +01:00
mpuchstein d46534f50e desktop: refine theming, workspaces, and utilities
- switch GTK font to GeistMono Nerd Font Propo 9 and drop GTK4 CSS overrides
- add named Hyprland workspaces/keybinds and Ghostty quick terminal; adjust screenshot binding
- update Waybar workspace icons/sorting; tweak Neovim transparency, Owlry/Qt6CT, and ROCm env
- add curated wallpaper sets for DP-1/DP-2 and new Hyprland toggle/screenshot helper scripts
2026-01-04 04:55:15 +01:00
mpuchstein bd51746242 hypr: refresh keybinds 2026-01-01 19:45:59 +01:00
mpuchstein b65a942347 swww: switch to awww-manager + timer 2026-01-01 19:38:48 +01:00