sowm

An itsy bitsy floating window manager (220~ sloc!).
git clone git://mfeller.io/sowm.git
Log | Files | Refs | README | LICENSE

commit 277bd8d2decb215f00b6cbf2e6e5aa12fa765198
parent efc1327d0efad3747971a246e08b762b5413dc0d
Author: Dylan Araps <dylan.araps@gmail.com>
Date:   Fri, 11 Oct 2019 20:06:19 +0300

catwm: Added center_window

Diffstat:
Mcatwm.c | 10++++++++++
Mconfig.h | 26+++-----------------------
2 files changed, 13 insertions(+), 23 deletions(-)

diff --git a/catwm.c b/catwm.c @@ -51,6 +51,7 @@ struct desktop{ static void add_window(Window w); static void buttonpress(XEvent *e); static void buttonrelease(XEvent *e); +static void center_window(); static void change_desktop(const Arg arg); static void client_to_desktop(const Arg arg); static void configurerequest(XEvent *e); @@ -140,6 +141,15 @@ void change_desktop(const Arg arg) { update_current(); } +void center_window() { + XGetWindowAttributes(dis, current->win, &attr); + + int x = (sw / 2) - (attr.width / 2); + int y = (sh / 2) - (attr.height / 2); + + XMoveWindow(dis, current->win, x, y); +} + void client_to_desktop(const Arg arg) { client *tmp = current; int tmp2 = curr_desk; diff --git a/config.h b/config.h @@ -4,29 +4,8 @@ * ( =^= ) * ( ) ... for cat! * ( ) - * ( ))))))________________ Cute And Tiny Window Manager - * ______________________________________________________________________________ - * - * Copyright (c) 2010, Rinaldini Julien, julien.rinaldini@heig-vd.ch - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * + * ( ))))))________________ + * __________________ */ #ifndef CONFIG_H @@ -54,6 +33,7 @@ const char* volup[] = {"amixer","sset","Master","5\%+",NULL}; static struct key keys[] = { // MOD KEY FUNCTION ARGS { MOD, XK_q, kill_client, {NULL}}, + { MOD, XK_c, center_window, {NULL}}, { Mod1Mask, XK_Tab, next_win, {NULL}}, { 0, XF86XK_AudioLowerVolume, spawn, {.com = voldown}}, { 0, XF86XK_AudioRaiseVolume, spawn, {.com = volup}},