Turns out, some windows weren’t properly cleaning up after themselves, leaving behind undead nested processes lurking in the shadows of our system. To fix this, I’ve introduced proper PID tracking with a shiny new windowIDToPIDMap, facilitating keeping tabs on which windows are still breathing and which need a swift, merciful execution.
The new cleanupTerminatedWindows() function patrols for these lost souls, checking if their process is actually terminated using kill(0), and if that’s not convincing enough, windowManager will peek into /proc/[pid]/cmdline to verify if they’re who they say they are. If a process is missing or pretending to be something it's not, it is exorcised from our system.
To keep our execution order from turning into a chaotic zombie apocalypse of race conditions, I’ve wrapped windowIDToPIDMap in a std::mutex, ensuring that multiple threads don’t accidentally resurrect the dead while another is trying to bury them.
Lastly, because everyone should respect basic survival instincts, I’ve added error handling for directory creation. No more blindly assuming /tmp/hypr exists—we should check before we start dumping files there, because even the undead deserve some proper housekeeping.
:)
* Update README.md
* Update README.md
* Added relative workspace switching
* Added a haiku to readme
* haiku in readme
* Limit workspace from 1 to 10 (relative switching)
* Fixed workspace animation direction
* move window to relative workspace
* faster split ratio change
* turns out relative workspace is already there lol
* Adjustable splitratio
* removed vscode stuff
* a
* Fixed y resize speed
* clean
* Added a separate config value for resize speed
* Update hypr.conf
* Update hypr.conf
* Apply requested changes by vaxry
* use new config name for RESIZEANIMATIONSPEED