Implement left-side primary

This adds a new config `primary_side` that can be either `left` or `right`
and determines whether the primary stack is on the left or the right
side of the screen.
This commit is contained in:
Ben Buhse 2026-02-25 15:16:48 -06:00
commit 164ae9a7ab
No known key found for this signature in database
GPG key ID: 7916ACFCD38FD0B4
5 changed files with 42 additions and 18 deletions

View file

@ -45,6 +45,7 @@ wallpaper_image_path "~/Pictures/wallpaper.png"
| `attach_mode` | enum | `top` | Where new windows go in the stack (`top` or `bottom`) |
| `primary_count` | u8 | `1` | Number of windows in the primary stack (0+) |
| `primary_ratio` | float | `0.55` | Proportion of output width for the primary stack (0.10-0.90) |
| `primary_side` | enum | `left` | Whether the primary stack should be on the `left` or `right` |
| `single_window_ratio` | float | `1.00` | Proportion of output width taken when a single tiled window is visible (0.10-1.00) |
| `focus_follows_pointer` | bool | `#true` | Focus follows the pointer between windows |
| `pointer_warp_on_focus_change` | bool | `#true` | Warp pointer to center of newly-focused windows |

View file

@ -2,16 +2,19 @@
These are in rough order of my priority, though no promises I do them in this order.
- [ ] Add config for single-window width ratio (mostly because my ultrawide makes a single window massive)
- [ ] Support switch handling (e.g. lid close)
- [ ] Check pointer position and only warp if not on focused window already
- [ ] Change focus direction when closing window
- [ ] Use set_xcursor_theme request
- [ ] Add focused window title to bar
- [ ] Support overriding config location
- [ ] Support configuring primary vs secondary stack side
- [ ] Support switch handling (e.g. lid close)
- [ ] Support keybind modes (e.g. passthrough)
- [ ] Add support for center-primary layout
- [ ] Add bar padding to config
- [ ] Support 12-hour clock format (maybe take any time format string?)
- [ ] Support per-output bar visibility
- [ ] Support more window rule options (e.g. ssd/csd)
- [ ] Support solid `background-color` fallback (no wallpaper)
- [ ] Support keybind modes
- [ ] Support per-output wallpapers
- [ ] Support `focus-follows-cursor` granularity (`normal` vs `always`)
- [ ] Save window positions between restarts
@ -21,10 +24,6 @@ These are in rough order of my priority, though no promises I do them in this or
- [ ] Support configurable focus-follows-window on send-to-output
- [ ] Support configurable prepend/append on send-to-output
- [ ] Support taking new output's tags on send-to-output
- [ ] Add bar padding to config
- [ ] Support 12-hour clock format (maybe take any time format string?)
- [ ] Support per-output bar visibility
- [ ] Support more window rule options (e.g. ssd/csd)
- [ ] Add `spawn_tagmask`, `focus_previous_tags`, `send_to_previous_tags` commands
- [x] Support changeable primary ratio
- [x] Support changeable primary count
@ -46,3 +45,5 @@ These are in rough order of my priority, though no promises I do them in this or
- [x] Support window rules (float/tags by app-id/title)
- [x] Fix resizing size when you pop a window out, basically, it start with its current size but then when you try resize it goes to 75%
- [x] Move orphan handling out of .output and .seat events; into manage()
- [x] Add config for single-window width ratio (mostly because my ultrawide makes a single window massive)
- [x] Support configuring primary vs secondary stack side