summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2025-07-17add start_fullscreenAbhinav
now windows specifed can by default start fullscreened.
2025-07-17fix transparent borders with picomAbhinav
2025-07-17remove auto-fullscreen capabilitiesAbhinav
this feature was improperly implemented and causing problems. removing it for now
2025-07-01fix bottom bar struts taking half screen && windows killed on exitAbhinav
2025-07-01fix space reserved on monitors without bar/panelAbhinav
made reserve_(direction) monitor specific
2025-06-29add _NET_FRAME_EXTENTS atom supportAbhinav
this hopefully should allow programs like WINE and who spawn windows by them selves function properly
2025-06-29Merge branch 'main' of https://github.com/uint23/sxwmAbhinav
2025-06-29fix moving fullscreen windows disables fullscreenAbhinav
moving fullscreen windows to new workspace disables fullscreen on them. just removed redundant, old code
2025-06-29Merge pull request #110 from elbachir-one/mainAbhinav Prasai
Refactor keybinding configuration and parsing logic
2025-06-29fix resizing bug on second monitorAbhinav
2025-06-26Refactor keybinding configuration and parsing logicelbachir-one
- 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
2025-06-26Merge pull request #109 from elbachir-one/mainAbhinav Prasai
Improve safety in toggle_scratchpad() and remove_scratchpad()
2025-06-25Fix memory leaks in config parserelbachir-one
Ensure all dynamically allocated memory (e.g., should_float, can_swallow, open_in_workspace) is freed on error or cleanup
2025-06-25Improve safety in toggle_scratchpad() and remove_scratchpad()elbachir-one
- 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.
2025-06-25Merge pull request #107 from elbachir-one/mainAbhinav Prasai
Add window validity checks to swallow and unswallow functions
2025-06-24fix system hanging from waitingAbhinav
stop waiting for spawned procs
2025-06-24Add window validity checks to swallow and unswallow functionselbachir-one
- 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.
2025-06-24Merge pull request #104 from elbachir-one/mainAbhinav Prasai
Fix(spawn): support multiple piped commands
2025-06-24fix scratchpad focused on toggle offAbhinav
scratchpad now is out of focus when is toggled off so no problems where you accidentaly close it
2025-06-24add window centeringAbhinav
the user can now center any floating window with default bind centre_window
2025-06-24Fix(spawn): support multiple piped commandselbachir-one
- 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.
2025-06-24add open_in_workspaceAbhinav
user can now open specific windows in specific workspaces
2025-06-24add scratchpadsAbhinav
there are now i3 like scratchpads. all default binds added, mans updated
2025-06-23add XF86 key supportAbhinav
now other misc keys will work eg vol up etc
2025-06-23add new_win_masterAbhinav
new windows spawned can now be set as master window
2025-06-21move MIN_WINDOW_SIZE to defs.hAbhinav
2025-06-20add window swallowingAbhinav
the user can now specify which windows can swallow / can be swallowed.
2025-06-17Fix(config): correct config reload order and prevent memory leakselbachir-one
- Moved memset after cleanup loop to preserve bind count before freeing - Minor cleanup
2025-06-17relocate snap_coordinatesAbhinav
2025-06-14Improve drag handling: fix swap flicker, add snapping helper, clamp resizeelbachir-one
- 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
2025-06-14use custom build_argv for non-linux systemsAbhinav
BSD users dont have wordexp so i made a custom splitter for those systems
2025-06-11Refactor tile() for readability, modularity, and bounds safetyelbachir-one
- 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
2025-06-11remove old lowercasing logicAbhinav
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
2025-06-11fix invisible tray apps being focusedAbhinav
before when a tray app, eg steam was closed, it would still be focusable. now it only focuses if the window is mapped
2025-06-10add move and focus mon functions to call_tableRick Console
2025-06-10fix windows being mapped twiceAbhinav
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
2025-06-10Merge branch 'main' of https://github.com/uint23/sxwmAbhinav
2025-06-10add _NET_WM_DESKTOP property on client windowsAbhinav
This allows programs like polybar to detect which programs are open on which workspaces and allows for a wider EWMH compliance
2025-06-10add option to use backup keybindsAbhinav
-b and --backup allow the user to now start sxwm with the default backup keybinds
2025-06-08change focus when switching workspacesAbhinav
before when changing workspaces it would keep the focus on the previous workspace if the changed workspace had no windows. fixed
2025-06-08Merge pull request #80 from elbachir-one/mainAbhinav Prasai
Fix memory leaks, buffer overflows, and add resource cleanup in parser()
2025-06-07Fix memory leaks, buffer overflows, and add resource cleanup in parser()elbachir-one
- 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.
2025-06-07make change_workspace use find_toplevel for changing focusAbhinav
This is to fix a bug that sometimes happens with firefoxs use of subwindows which causes it to not go in focus
2025-06-07add find_toplevel functionAbhinav
This function correctly handles windows like firefox by finding the root window so that clicking on it will focus the window
2025-06-07fix clicking inside window after reload config not workingAbhinav
There was still an XGrabButton(dpy, Button1, 0, root, ...) in the reload config which disables the user from clicking anything inside the windows so I removed that
2025-06-07fix nothing inside window clickableAbhinav
i grabbed Button1 in setup, disabling it to be used by anthing other than the wm which means focus worked but not anything inside the window. fixed by grabbing them for the client instead
2025-06-06Merge pull request #77 from RickConsole/mainAbhinav Prasai
Add multi-monitor focus switching and window moving
2025-06-06clean up exec commandAbhinav
sxwm.c: before, some of the parsing logic of the exec command was located in setup, but i have relocated it to a seperate function called startup_exec. i have also replaced the manual spawning of windows with the spawn function parser.c: added the missing parsing logic of exec and simplified it
2025-06-06add click on window to set focusAbhinav
previously, you had to use the keyboard to set focus on a client, but now you can simply click on a window to set its focus
2025-06-06add monitor switching with shortened config namesRick Console