<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archsetup/dotfiles/hyprland/.local/bin/layout-navigate, branch main</title>
<subtitle>Builds a full dev workstation from a bare Arch Linux install.
</subtitle>
<id>https://git.cjennings.net/archsetup/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/archsetup/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/'/>
<updated>2026-06-02T17:16:38+00:00</updated>
<entry>
<title>refactor: drop in-repo dotfiles/, move stow tooling to the dotfiles repo</title>
<updated>2026-06-02T17:16:38+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-02T17:16:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=a816122f49d2c7e43e41308e251e133197a486bc'/>
<id>urn:sha1:a816122f49d2c7e43e41308e251e133197a486bc</id>
<content type='text'>
Since the installer clones DOTFILES_REPO into ~/.dotfiles and stows from there, the in-repo dotfiles/ tree was dead weight. Nothing reads it at install time. I removed it (831 files) now that both machines are migrated.

The Makefile's stow / restow / reset / unstow / import targets and the dotfile-script unit suites moved to the dotfiles repo. They sit alongside the scripts they manage and run standalone (cd ~/.dotfiles &amp;&amp; make ...). This Makefile keeps the VM-integration targets and the installer-helper suite (safe-rm-rf).

I updated CLAUDE.md and README.md so stow operations run from ~/.dotfiles, and the dotfile-management, theme, and unit-test sections point at the standalone repo. The README was already describing the old in-repo model from before the installer switched to cloning. This brings it in line.
</content>
</entry>
<entry>
<title>fix(hyprland): Escape special workspace on navigate</title>
<updated>2026-04-24T12:36:47+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-24T12:36:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=7146c79b43c9d2610048ee653c85d3bdf5aeaccf'/>
<id>urn:sha1:7146c79b43c9d2610048ee653c85d3bdf5aeaccf</id>
<content type='text'>
When focus is inside a special workspace (e.g. special:stash),
layoutmsg cyclenext/cycleprev only operates within that workspace,
trapping $mod+J inside the scratchpad overlay.

Detect workspace name starting with "special:" on focus navigation
(not move), toggle the overlay off first, re-read active window
state, then fall through to the normal layout/floating branches.

Add unit tests with a fake hyprctl harness in
tests/layout-navigate/. ```
</content>
</entry>
<entry>
<title>fix(hyprland): escape floating window focus trap in layout-navigate</title>
<updated>2026-04-09T06:17:15+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-09T06:17:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=7da4afdcdaa15a3af47d3295460b9298288d3bcb'/>
<id>urn:sha1:7da4afdcdaa15a3af47d3295460b9298288d3bcb</id>
<content type='text'>
layoutmsg cyclenext only operates on tiled windows, so $mod+J was a
no-op when focus was on a floating/pinned scratchpad. Detect floating
state and use cyclenext dispatcher instead.
</content>
</entry>
<entry>
<title>feat(hyprland): add monocle layout support, fix scrolling keybindings</title>
<updated>2026-03-07T17:18:18+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-03-07T17:18:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=324377297f06e610993a687c2c03740efd8b221e'/>
<id>urn:sha1:324377297f06e610993a687c2c03740efd8b221e</id>
<content type='text'>
Add monocle to layout cycle and waybar indicator. Fix scrolling layout
move (swapwindow) and resize (resizeactive). Add layout-resize script.
</content>
</entry>
<entry>
<title>feat(hyprland): waybar scratchpad toggles, remove hy3, fix cursor warp</title>
<updated>2026-02-06T16:14:33+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-06T16:14:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=ffa2a7b46e8fea13c3cd4ad4f11b60d7ca99e1d8'/>
<id>urn:sha1:ffa2a7b46e8fea13c3cd4ad4f11b60d7ca99e1d8</id>
<content type='text'>
Waybar modules now toggle pyprland scratchpads on click: sysmonitor
group opens btop, netspeed opens nmtui, pulseaudio opens pulsemixer.
Consolidated pyprland config to canonical ~/.config/pypr/config.toml.
Removed hy3 plugin from all configs and scripts (disabled since crash).
Added $mod+N for network scratchpad. Set cursor:no_warps to prevent
cursor jumping to window center on focus change.
</content>
</entry>
<entry>
<title>fix(hyprland): preserve j/k direction in master layout</title>
<updated>2026-01-26T03:57:07+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-26T03:57:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=205e43d1e4c6a30d783f8e45c48b9c7a36c62dd1'/>
<id>urn:sha1:205e43d1e4c6a30d783f8e45c48b9c7a36c62dd1</id>
<content type='text'>
Swap directions only in scrolling layout, not master.
- Master: J=next (down), K=prev (up) - original behavior
- Scrolling: J=left, K=right - swapped for intuitive scroll

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(hyprland): add plugins and simplify layouts</title>
<updated>2026-01-26T03:54:04+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-26T03:54:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=0a98a1721271536db3e79f2f170deced839b6aec'/>
<id>urn:sha1:0a98a1721271536db3e79f2f170deced839b6aec</id>
<content type='text'>
Plugins installed via hyprpm:
- hy3: i3-style manual tiling with tab groups (monocle)
- hyprscrolling: PaperWM-style horizontal scrolling
- xtra-dispatchers: throwunfocused, bringallfrom, closeunfocused

Layout system simplified to 4 modes:
- Master (tile) - default DWM-style
- Tab group (monocle) - via hy3 plugin
- Scrolling - horizontal columns
- Floating

New scripts:
- layout-navigate: layout-aware j/k navigation
- Updated cycle-layout: cycles through 4 layouts
- Updated waybar-layout: icons for new layouts

Other changes:
- Add hyprpm reload to startup
- Add cpio and fc-cache to archsetup
- Remove SSH fuzzel picker (conflicted with scrolling keybind)
- Add slidevert animation for scratchpads
- Update todo.org with plugin evaluation notes

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
