IABSD.fr/xenocara/app/cwm

Branch :


Log

Author Commit Date CI Message
a89db768 2026-01-05 14:46:59 handle Meta release as a separate mod key. from Sven M. Hallberg
a6d3163c 2025-08-20 23:44:06 add window-snap-center function OK tb@ okan@
fff7e715 2024-04-10 19:38:22 Grab the pointer against the root window instead of the client we're attempting to move and/or resize; prevents XNextEvent() from blocking on a client that might have been moved to a Withdrawn state. behavior noticed and reported by zenitds at proton.me - thanks!
cd47a6bf 2023-07-20 14:39:34 Allow cwm(1) to cycle through windows of the same window class as the active window; default key binding to M-grave, respectively Alt-Tilde, like other window managers have as well. from Simon Dassow
2c64aaa9 2023-03-22 08:27:36 cwm: fix a semi-transparency border issue with some applications When running with a compositor the border of some applications (firefox, chromium, zathura...) is not rendered correctly. Initializing the highest significant bits of the color fixes it. diff from Julien Blanchard (julien at typed-hole [dot] org); ok okan@
2ccd7ef8 2022-10-15 16:06:07 Fix overlapping menu items as reported by kn@ and probably others at some point; with op@ and Walter Alejandro Iglesias helping along the way. Consistently use font ascent+descent instead of an arbitrary font height+1 for individual menu item rectangles and placement. ok kn@ op@
ff9ee77b 2022-02-27 14:59:55 cycling fix: when no client is active, warp pointer to last active; from Walter Alejandro Iglesias.
9e2fadeb 2022-02-26 15:19:18 whitespace
0dc7557b 2022-02-26 15:03:42 Fix spelling of some unused MWM hints; from Sean C. Farley. While here, flesh out the rest of the MWM hints.
531a41dd 2022-01-27 18:45:10 Add group-last command that shows only the previously active group; ok okan
0bc2cafd 2021-12-24 16:00:47 Allow bare numbers for key and mouse bindings; taken from similar support in other parse.y's; from Leon Fischer <lfischer@airmail.cc>.
76fc387e 2021-11-22 00:51:54 sync parse.y changes from base; ok naddy@ original from naddy@: > Don't declare variables as "unsigned char *" that are passed to > functions that take "char *" arguments. Where such chars are > assigned to int or passed to ctype functions, explicitly cast them > to unsigned char. > > For OpenBSD's clang, -Wpointer-sign has been disabled by default, > but when the parse.y code was built elsewhere, the compiler would > complain. > > With help from millert@ > ok benno@ deraadt@
e6b99bb2 2021-11-19 19:13:14 Do not attempt to grab keys without a keycode; this incidentally allows XF86 keys support. found and fix by Luis Henriques <henrix@camandro.org>
3d5003b3 2021-04-22 10:02:55 Keep pointer within window on maximize/fullscreen toggle Spawn a window, maximize it in any way, move the cursor to a window border that is not on the screen's edge and unmaximize again: While the window goes back the cursor stays at the screen's edge, i.e. focus is lost to the underlaying window. Moving, resizing, tiling or snapping windows in any way always moves the cursor along iff needed, e.g. using MS-[hjkl] to move a small window from the center to the edge keeps the cursor within window borders -- no matter what you do with the keyboard, focus stays on that window. Make CM-f, CM-m, CM-equal and CMS-equal (default bindings) for toggling full-screen mode, maximization, vertical maximization and horizontal maximization of the current window drag the cursor along if needed as well. OK okan kmos dv
c45f7648 2020-04-25 20:07:28 Fixed memory leak in xu_get_strprop. If a client calls XSetTextProperty for a window to clear all its properties, then allocated memory within libX11 is not freed. OK okan@
493e33f3 2020-04-16 17:12:49 Prevent out of boundary write with configuration files in which too many quoted arguments are stored for other window managers. The quotation handling happens within the while loop without checking if the "end" limit has been already reached. If this happens, the final NULL assignment leads to an out of boundary write on stack. OK okan@
831953a4 2020-04-16 13:32:35 Allow configuring a percentage window size of the master window during htile/vtile actions. From Uwe Werler, with a few manpage tweaks.
6a7a7f23 2020-03-24 14:48:29 zap stray tabs
9be0e4bd 2020-03-24 14:47:29 Instead of using _NET_ACTIVE_WINDOW on restart, use the pointer location to determine what client to set active. Reduces a round trip for every window.
afa5b8b6 2020-03-23 20:14:27 Add support for SIGINT/SIGTERM.
4b4fe72f 2020-03-20 18:50:08 Simplify conditional construct. OK okan@
0f6482dc 2020-03-20 15:16:31 Trim event_mask to those that the root window actually needs.
f91df0c6 2020-03-20 12:13:20 No need to lookup current client early; move to right before it is needed.
caa175be 2020-03-16 17:50:44 Recommit 1.259, but now with TAILQ_FOREACH_SAFE. From and OK okan@ Original commit message: Plug two memory leaks. Also get rid of a variable that is no longer necessary. OK okan@
5376c8c3 2020-03-14 16:11:09 Revert previous. Causes a crash as reported by Tom Murphy.
99b5f483 2020-03-13 20:50:07 Simplify list markup. OK okan@ schwarze@
8990b0be 2020-03-13 20:49:13 Plug two memory leaks. Also get rid of a variable that is no longer necessary. OK okan@
aa3cb842 2020-02-28 13:38:35 Remove ColormaskChange from event-mask since there's no event handler.
caa934d8 2020-02-27 14:56:39 Unrelated style fixes, consistency changes and sorting, appropriate dosage/removal of wrappers, simplification of name queue, client cycle joins other kb/mb bound functions.
ea9d0bc0 2020-02-07 18:53:41 Allow the 'empty' group clients to be window-{h,v}tile'd. Behaviour (or lack there of) noticed by Raf Czlonka.
36336514 2020-02-03 16:38:02 Map ('5') and allow mod5mask (altgr) as a modifier. From Artturi Alm (though changed from 'm' to '5')
b6e5a98f 2020-01-22 19:58:35 add, then use, xvasprintf, checking for appropriate return.
9f969d00 2020-01-21 15:50:03 Ensure the pointer stays within client bounds after a window 'snap' (to edge). reported by Stefan Hagen.
2bcb96d9 2019-08-13 18:45:38 Because cwm warps the pointer during a client move (to stay within the client), there's a window of time where an expose or enternotify event will get generated for a lower client; use a hammer and drain events after keyboard move/resize, until such a time that cwm doesn't warp the pointer. Behavior noticed by kn. ok kn@
ba4d949d 2019-08-12 00:52:36 Fix regression from r1.107 (lost a return); kettenis@ pointed out the high potential for a use-after-free (true!) where kn@ ran into the regression using an app that actually exercised the XGrabPointer() failure path.
795560f7 2019-07-09 21:38:44 Add application section Link what is described as "applications" here to how they are actually defined in cwmrc(5). While here, call the configuration file what it is instead of reusing the default path (already mentioned in the FILES section). OK okan
fed210f7 2019-07-02 23:37:47 command uses execvp(3) not execve(2) util.c:u_exec() has been doing so since import.
dbaf2f61 2019-04-29 19:03:20 Plug a memory leak in log_debug(); OK okan@
20bce2a6 2019-04-29 19:02:21 Handle _NET_WM_NAME changes. This fixes the problem where cwm's window menu wouldn't show Firefox's current window title if it contains non-ASCII characters. OK okan@
48e6bf1e 2019-03-11 15:25:46 Check the atom type on propertynotify before iterating.
c8b9937b 2019-03-10 22:53:11 use screen_find() for xrandr crtc changes
b041ee60 2019-03-10 20:38:28 Find the managed screen from the parent window for client_current().
18c4f462 2019-03-08 20:33:30 Print window id in hex; while here, remove unnecessary newline.
1dc13f57 2019-03-08 17:40:43 Similar to keypress event, fetch the screen from the event root window in the buttonpress handler; bail if we don't manage the screen. Allows us to find the current client based on the screen/event root.
e34b5f47 2019-03-08 15:04:39 extend verbose logging for key/button events
d039ccc7 2019-03-08 14:48:02 [keypress event] turns out we've been checking the wrong window for a matching client thus always falling back to client_current(); while the current client is problaby right in most cases, use event's subwindow (not window) to find the client. Bail early if this event came to us from a screen we don't manage. This is result of us grabing all keybindings off the root window instead of selectively.
adfbd356 2019-03-08 13:17:26 add parans for readibility
4957b62d 2019-03-07 14:28:17 Teach client_current() to use a screen to find the current client instead of iterating over all (fallback if no screen provided for now). Initially convert trivial uses of client_current().
92b42c17 2019-03-07 13:24:44 check cc->gc directly
42f2ef66 2019-03-07 13:24:10 zip extra lines
723d64d1 2019-03-07 13:14:41 gc clientq inside groups, instead use the better maintained one per-screen
053c616a 2019-03-07 12:54:21 shuffle deck chairs: rename group actions to match intent for clarity
af768514 2019-03-06 13:32:19 same thing as screen_find()
8fa20d6f 2019-03-04 19:28:17 Separate out the menu window from the client resize/move geom window; in each case, create and destroy on-demand. Isolate more menu specific code.
9bf0bd42 2019-03-04 14:48:59 fix a few misplaced (and misnamed) ewmh root window functions
edf7ed84 2019-03-04 14:36:02 _NET_WORKAREA needs ngroups, so screen_update_geometry() needs to come after conf_group().
f18d19c6 2019-03-04 13:33:39 simplify xftcolor config
a15d8772 2019-03-01 14:32:01 Tie group number and name together during config.
ef3d45ea 2019-02-28 23:26:12 Move the group index (desktop number) check to the only 2 callers that require checking due to ewmh.
5efe73bc 2019-02-28 23:20:52 Ensure we don't action on the last group when the requested one is not found.
b08a193e 2019-02-28 13:11:53 Selectively hide and show clients based on state; merge client_unhide() and client_show().
7d83c3f6 2019-02-25 18:07:48 Add a configtest flag (-n). based on a diff from Sascha Paunovic.
93ac77f5 2019-02-25 16:40:49 Add 'group-close-[n]' action to close all windows within specified group. heavily based on a diff from Nam Nguyen.
24bbd924 2019-02-23 19:17:17 simplify screen 'area' usage for initial client placement
54c6cee1 2019-02-22 20:52:13 restore order from before r1.248 (vtile/vtile containment changes).
90189b3c 2019-02-22 19:40:32 Rename internal functions to delinate between client remove, delete and xproto delete; 'window-close' is now the proper action, but 'window-delete' as an alias will remain until more interesting changes require breaking configs.
aadf21ed 2019-02-22 14:39:18 Limit vtile/htile actions to clients fully within the screen of master client. from Charles A Daniels.
c6840459 2019-02-13 15:43:24 fix missing includes
7d9a5b34 2018-11-14 19:22:51 Stop asking for events (NoEventMask) from menu window once done with the menu (we don't destroy it, only unmap).
ee0ce74a 2018-11-13 17:37:13 Allow 'transientfor' clients to inherit group and bwidth either during init or via property notify events. Previously only the flags were set but nothing was in the path to apply said flags and/or bwidth. Required slight of re-orgnaization of client_init.
0a0e5244 2018-11-09 16:00:54 merge from base, from sashan@: > - odd condition/test in PF lexer > (and other lexers too) > > This commit rectifies earlier change: > > in the lex... even inside quotes, a \ followed by space or tab should > expand to space or tab, and a \ followed by newline should be ignored > (as a line continuation). compatible with the needs of hoststated > (which has the most strict quoted string requirements), and ifstated > (where one commonly does line continuations in strings). > > OK deraadt@, OK millert@
2fda1294 2018-11-08 15:49:42 Use the original client border width to adjust initial placement of clients containing {P,US}Position requests where they are explicitly set to 'ignore' in cwmrc(5); clients are unaware that their border will be altered (removed in this case) when calcuating position and thus end up a factor of their original border width off once mapped by cwm(1). cwm(1) will essentially shift the client to the edge if the original request's position and border match. Window offset noticed by at least Andre Stoebe via bugs@, and others since (and likely before). Thanks!
2f18ffa3 2018-07-16 14:19:23 Remove unused prototype; from Ross L Richardson.
0fee670a 2018-02-19 19:29:42 Do not print any parse errors when ~/.cwmrc is missing. Regression introduced in revision 1.109 of calmwm.c. ok okan@
697099fc 2018-02-13 15:43:15 Store the screen's visual type and colormap.
4943cc00 2018-02-13 15:06:22 Consolidate region 'view' and 'area'.
f1e693de 2018-02-09 20:08:07 limit scope of screen_apply_gap()
088c402d 2018-02-09 19:54:54 Clean up conf_file/homedir and conf_init() bits.
96465e4c 2018-02-06 15:05:20 Use screen's saved view instead of re-querying the server.
5e4538db 2018-02-04 22:56:26 Slightly expand and expose verbose debugging.
b5c7b4db 2018-02-02 13:50:22 add debugging for x events
231107e0 2018-02-02 13:40:55 Add a simple debug logging mechanism.
17954eae 2018-02-02 13:27:25 Simplification; use asprintf where appropriate now.
05e25234 2018-02-01 15:17:51 Use func attributes where appropriate.
5a56fafb 2018-01-23 16:18:59 Fix wins comparison declaration since it's unsigned from XQueryTree().
ebf71bdf 2018-01-23 16:00:21 Generate name_to_func[] in a clean and readable fashion.
a1afcb28 2018-01-23 13:51:39 Shrink tier[] by one after removing matchname in r1.55.
0ddfd6d2 2018-01-23 13:48:49 If the requested group number is invalid, bail but don't kill cwm.
d6b2d66a 2018-01-08 16:21:54 Quick fix: exit after a failed execvp in u_spawn instead; previously we did in u_exec, but the introduction of re-exec'ing the previous invocation of cwm if 'exec_wm' failed missed the 'exec' failing path. Will likely split out as a proper fix. Odd behaviour reported by Ve Telko.
c0bbe24b 2018-01-02 14:04:58 Only exec the fallback when in CWM_EXEC_WM state. Broken quit noticed by Ve Telko.
13cc53e0 2017-12-30 22:25:09 Typo, from Julien Steinhauser.
0bf4ad02 2017-12-29 20:09:19 If the replacement window manager fails to start, restart the fallback (the original invocation of cwm).
cd4212fc 2017-12-29 20:03:46 Convert menu-exec-wm from an abritrary exec menu, into a config-based menu from which one may configure (wm <name> <path_and_args>) (and choose) specific window managers to replace the running one. 'wm cwm cwm' is included by default. No objections and seems sensible to sthen.
73d42251 2017-12-29 18:50:43 As done for buttonrelease, work specific un-cycling and un-highlighting actions into the keyrelease event, only performing what's actually needed for each; should result in much fewer events against keyreleases. No intended behaviour change. Additionally, like we do for group membership, grab the keyboard only when required for cycling.
ef788522 2017-12-29 16:55:50 Merge group_toggle_membership_leave into the buttonrelease event and only do border work for a group/ungroup action.
832edccd 2017-12-29 12:54:54 add helper function client_show to bring together like actions for unhide/raise
9c1762c1 2017-12-27 18:46:18 Add support for re-exec'ing with SIGHUP; equivalent to the already built-in 'restart' function.
bcdf71d0 2017-12-27 17:04:35 Use poll and XNextEvent to replace XNextEvent blocking inside the x11 event handler.
97f922dc 2017-12-22 21:30:01 zap stray that snuck in
9ced81cc 2017-12-22 21:27:45 Return the connection number for the display.