huntedbytheirs
7f3cad8cb6
perf(wave2): dynamic config arrays, flat dwindle tree, dual client arrays
...
Wave 2 changes:
- Dynamic Config arrays with geometric growth (cap=16, 2x growth)
→ saves ~2.5 MB heap for typical configs vs fixed 128-entry arrays
- Proper deep-copy protocol in on_config_reload/do_reload (free old, move new, zero source)
- Flat DwindleTree array with int children[2]/parent indices
→ eliminates pointer chasing, contiguous allocation, iterative two-pass recalc
- Lazy per-tag allocation (DwindleTree.nodes starts NULL, allocates on first use)
- Dual client_arr + fstack_arr arrays alongside wl_list/fstack for cache-friendly iteration
→ arrange() and focustop() use array scan instead of linked-list pointer chase
- All arrays maintain size-tracking (nclients, nfstack) for bounds checking
- Zero-warning build with clang -Werror -Wpedantic
2026-07-02 23:50:43 -04:00
huntedbytheirs
fb0f49e861
perf(wave1): reduce Config caps, reorder Client/Monitor for cache
...
Wave 1 changes:
- Reduce CFG_MAX_KEYBINDS 256→128, CFG_MAX_STRLEN 256→64, CFG_MAX_ARGS 16→8
→ saves ~2.5 MB BSS from Config struct
- Add truncation warnings to config_load when keybind/button/scroll limit reached
- Reorder Client struct: HOT fields (type, mon, tags, floating flags, geom) in first
cache line, COLD fields (wl_listeners) at end — saves cache misses in arrange()
- Reorder LayerSurface struct similarly
- Split Monitor into Monitor/MonitorCold: hot fields (~120B) stay inline, cold layout
state lazily allocated on first dwindle/master use
- All cold-field accesses through m->cold-> indirection
- cleanupmon frees m->cold
- Zero-warning build with clang -Werror -Wpedantic
2026-07-02 23:35:37 -04:00
huntedbytheirs
cd0e5ec1eb
Update readme
...
scenefx
2026-07-02 23:03:28 -04:00
huntedbytheirs
d3999a9d3c
Fix rounded corners
...
they were being dumb
2026-07-02 23:00:13 -04:00
huntedbytheirs
8478762828
feat(shadow): implement window drop shadows via SceneFX
...
Add wlr_scene_shadow node creation in mapnotify() with correct z-order
(wlr_scene_node_place_below for shadow-behind-borders). Update shadow
size/position/color/radius/blur/clip on every resize() with config-driven
visibility logic respecting fullscreen_shadows, nogaps_shadows, and
only_floating flags. Re-apply shadow on config hot-reload via
reapply_client_appearance() — create or destroy shadow nodes as needed.
Colors are premultiplied alpha per SceneFX API requirements.
2026-07-02 19:44:57 -04:00
huntedbytheirs
e4c3990cba
feat(config): parse effects.windows.shadows from Lua config
...
Add CfgEffectsWindowShadows struct (12 fields) and CfgEffectsWindows.shadows
member. Add wlr_scene_shadow *shadow field to Client struct for runtime
shadow node tracking. Update example/config.lua with full shadow config
block.
The config parser handles missing shadows table gracefully (all default).
2026-07-02 19:44:49 -04:00
huntedbytheirs
e6613f766d
refactor(parser): export parse_color_hex for compositor use
...
Remove 'static' from parse_color_hex() in parser.c and add a public
declaration to parser.h so src/peachwm.c can call it for shadow color
conversion. No changes to function body.
2026-07-02 19:44:06 -04:00
huntedbytheirs
2b603a8c87
update config
2026-07-02 05:01:53 -04:00
huntedbytheirs
4ac03d4059
feat(effects): implement window rounded corners via scenefx
...
- Parse effects.windows.rounded/rounding from Lua config
- Add CfgEffectsWindows and CfgEffects structs to Config
- Switch to fx_renderer_create for scenefx support
- Replace 5 wlr/types/wlr_scene.h includes with scenefx variant
- Add config_get_corner_radius() helper (light=6px, heavy=14px)
- Apply corner_radii_top/bottom/left/right to 4 border rects
- Apply wlr_scene_buffer_set_corner_radius to surface buffers
- Disable on fullscreen, restore on exit
- Re-apply on resize and config hot-reload
- Add -Wno-extra-semi for scenefx header compatibility
- All targets compile cleanly (make test passes)
2026-07-02 05:00:26 -04:00
huntedbytheirs
20e38fe682
build: fix debug target - add -Wno-pre-c23-compat for wlroots headers
2026-07-02 02:28:35 -04:00
huntedbytheirs
15f12be7e4
Add a cool ass logo :)
2026-07-02 02:25:06 -04:00
huntedbytheirs
dfafc08fde
refactor(peachmsg): migrate to nullptr, -std=c23; docs: update C references to C23
2026-07-02 02:09:00 -04:00
huntedbytheirs
c529815d54
refactor: standardize headers to #pragma once, add [[nodiscard]]/[[maybe_unused]] annotations
2026-07-02 02:07:04 -04:00
huntedbytheirs
969a6c4ecb
refactor: replace C11 keywords with C23 equivalents, NULL→nullptr, remove stdbool.h
2026-07-02 02:02:09 -04:00
huntedbytheirs
1e09b182ee
refactor: create include/common.h with shared types/macros, deduplicate across 7 files
2026-07-02 01:58:57 -04:00
huntedbytheirs
9581031dac
build: migrate from -std=c11 to -std=c23, add TCC guard and -Wno-c23-extensions
2026-07-02 01:54:21 -04:00
huntedbytheirs
b5ccb2621b
Massive code refactor
2026-07-02 01:24:16 -04:00
huntedbytheirs
c10722aa69
live laugh hate rust
2026-06-30 22:54:16 -04:00
huntedbytheirs
8da469afb4
Add a desktop file for sddm/ly/gdm/etc
2026-06-30 18:43:12 -04:00
huntedbytheirs
c5f74d7108
Fix sloppy_focus
2026-06-30 02:07:19 -04:00
huntedbytheirs
6464becd5b
Update
2026-06-30 01:45:19 -04:00
huntedbytheirs
cee2192cdf
Update the config
2026-06-30 00:50:55 -04:00
huntedbytheirs
5e5e787c41
Add floating window movement with keys. Add focus moving on floating
2026-06-30 00:40:39 -04:00
huntedbytheirs
02708b12c8
Add scratchpad
...
Added scratchpads
2026-06-29 16:35:52 -04:00
huntedbytheirs
71d4c14a62
Update README
2026-06-29 15:27:36 -04:00
huntedbytheirs
25a4f49bb5
Update README
2026-06-29 15:20:59 -04:00
huntedbytheirs
163b9e0a1c
Remove citation
2026-06-29 15:19:29 -04:00
huntedbytheirs
193ee75223
Update config
2026-06-29 15:16:18 -04:00
huntedbytheirs
1ded834e33
Add live reloading to the rest of the config
2026-06-29 02:41:38 -04:00
huntedbytheirs
0ee686356f
update smsg to peachwm
2026-06-29 02:27:03 -04:00
huntedbytheirs
b903150de2
Fix a dumb makefile mistake. All packages use make release
2026-06-29 02:14:51 -04:00
huntedbytheirs
7721aeb945
Add automatic packaging, with make test
2026-06-29 02:04:34 -04:00
huntedbytheirs
fb9add0778
Add a swaymsg-like IPC, and add some more docs.
2026-06-29 01:33:11 -04:00
huntedbytheirs
291e277f6e
Change maintainer, and change licensing.
2026-06-29 00:49:15 -04:00
huntedbytheirs
220c2b8feb
Update some docs
2026-06-29 00:41:52 -04:00
huntedbytheirs
781a4bfa92
Update README
...
Updated README to reflect last commit
2026-06-28 19:53:20 -04:00
huntedbytheirs
7fcd8577f3
Add input configuration live reloading
...
Made the input section of config.lua dynamically reloadable, no longer
requiring a hard restart.
2026-06-28 19:51:44 -04:00
huntedbytheirs
667dad864a
Add workspace starting layouts
2026-06-28 19:41:21 -04:00
huntedbytheirs
6c3dc371e3
Add back other layouts
...
Added back master + monocle
2026-06-28 19:32:48 -04:00
huntedbytheirs
f52d70f982
Update wlroots packae name
2026-06-28 19:21:23 -04:00
huntedbytheirs
df5ebf8553
Change to arch
2026-06-28 19:19:59 -04:00
huntedbytheirs
ef934ee44e
Fix update makefile for ci/cd
2026-06-28 19:12:38 -04:00
huntedbytheirs and GitHub
8148c07f72
Update CI workflow for multi-branch support and tests
...
ci cd
2026-06-28 19:08:46 -04:00
huntedbytheirs
1ff9910ee3
Update readme
2026-06-28 18:45:47 -04:00
huntedbytheirs
94a5045a21
Update readme
2026-06-28 18:44:49 -04:00
huntedbytheirs
06749ba34f
Add contributing
2026-06-28 18:44:24 -04:00
huntedbytheirs
b7c1e74d19
reverse stupidity
2026-06-28 18:39:08 -04:00
huntedbytheirs
1024a222be
Add features to Makefile
...
make release - compiles with clang, uses more aggressive compilation
flags for errors/warnings.
CC=tcc/gcc/clang make - lets you select your wanted compiler.
2026-06-28 18:03:05 -04:00
huntedbytheirs
e8199f6d33
Fix name in ipc
2026-06-28 17:52:51 -04:00
huntedbytheirs
4a66649863
Fix recursive CFLAGS
2026-06-28 17:51:31 -04:00
huntedbytheirs
1fb2a05ddf
Add compiler detection + optimizations
...
Added compiler detection:
TCC->Clang->GCC
Uses -O2 optimizations now
Uses -march=native by default, but by using
```make package```, it creates a distrobutable
binary instead.
2026-06-28 17:47:34 -04:00
huntedbytheirs
f529f03315
Massive code cleanup
...
Cleaned up:
Makefile
config.mk/.h
nix files (by removing them for now)
Removed dwl likeness.
2026-06-28 17:39:02 -04:00
huntedbytheirs
763512a24f
peachwm birth
2026-06-28 17:26:07 -04:00