aboutsummaryrefslogtreecommitdiffstats
path: root/conf.c (unfollow)
Commit message (Collapse)AuthorLines
2021-12-03Do not attempt to grab keys without a keycode; this incidentally allows XF86 ↵okan-1/+3
keys support. found and fix by Luis Henriques <henrix@camandro.org>
2021-04-27Migrate to an XDG-compliant config file locationWynn Wolf Arbor-8/+14
2021-04-27Calculate colors using the client's visual and colormapWynn Wolf Arbor-0/+21
As cwm was using the screen's default visual and colormap to draw all client borders, borders for windows that had a depth of 32 bits were not rendered correctly. The same happened with text in the popup menus which were recently changed to be drawn in the context of the client. This commit introduces a Visual reference for each client, and allocates all potential colors for a client's specific visual and colormap in the client_ctx struct. These colors are then used to draw client borders and popup menus. Additionally, since we touch the drawing code anyway, borders are reintroduced to the popup menus for better contrast.
2021-04-27Plug a memory leak in conf_clearWynn Wolf Arbor-9/+2
These loops never freed cargs and cargs->cmd from bind_ctx. Instead of adding more calls to free() manually, replace the whole loops with the conf_unbind_* functions which free the struct properly.
2021-04-27Remove matching on window title historyWynn Wolf Arbor-1/+0
Obscure feature. Confusing if you don't know about it, mostly useless if you do. Matching on currently visible window titles is enough.
2021-04-27Remove wm menuWynn Wolf Arbor-2/+0
Whilst arguably useful for certain people, or in rare cases, this functionality is not needed in the general case. This will also remove a memory leak where fallback was not properly freed.
2021-04-27Remove ssh menuWynn Wolf Arbor-4/+0
There is no point in keeping this functionality. Saving a few key strokes is not worth the added complexity of the window manager parsing the known_hosts file.
2021-04-27Add BSD compatibility functions and headersWynn Wolf Arbor-1/+1
Original file locations in the OpenBSD tree: - lib/libc/stdlib/reallocarray.c - lib/libc/stdlib/strtonum.c - lib/libc/string/strlcat.c - lib/libc/string/strlcpy.c - sys/sys/queue.h
2020-04-18Allow configuring a percentage window size of the master window during ↵okan-1/+3
htile/vtile actions. From Uwe Werler, with a few manpage tweaks.
2020-03-18Unrelated style fixes, consistency changes and sorting, appropriate ↵okan-59/+15
dosage/removal of wrappers, simplification of name queue, client cycle joins other kb/mb bound functions.
2020-03-18Map ('5') and allow mod5mask (altgr) as a modifier.okan-2/+3
From Artturi Alm (though changed from 'm' to '5')
2019-03-07shuffle deck chairs: rename group actions to match intent for clarityokan-2/+2
2019-03-04Separate out the menu window from the client resize/move geom window; in eachokan-11/+1
case, create and destroy on-demand. Isolate more menu specific code.
2019-03-04simplify xftcolor configokan-6/+3
2019-03-01Tie group number and name together during config.okan-2/+28
2019-02-25Add 'group-close-[n]' action to close all windows within specified group.okan-1/+10
heavily based on a diff from Nam Nguyen.
2019-02-22Rename internal functions to delinate between client remove, delete and xprotookan-3/+4
delete; 'window-close' is now the proper action, but 'window-delete' as an alias will remain until more interesting changes require breaking configs.
2019-02-13fix missing includesokan-2/+1
2018-11-13Allow 'transientfor' clients to inherit group and bwidth either during init orokan-5/+2
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.
2018-02-13Store the screen's visual type and colormap.okan-8/+7
2018-02-09Clean up conf_file/homedir and conf_init() bits.okan-8/+19
2018-02-02Simplification; use asprintf where appropriate now.okan-35/+27
2018-01-23Generate name_to_func[] in a clean and readable fashion.okan-142/+106
2017-12-29Convert menu-exec-wm from an abritrary exec menu, into a config-based menu fromokan-6/+29
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.
2017-12-19Add support for _NET_WM_STATE_SKIP_PAGER and _NET_WM_STATE_SKIP_TASKBAR; eerilyokan-1/+3
close to cwm's 'ignore'. Roughly based on an initial diff from Walter Alejandro Iglesias, but with support for both Atoms and without cwm-based bindings.
2017-12-07Original idea from Dimitris Papastamos to move windows to corners a while ago;okan-1/+19
re-proposed by Julien Steinhauser with an updated diff. Apparently this was in the original calmnwm. However, expand the original idea and let clients 'snap' to edges instead, neatly allowing key bindings that snap to adjacent edges (i.e. corners) as well. No default bindings assigned.
2017-12-07stash dir into conf since it'll be of useokan-2/+2
2017-07-14Pull over the remaining re-implemented window move/resize functions and createokan-3/+3
a wrapper so that the key and mouse based move/resize callbacks can be unified. This has already been done with other window operations and menus.
2017-07-12rename one function, matching others, to help upcoming changeokan-2/+2
2017-05-09Alter callbacks to take a struct instead of a growing number of arguments;okan-105/+111
greatly simplifies upcoming work.
2016-12-06stray newlinesokan-1/+2
2016-12-06'window-search' is spelled 'menu-window'; the former snuck in during theokan-2/+1
conversion('menu-window' already existed and was properlly documented); found the hard way by sthen@ while trying to convert.
2016-12-02Fold unbinding functions into one for each, key and mouse; plugs a leak whenokan-37/+11
unbinding a mouse button bound to a command.
2016-12-02use the correct typeokan-2/+2
2016-12-01Change 'menu-window' to display all windows; then add 'menu-window-hidden' forokan-2/+5
the previous behaviour of 'menu-window'. 'menu-window' becomes the default binding; use 'bind-mouse "1" menu-window-hidden' to restore old behaviour for those who prefer. OK sthen@ (long long time ago on a different version)
2016-12-01Normalize bind function names, based on a few categories: window, group, menuokan-163/+201
and pointer. Replace 'bind' and 'mousebind' options with 'bind-key' and 'bind-mouse', respectively, replace special 'unmap' keyword with 'unbind-key' and 'unbind-mouse', and additionally allow unbinding all with 'all' keyword.
2016-11-15revert previous; upcoming changes will hopefully deal with these moreokan-3/+3
naturally.
2016-11-15Add a wrapper based upon xevent handlers around client move/resize for key andokan-3/+3
mouse bindings.
2016-11-14Define callbacks, then default bindings.okan-79/+81
2016-11-14Reorganize for upcoming changes.okan-287/+256
2016-11-14Remove the (8) default bindings for pointer move since they conflict withokan-9/+1
default bindings for emacs, which wins; the feature remains and can be bound to whatever users wish with cwmrc(5). from mpi@
2016-10-24Make it clear these are flags.okan-5/+5
2016-10-24Sprinkle __func__ in appropriate error messages.okan-3/+3
2016-10-18Refactor callbacks to take a void * so as to not try and generalize intookan-161/+147
client_ctx in keypress and buttonpress event handlers; pass appropriate *ctx's based on context. While here, limit some globals, replace defines with appropriate variables and fix some naming.
2016-10-06Rename 2 kbfunc to match closer to what they dookan-4/+4
2016-10-06Add an argument to the callbacks to pass the xevent context, button orokan-12/+7
key press. This allows to remove a few hacks to duplicate functions only for behaviour changes; now differing behaviours are pushed down to the callback. Also will allow for previously unavailable actions to be bind-able down the road.
2016-10-05Add CM-a for 'nogroup' (CM-0 stays for now); update manpage to reflect.okan-1/+2
2016-10-05Stash wmname into conf.okan-1/+3
2016-10-04Calculate client nameqlen in client_setname(), the only place it'sokan-1/+2
needed/used.
2016-10-04Turn CALMWM_NGROUPS define into variable, ngroups.okan-1/+2