| Age | Commit message (Collapse) | Author |
|
|
|
was confusing before making users think that toggle_fullscreen was set on all the windows.
|
|
update(docs): voidlinux installation
|
|
- Added MAX_BINDS macro to replace magic number (256) in alloc_bind
- Fixed potential null dereference in strip() on empty strings
- Corrected redundant KeySym assignment in parse_combo()
- Improved clarity and maintainability of call_table and helper functions
- Ensured safe string handling with proper bounds and terminators
- Added fallback logic for unknown key symbols using parse_keysym()
- Proper bounds checks on buffers and allocations
|
|
|
|
Improve safety in toggle_scratchpad() and remove_scratchpad()
|
|
Ensure all dynamically allocated memory (e.g., should_float, can_swallow, open_in_workspace)
is freed on error or cleanup
|
|
|
|
- Added bounds check using MAX_SCRATCHPADS to prevent out-of-range access.
- Stored scratchpad client in a local variable for clarity.
- Guarded against null `focused` pointer before using it.
- Enhances stability and prevents potential crashes.
|
|
Add window validity checks to swallow and unswallow functions
|
|
stop waiting for spawned procs
|
|
- Verify `swallowed->win` before resizing to avoid potential crashes with invalid windows.
- Updated `unswallow_window` to verify `swallower->win` before mapping, raising, and focusing.
- Prevents undefined behavior when client windows are not properly initialized.
|
|
Fix(spawn): support multiple piped commands
|
|
scratchpad now is out of focus when is toggled off so no problems where
you accidentaly close it
|
|
the user can now center any floating window with default bind
centre_window
|
|
- Rewrote spawn to handle arbitrary pipelines (e.g., cmd1 | cmd2 | cmd3).
- Dynamically parses and segments commands around pipe tokens.
- Manages multiple pipes and forks with proper resource cleanup.
|
|
user can now open specific windows in specific workspaces
|
|
there are now i3 like scratchpads. all default binds added, mans updated
|
|
now other misc keys will work eg vol up etc
|
|
new windows spawned can now be set as master window
|
|
|
|
the user can now specify which windows can swallow / can be swallowed.
|
|
Fix(config): correct config reload order and prevent memory leaks
|
|
wasnt updated, so just added all things new
|
|
- Moved memset after cleanup loop to preserve bind count before freeing
- Minor cleanup
|
|
|
|
Improve drag handling: fix swap flicker, add snapping helper, clamp r…
|
|
|
|
- Fixed bug in DRAG_SWAP where `last_swap_target` reset each motion event
- Added `snap_coordinate()` helper to reduce code duplication in move logic
- Enforced minimum window size via `MIN_WINDOW_SIZE` define
- Clamped window resize to screen bounds
- Removed magic numbers for better configurability and clarity
|
|
BSD users dont have wordexp so i made a custom splitter for those
systems
|
|
Refactor tile() for readability, modularity, and bounds safety
|
|
|
|
oops didn't spot that
|
|
- Reorganized code into clearer logical blocks
- Added bounds checks for MAXCLIENTS to avoid overflow
- Skipped redundant XConfigureWindow calls for unchanged geometry
- Ensured proper handling of stack heights under overfill and underfill
- Improved variable naming and structure for maintainability
|
|
no longer doing lowercase for all the rokens. this was old logic and now
omitted. this also allows support for using characters such as BackSpace
which requires capitalisation
|
|
before when a tray app, eg steam was closed, it would still be
focusable. now it only focuses if the window is mapped
|
|
|
|
Fix default keybinding since by default its mod + shift + f and not mod + f
|
|
|
|
|
|
|
|
when you click a link it used to summon the window to your workspace but
now it leaves everything be so you have to go there manually
|
|
|
|
This allows programs like polybar to detect which programs are open on
which workspaces and allows for a wider EWMH compliance
|
|
-b and --backup allow the user to now start sxwm with the default backup
keybinds
|
|
before when changing workspaces it would keep the focus on the previous
workspace if the changed workspace had no windows. fixed
|
|
Fix memory leaks, buffer overflows, and add resource cleanup in parser()
|
|
- Fixed potential memory leaks in `should_float` allocation and exec command duplication.
- Prevented buffer overflows by using `snprintf` and properly bounded copies.
- Ensured all allocated memory is freed on parser failure for robust cleanup.
|
|
This is to fix a bug that sometimes happens with firefoxs use of
subwindows which causes it to not go in focus
|
|
This function correctly handles windows like firefox by finding the root
window so that clicking on it will focus the window
|