From 1f4128f90dc3a3bd50ec3e7fc7214976bca699a3 Mon Sep 17 00:00:00 2001 From: vxid Date: Tue, 18 Sep 2018 13:23:01 +0200 Subject: [PATCH 1/6] Add grid properties, movements and resizing --- client.c | 2 + ipc.h | 2 + man/waitron.1 | 10 +++- man/waitron.1.md | 8 +++- types.h | 9 +++- wm.c | 122 +++++++++++++++++++++++++++++++++++++++++++++-- 6 files changed, 145 insertions(+), 8 deletions(-) diff --git a/client.c b/client.c index 1f21a7c..f28253e 100644 --- a/client.c +++ b/client.c @@ -64,6 +64,8 @@ static struct Command c[] = { { "window_monocle" , IPCWindowMonocle , 0 , NULL } , { "window_close" , IPCWindowClose , 0 , NULL } , { "window_put_in_grid" , IPCWindowPutInGrid , 6 , fn_hack } , + { "window_move_in_grid" , IPCWindowMoveInGrid , 2 , fn_offset } , + { "window_resize_in_grid" , IPCWindowResizeInGrid , 2 , fn_offset } , { "window_snap" , IPCWindowSnap , 1 , fn_position } , { "window_cycle" , IPCWindowCycle , 0 , NULL } , { "window_rev_cycle" , IPCWindowRevCycle , 0 , NULL } , diff --git a/ipc.h b/ipc.h index 4aa3d83..5fb307e 100644 --- a/ipc.h +++ b/ipc.h @@ -21,6 +21,8 @@ enum IPCCommand { IPCWindowMonocle, IPCWindowClose, IPCWindowPutInGrid, + IPCWindowMoveInGrid, + IPCWindowResizeInGrid, IPCWindowSnap, IPCWindowCycle, IPCWindowRevCycle, diff --git a/man/waitron.1 b/man/waitron.1 index 4e0ea74..b267c21 100644 --- a/man/waitron.1 +++ b/man/waitron.1 @@ -101,6 +101,14 @@ Closes the focused window\. Moves and resizes the focused windows accordingly to fit in a cell defined by the \fIcell_x\fR and \fIcell_y\fR coordinates, measuring \fIcell_width\fR in width and \fIcell_height\fR in height, in a virtual grid with width \fIgrid_width\fR and height \fIgrid_height\fR on the current monitor\. \fIcell_width\fR and \fIcell_height\fR are expressed in grid cells\. Gaps around the windows in the grid can be added along with monitor gaps\. . .TP +\fBwindow_move_in_grid\fR \fIx\fR \fIy\fR +Move a gridded window by \fIx\fR and \fIy\fR grid spaces. +. +.TP +\fBwindow_resize_in_grid\fR \fIx\fR \fIy\fR +Resize a gridded window by \fIx\fR and \fIy\fR grid spaces. +. +.TP \fBwindow_snap\fR \fIPOSITION\fR Snap the window on the screen in a position defined by \fIPOSITION\fR\. . @@ -213,7 +221,7 @@ On the root window\. An integer list of currently active groups\. . .TP \fBWINDOWCHEF_STATUS\fR -On each managed window\. Contains information about the window\. Notable properties: \fBgroup\fR is \-1 if the window is not in a group\. \fBstate\fR can have one of the following values: \fBnormal\fR, \fBmaxed\fR, \fBvmaxed\fR, \fBhmaxed\fR, \fBmonocled\fR\. +On each managed window\. Contains information about the window\. Notable properties: \fBgroup\fR is \-1 if the window is not in a group\. \fBstate\fR can have one of the following values: \fBnormal\fR, \fBmaxed\fR, \fBvmaxed\fR, \fBhmaxed\fR, \fBmonocled\fR\, \fBgridded\fR. . .SH "CONFIGURING" Configuring is done using the \fBwm_config\fR command\. Possible configuration keys are: diff --git a/man/waitron.1.md b/man/waitron.1.md index 27b7bf4..a67d503 100644 --- a/man/waitron.1.md +++ b/man/waitron.1.md @@ -90,6 +90,12 @@ anything on `stdout`. and are expressed in grid cells. Gaps around the windows in the grid can be added along with monitor gaps. +* `window_move_in_grid` : + Move a gridded window by and grid spaces. + +* `window_resize_in_grid` : + Resize a gridded window by and grid spaces. + * `window_snap` : Snap the window on the screen in a position defined by . @@ -178,7 +184,7 @@ Here is a list of exposed properties: Notable properties: `group` is -1 if the window is not in a group. `state` can have one of the following values: `normal`, `maxed`, `vmaxed`, - `hmaxed`, `monocled`. + `hmaxed`, `monocled`, `gridded`. ## CONFIGURING diff --git a/types.h b/types.h index 6bc78b1..03cc4a0 100644 --- a/types.h +++ b/types.h @@ -63,11 +63,18 @@ struct window_geom { bool set_by_user; }; +struct grid { + int16_t gx, gy; + int16_t px, py; + int16_t sx, sy; +}; + struct client { xcb_window_t window; struct window_geom geom; struct window_geom orig_geom; - bool maxed, hmaxed, vmaxed, monocled; + struct grid grid; + bool maxed, hmaxed, vmaxed, monocled, gridded; struct list_item *item; struct list_item *focus_item; struct monitor *monitor; diff --git a/wm.c b/wm.c index dfa3574..eb6b709 100644 --- a/wm.c +++ b/wm.c @@ -106,6 +106,7 @@ static void vmaximize_window(struct client *, int16_t, uint16_t); static void monocle_window(struct client *, int16_t, int16_t, uint16_t, uint16_t); static void unmaximize_window(struct client *); static bool is_maxed(struct client *); +static bool is_gridded(struct client *); static void cycle_window(struct client *); static void rcycle_window(struct client *); static void cycle_window_in_group(struct client *); @@ -150,6 +151,8 @@ static void handle_wm_state(struct client *, xcb_atom_t, unsigned int); static void snap_window(struct client *, enum position); static void grid_window(struct client *, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t); +static void move_grid_window(struct client *, uint16_t, uint16_t); +static void resize_grid_window(struct client *, uint16_t, uint16_t); static void register_event_handlers(void); static void event_configure_request(xcb_generic_event_t *); @@ -177,6 +180,8 @@ static void ipc_window_ver_maximize(uint32_t *); static void ipc_window_monocle(uint32_t *); static void ipc_window_close(uint32_t *); static void ipc_window_put_in_grid(uint32_t *); +static void ipc_window_move_in_grid(uint32_t *); +static void ipc_window_resize_in_grid(uint32_t *); static void ipc_window_snap(uint32_t *); static void ipc_window_cycle(uint32_t *); static void ipc_window_rev_cycle(uint32_t *); @@ -700,9 +705,12 @@ setup_window(xcb_window_t win) client->geom.x = client->geom.y = client->geom.width = client->geom.height = client->min_width = client->min_height = 0; + client->grid.gx = client->grid.gy = client->grid.px + = client->grid.py = client->grid.sx = client->grid.sy = 0; client->width_inc = client->height_inc = 1; client->maxed = client->hmaxed = client->vmaxed - = client->monocled = client->geom.set_by_user = false; + = client->monocled = client->gridded + = client->geom.set_by_user = false; client->monitor = NULL; client->mapped = false; client->group = NULL_GROUP; @@ -1923,6 +1931,7 @@ static void update_window_status(struct client *client) else if (client->hmaxed) state = "hmaxed"; else if (client->vmaxed) state = "vmaxed"; else if (client->monocled) state = "monocled"; + else if (client->gridded) state = "gridded"; else state = "normal"; /* this is going to be fun */ #define _BOOL_VALUE(value) ((value) ? "true" : "false") @@ -1936,6 +1945,14 @@ static void update_window_status(struct client *client) "\"height\":%d," "\"set_by_user\":%s" "}," + "\"grid\":{" + "\"gx\":%d," + "\"gy\":%d," + "\"px\":%d," + "\"py\":%d," + "\"sx\":%d," + "\"sy\":%d," + "}," "\"state\":\"%s\"," "\"min_width\":%d," "\"min_height\":%d," @@ -1946,9 +1963,11 @@ static void update_window_status(struct client *client) "\"mapped\":%s," "\"group\":%d" "}", client->window, client->geom.x, client->geom.y, client->geom.width, - client->geom.height, _BOOL_VALUE(client->geom.set_by_user), state, - client->min_width, client->min_height, client->max_width, client->max_height, - client->width_inc, client->height_inc, _BOOL_VALUE(client->mapped), client->group); + client->geom.height, _BOOL_VALUE(client->geom.set_by_user), client->grid.gx, + client->grid.gy, client->grid.px, client->grid.py, client->grid.sx, + client->grid.sy, state, client->min_width, client->min_height, client->max_width, + client->max_height, client->width_inc, client->height_inc, + _BOOL_VALUE(client->mapped), client->group); #undef _BOOL_VALUE if (size == -1) { DMSG("asprintf returned -1\n"); @@ -2334,6 +2353,14 @@ grid_window(struct client *client, uint16_t grid_width, uint16_t grid_height, ui client->geom.y = mon_y + conf.gap_up + grid_y * (conf.border_width + base_h + conf.border_width + conf.grid_gap); + client->gridded = true; + client->grid.gx = grid_width; + client->grid.gy = grid_height; + client->grid.px = grid_x; + client->grid.py = grid_y; + client->grid.sx = occ_w; + client->grid.sy = occ_h; + DMSG("w: %d\th: %d\n", new_w, new_h); teleport_window(client->window, client->geom.x, client->geom.y); @@ -2342,6 +2369,51 @@ grid_window(struct client *client, uint16_t grid_width, uint16_t grid_height, ui xcb_flush(conn); } +static bool +is_gridded(struct client *client) +{ + if (client == NULL) + return false; + + return client->gridded; +} + +static void +move_grid_window(struct client *client, uint16_t x, uint16_t y) { + + int16_t new_px, new_py; + + new_px = client->grid.px + x; + new_py = client->grid.py + y; + + if (!is_gridded(client) + || client->grid.gx < new_px + client->grid.sx + || client->grid.gy < new_py + client->grid.sy + || new_px < 0 + || new_py < 0) + return; + + grid_window(client, client->grid.gx, client->grid.gy, new_px, new_py, client->grid.sx, client->grid.sy); +} + +static void +resize_grid_window(struct client *client, uint16_t x, uint16_t y) { + + int16_t new_sx, new_sy; + + new_sx = client->grid.sx + x; + new_sy = client->grid.sy + y; + + if (!is_gridded(client) + || client->grid.gx < new_sx + client->grid.px + || client->grid.gy < new_sy + client->grid.py + || new_sx < 1 + || new_sy < 1) + return; + + grid_window(client, client->grid.gx, client->grid.gy, client->grid.px, client->grid.py, new_sx, new_sy); +} + /* * Adds X event handlers to the array. */ @@ -2757,6 +2829,8 @@ register_ipc_handlers(void) ipc_handlers[IPCWindowMonocle] = ipc_window_monocle; ipc_handlers[IPCWindowClose] = ipc_window_close; ipc_handlers[IPCWindowPutInGrid] = ipc_window_put_in_grid; + ipc_handlers[IPCWindowMoveInGrid] = ipc_window_move_in_grid; + ipc_handlers[IPCWindowResizeInGrid] = ipc_window_resize_in_grid; ipc_handlers[IPCWindowSnap] = ipc_window_snap; ipc_handlers[IPCWindowCycle] = ipc_window_cycle; ipc_handlers[IPCWindowRevCycle] = ipc_window_rev_cycle; @@ -2791,7 +2865,7 @@ ipc_window_move(uint32_t *d) x = d[2]; y = d[3]; -if (d[0]) + if (d[0]) x = -x; if (d[1]) y = -y; @@ -3017,6 +3091,44 @@ ipc_window_put_in_grid(uint32_t *d) grid_window(focused_win, grid_width, grid_height, grid_x, grid_y, occ_w, occ_h); } +static void +ipc_window_move_in_grid(uint32_t *d) +{ + uint16_t x, y; + + if (focused_win == NULL) + return; + + x = d[2]; + y = d[3]; + + if (d[0] == IPC_MUL_MINUS) + x = -x; + if (d[1] == IPC_MUL_MINUS) + y = -y; + + move_grid_window(focused_win, x, y); +} + +static void +ipc_window_resize_in_grid(uint32_t *d) +{ + uint16_t x, y; + + if (focused_win == NULL) + return; + + x = d[2]; + y = d[3]; + + if (d[0] == IPC_MUL_MINUS) + x = -x; + if (d[1] == IPC_MUL_MINUS) + y = -y; + + resize_grid_window(focused_win, x, y); +} + static void ipc_window_snap(uint32_t *d) { From a181600663b2bb8d4fe067db7d60897967cfd1c2 Mon Sep 17 00:00:00 2001 From: vxid Date: Mon, 1 Oct 2018 17:28:22 +0200 Subject: [PATCH 2/6] Cleanup --- TODO.md | 1 - contrib/.gitignore | 2 -- xephyr.sh | 20 -------------------- 3 files changed, 23 deletions(-) delete mode 100644 TODO.md delete mode 100644 contrib/.gitignore delete mode 100755 xephyr.sh diff --git a/TODO.md b/TODO.md deleted file mode 100644 index 3f3bcce..0000000 --- a/TODO.md +++ /dev/null @@ -1 +0,0 @@ -- Unlimited borders diff --git a/contrib/.gitignore b/contrib/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/contrib/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/xephyr.sh b/xephyr.sh deleted file mode 100755 index 363856c..0000000 --- a/xephyr.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -cleanup() { - rm windowchefrc sxhkdrc - exit 0 -} - -trap 'cleanup' INT - -D=${D:-80} - -Xephyr -screen 1280x720 :$D& -sleep 1 - -export DISPLAY=:$D -cp examples/sxhkdrc sxhkdrc -cp examples/windowchefrc windowchefrc -sed -i 's/waitron/.\/waitron/g' sxhkdrc windowchefrc -sxhkd -c sxhkdrc & -./windowchef -c windowchefrc From e960ec5a3d607995a0709a206e492d692f18f3f3 Mon Sep 17 00:00:00 2001 From: vxid Date: Tue, 2 Oct 2018 13:57:33 +0200 Subject: [PATCH 3/6] Remove example configuration --- examples/sxhkdrc | 56 ------------------------------------------- examples/windowchefrc | 25 ------------------- 2 files changed, 81 deletions(-) delete mode 100644 examples/sxhkdrc delete mode 100755 examples/windowchefrc diff --git a/examples/sxhkdrc b/examples/sxhkdrc deleted file mode 100644 index 16714d1..0000000 --- a/examples/sxhkdrc +++ /dev/null @@ -1,56 +0,0 @@ -super + {h,j,k,l} - waitron window_move {-20 0, 0 20, 0 -20, 20 0} - -super + alt + {h,j,k,l} - waitron window_resize {-20 0, 0 20, 0 -20, 20 0} - -super + shift + {h,j,k,l} - waitron window_move {-50 0, 0 50, 0 -50, 50 0} - -super + shift + alt + {h,j,k,l} - waitron window_resize {-50 0, 0 50, 0 -50, 50 0} - -alt + {h,j,k,l} - waitron window_cardinal_focus {left,down,up,right} - -super + alt + Escape - waitron wm_quit 0 - -super + f - waitron window_maximize - -super + w - waitron window_close - -super + b - waitron window_hor_maximize - -super + v - waitron window_ver_maximize - -super + m - waitron window_monocle - -alt + Tab - waitron window_cycle - -alt + shift + Tab - waitron window_rev_cycle - -alt + ctrl + Tab - waitron window_focus_last - -super + {_,shift +}{1-9} - waitron {group_toggle,group_add_window} {1-9} - -super + ctrl + r - waitron group_remove_window - -super + alt + ctrl + {1-4} - waitron group_remove_all_windows {1-4} - -super + Return - urxvt - -super + {Insert,Prior,Delete,Next,End} - waitron window_snap {topleft,topright,bottomleft,bottomright,middle} diff --git a/examples/windowchefrc b/examples/windowchefrc deleted file mode 100755 index d87e074..0000000 --- a/examples/windowchefrc +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -waitron wm_config border_width 5 -waitron wm_config internal_border_width 2 -waitron wm_config color_focused 0x97a293 -waitron wm_config color_unfocused 0x393638 -waitron wm_config internal_color_focused 0x393638 -waitron wm_config internal_color_unfocused 0x97a293 - -waitron wm_config gap_width all 0 -waitron wm_config grid_gap_width 0 - -waitron wm_config cursor_position center - -waitron wm_config groups_nr 10 -waitron wm_config enable_sloppy_focus true -waitron wm_config enable_resize_hints false -waitron wm_config sticky_windows false -waitron wm_config enable_borders true -waitron wm_config enable_last_window_focusing true -waitron wm_config apply_settings true -waitron wm_config replay_click_on_focus true -waitron wm_config pointer_actions move resize_side resize_corner -waitron wm_config pointer_modifier super -waitron wm_config click_to_focus any From b93985013a87469d29482e0afd847a5292907836 Mon Sep 17 00:00:00 2001 From: vxid Date: Tue, 2 Oct 2018 13:58:36 +0200 Subject: [PATCH 4/6] Remove sticky windows option --- README.md | 5 ----- client.c | 1 - ipc.h | 1 - man/waitron.1 | 4 ---- man/waitron.1.html | 3 --- man/waitron.1.md | 5 ----- types.h | 1 - wm.c | 6 ------ 8 files changed, 26 deletions(-) diff --git a/README.md b/README.md index fbb1638..2d0fc4f 100644 --- a/README.md +++ b/README.md @@ -105,8 +105,6 @@ Features * cwm-like window groups * Add or remove windows to a group * Activate/Deactivate/Toggle a group - * groups can be "sticky": windows are assigned to the currently - selected group automatically * Mouse support * Focus, move and resize windows with the mouse * Supports window resize hints @@ -134,9 +132,6 @@ at the same time. Windowchef allows you to add/remove windows to/from groups, show groups, hide groups or toggle them. -You can also activate *sticky group mode*. When activated, new windows are -automatically assigned to the currently selected group. Together with the `group_activate_specific` command (see `waitron(1)`), a workspace-like workflow can be achieved. - ### Virtual grids You can tell windowchef to move and resize a window so it can fit in a cell diff --git a/client.c b/client.c index f28253e..a22a1fb 100644 --- a/client.c +++ b/client.c @@ -98,7 +98,6 @@ static struct ConfigEntry configs[] = { { "groups_nr" , IPCConfigGroupsNr , 1 , fn_naturals }, { "enable_sloppy_focus" , IPCConfigEnableSloppyFocus , 1 , fn_bool }, { "enable_resize_hints" , IPCConfigEnableResizeHints , 1 , fn_bool }, - { "sticky_windows" , IPCConfigStickyWindows , 1 , fn_bool }, { "enable_borders" , IPCConfigEnableBorders , 1 , fn_bool }, { "enable_last_window_focusing", IPCConfigEnableLastWindowFocusing, 1 , fn_bool }, { "apply_settings" , IPCConfigApplySettings , 1 , fn_bool }, diff --git a/ipc.h b/ipc.h index 5fb307e..20a8ba5 100644 --- a/ipc.h +++ b/ipc.h @@ -56,7 +56,6 @@ enum IPCConfig { IPCConfigGroupsNr, IPCConfigEnableSloppyFocus, IPCConfigEnableResizeHints, - IPCConfigStickyWindows, IPCConfigEnableBorders, IPCConfigEnableLastWindowFocusing, IPCConfigApplySettings, diff --git a/man/waitron.1 b/man/waitron.1 index b267c21..c6030b7 100644 --- a/man/waitron.1 +++ b/man/waitron.1 @@ -267,10 +267,6 @@ If true, \fBwindowchef\fR will respect window resize hints as defined by ICCCM\. Enable sloppy focus\. . .TP -\fBsticky_windows\fR \fIBOOL\fR -If \fIsticky_windows\fR is true, new windows will be assigned to the last activated group automatically\. Recommended for people who like using workspaces over groups\. -. -.TP \fBenable_borders\fR \fIBOOL\fR If true, the border will be fully managed by the window manager\. Border colors will be set each time a window gets/loses focus\. Setting it to false lets the user manage the border of every window using external tools\. (example: \fBchwb2\fR from wmutils)\. . diff --git a/man/waitron.1.html b/man/waitron.1.html index 17c2d0e..755e1a3 100644 --- a/man/waitron.1.html +++ b/man/waitron.1.html @@ -218,9 +218,6 @@

CONFIGURING

will be mapped to screen and assigned to the null group.

enable_resize_hints BOOL

If true, windowchef will respect window resize hints as defined by ICCCM. Most terminal emulators should have this feature.

enable_sloppy_focus BOOL

Enable sloppy focus.

-
sticky_windows BOOL

If sticky_windows is true, new windows will be assigned to the last - activated group automatically. Recommended for people who like using - workspaces over groups.

enable_borders BOOL

If true, the border will be fully managed by the window manager. Border colors will be set each time a window gets/loses focus. Setting it to false lets the user manage the border of every window using external diff --git a/man/waitron.1.md b/man/waitron.1.md index a67d503..34665a1 100644 --- a/man/waitron.1.md +++ b/man/waitron.1.md @@ -230,11 +230,6 @@ are: * `enable_sloppy_focus` : Enable sloppy focus. -* `sticky_windows` : - If is true, new windows will be assigned to the last - activated group automatically. Recommended for people who like using - workspaces over groups. - * `enable_borders` : If true, the border will be fully managed by the window manager. Border colors will be set each time a window gets/loses focus. Setting it to false lets diff --git a/types.h b/types.h index 03cc4a0..4ecded2 100644 --- a/types.h +++ b/types.h @@ -101,7 +101,6 @@ struct conf { uint32_t groups; bool sloppy_focus; bool resize_hints; - bool sticky_windows; bool borders; bool last_window_focusing; bool apply_settings; diff --git a/wm.c b/wm.c index eb6b709..2a80c5d 100644 --- a/wm.c +++ b/wm.c @@ -2607,8 +2607,6 @@ event_map_request(xcb_generic_event_t *ev) client->geom.y -= client->geom.height / 2; teleport_window(client->window, client->geom.x, client->geom.y); } - if (conf.sticky_windows) - group_add_window(client, last_group); } xcb_map_window(conn, e->window); @@ -3309,9 +3307,6 @@ ipc_wm_config(uint32_t *d) break; case IPCConfigEnableResizeHints: conf.resize_hints = d[1]; - case IPCConfigStickyWindows: - conf.sticky_windows = d[1]; - break; case IPCConfigEnableBorders: conf.borders = d[1]; break; @@ -3715,7 +3710,6 @@ load_defaults(void) conf.groups = GROUPS; conf.sloppy_focus = SLOPPY_FOCUS; conf.resize_hints = RESIZE_HINTS; - conf.sticky_windows = STICKY_WINDOWS; conf.borders = BORDERS; conf.last_window_focusing = LAST_WINDOW_FOCUSING; conf.apply_settings = APPLY_SETTINGS; From efb881a26fab1645bec652850c832a26317a6bea Mon Sep 17 00:00:00 2001 From: vxid Date: Tue, 2 Oct 2018 14:22:38 +0200 Subject: [PATCH 5/6] Remove unused variable --- wm.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/wm.c b/wm.c index 2a80c5d..48e98e8 100644 --- a/wm.c +++ b/wm.c @@ -1352,7 +1352,6 @@ cardinal_focus(uint32_t dir) struct win_position focus_win_pos = get_window_position(CENTER, focused_win); float closest_distance = -1; - float closest_angle = -360; win = win_list; @@ -1437,7 +1436,6 @@ cardinal_focus(uint32_t dir) if (closest_distance == -1 || (cur_distance < closest_distance)) { closest_distance = cur_distance; - closest_angle = cur_angle; desired_window = win; } From 04b114204e1ae6cb148acfb8a09af19e8ea0cff3 Mon Sep 17 00:00:00 2001 From: vxid Date: Tue, 2 Oct 2018 14:33:44 +0200 Subject: [PATCH 6/6] Fix compiler warnings and makefile --- Makefile | 2 -- wm.c | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 00deaf1..4580559 100644 --- a/Makefile +++ b/Makefile @@ -34,8 +34,6 @@ install: all install $(__NAME__) "$(DESTDIR)$(PREFIX)/bin/$(__NAME__)" install $(__NAME_CLIENT__) "$(DESTDIR)$(PREFIX)/bin/$(__NAME_CLIENT__)" mkdir -p "$(DESTDIR)$(DOCPREFIX)/$(__NAME__)/" - cp -fR contrib "$(DESTDIR)$(DOCPREFIX)/$(__NAME__)/" - cp -fR examples "$(DESTDIR)$(DOCPREFIX)/$(__NAME__)/" cp -f README.md LICENSE "$(DESTDIR)$(DOCPREFIX)/$(__NAME__)/" cd ./man; $(MAKE) install diff --git a/wm.c b/wm.c index 48e98e8..d91bf2a 100644 --- a/wm.c +++ b/wm.c @@ -3294,6 +3294,7 @@ ipc_wm_config(uint32_t *d) break; case IPCConfigGridGapWidth: conf.grid_gap = d[1]; + break; case IPCConfigCursorPosition: conf.cursor_position = d[1]; break; @@ -3305,6 +3306,7 @@ ipc_wm_config(uint32_t *d) break; case IPCConfigEnableResizeHints: conf.resize_hints = d[1]; + break; case IPCConfigEnableBorders: conf.borders = d[1]; break;