Compare commits

..

30 Commits

Author SHA1 Message Date
b157cb3277 Update 2024-10-28 00:04:48 +05:00
7a8b272500 Add toggle up/down bar (not work) 2024-08-24 20:50:57 +05:00
866d2f9d30 Add toggle bottom bar 2024-08-24 20:35:10 +05:00
15533ee00e Reformat config.def.h 2024-08-24 19:56:08 +05:00
104b7f1fc9 Add pertag patch 2024-08-24 19:37:15 +05:00
403436514a Fix telegram (not work) 2024-08-24 19:22:51 +05:00
780a7c6092 Fix telegram tag 2024-08-24 19:14:02 +05:00
25af6dd966 Fix patch resizecorners 2024-08-24 19:11:56 +05:00
3f74312239 Revome more unused funcs 2024-06-07 20:12:21 +05:00
abe52747fe Revome unused funcs 2024-06-07 20:11:08 +05:00
7869969e0d Add 64Gram to 4 tag 2024-06-07 20:10:12 +05:00
5d304c99af Add statuspadding patch 2024-05-31 19:16:24 +05:00
645882cc94 Add gaps to gaplessgrid 2024-05-31 19:01:58 +05:00
1b96862ae2 Add resizecorners patch 2024-05-31 18:59:42 +05:00
a0fe569f7e Add barpadding + notitle patch 2024-05-31 18:39:01 +05:00
ceb23ea470 Fix last patch 2024-05-31 17:14:43 +05:00
22da8d956f Add status2d + extrabar patch 2024-05-31 17:00:25 +05:00
976638aa52 Add gaplessgrid patch 2024-05-31 11:11:54 +05:00
a039af0a87 Move layouts to layouts.c 2024-05-31 11:05:30 +05:00
52a64691d3 Add fullgaps patch 2024-05-31 11:02:52 +05:00
149532bdf0 Fix config 2024-05-31 10:54:30 +05:00
f802f3b04e Add quitprompt patch 2024-05-31 10:51:42 +05:00
cc9b2c5f22 Add actualfullscreen patch and replace 4spaces to tab 2024-05-31 10:47:20 +05:00
89b87f20e0 Move some old conf 2024-05-31 10:36:46 +05:00
c2ab5aa057 Wipe dwm 2024-05-31 10:22:18 +05:00
adc2ff2b17 Change some conf 2024-05-30 10:58:13 +05:00
b745273428 Change TD on KD 2024-02-24 18:16:26 +05:00
66a7223541 del trash 2023-11-23 22:35:42 +05:00
c354d720b6 add taglayouts patch 2023-11-10 18:54:02 +05:00
31e3dd85c2 delete my shit 2023-11-10 18:47:13 +05:00
13 changed files with 427 additions and 900 deletions

View File

@ -6,13 +6,7 @@ include config.mk
SRC = drw.c dwm.c util.c
OBJ = ${SRC:.c=.o}
all: options dwm
options:
@echo dwm build options:
@echo "CFLAGS = ${CFLAGS}"
@echo "LDFLAGS = ${LDFLAGS}"
@echo "CC = ${CC}"
all: dwm
.c.o:
${CC} -c ${CFLAGS} $<
@ -26,7 +20,7 @@ dwm: ${OBJ}
${CC} -o $@ ${OBJ} ${LDFLAGS}
clean:
rm -f dwm ${OBJ} dwm-${VERSION}.tar.gz config.h
rm -f dwm ${OBJ} dwm-${VERSION}.tar.gz
dist: clean
mkdir -p dwm-${VERSION}
@ -48,4 +42,4 @@ uninstall:
rm -f ${DESTDIR}${PREFIX}/bin/dwm\
${DESTDIR}${MANPREFIX}/man1/dwm.1
.PHONY: all options clean dist install uninstall
.PHONY: all clean dist install uninstall

10
PATCHES Normal file
View File

@ -0,0 +1,10 @@
actualfullscreen
quitprompt
fullgaps
gaplessgrid
status2d + extrabar
barpadding + notitle
resizecorners
statuspadding
- fonts

View File

@ -3,34 +3,26 @@
#include <X11/XF86keysym.h>
/* appearance */
static const unsigned int borderpx = 4;
static const unsigned int gappx = 15;
static const unsigned int snap = 32; /* snap pixel */
static const int showbar = 1; /* 0 means no bar */
static const int showextrabar = 1; /* 0 means no bar */
// TODO: FIX THAT SHIT
static const int topbar = 1; /* 0 means bottom bar */
static const char statussep = ';';
static const int horizpadbar = 8;
static const int vertpadbar = 12;
static const int vertpadstat = 0;
static const char *fonts[] = {
"Ubuntu Mono:style=Bold:size=12:antialias=true:autohint=true",
"Font Awesome 6 Free Solid:style=Solid:size=12:antialias=true:autohint=true",
"Font Awesome 6 Brands Regular:style=Regular:size=12:antialias=true:autohint=true"
};
static char dmenufont[] = "Ubuntu Mono:size=12";
static char normbgcolor[] = "#222222";
static char normbordercolor[] = "#444444";
static char normfgcolor[] = "#bbbbbb";
static char selfgcolor[] = "#eeeeee";
static char selbordercolor[] = "#005577";
static char selbgcolor[] = "#005577";
static char *colors[][3] = {
/* fg bg border */
[SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor },
[SchemeSel] = { selfgcolor, selbgcolor, selbordercolor },
static const unsigned int borderpx = 4; /* border pixel of windows */
static const unsigned int gappx = 15; /* gaps between windows */
static const unsigned int snap = 32; /* snap pixel */
static const int showbar = 1; /* 0 means no bar */
static const int showextrabar = 1; /* 0 means no extra bar */
static const int topbar = 1; /* 0 means bottom bar */
static const char statussep = ';';
static const int horizpadbar = 8; /* horizontal padding for statusbar */
static const int vertpadbar = 12; /* vertical padding for statusbar */
static const char *fonts[] = { "Ubuntu Mono:size=12" };
static const char dmenufont[] = "Ubuntu Mono:size=12";
static const char col_gray1[] = "#222222";
static const char col_gray2[] = "#444444";
static const char col_gray3[] = "#bbbbbb";
static const char col_gray4[] = "#eeeeee";
static const char col_cyan[] = "#005577";
static const char *colors[][3] = {
/* fg bg border */
[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
[SchemeSel] = { col_gray4, col_cyan, col_cyan },
};
/* tagging */
@ -45,54 +37,58 @@ static const Rule rules[] = {
// ----- 1 -----
{ "st-256color", NULL, NULL, 0, 0, -1 },
// ----- 2 -----
{ "Nemo", NULL, NULL, 1 << 1, 0, -1 },
{ "Code", NULL, NULL, 1 << 1, 0, -1 },
// ----- 3 -----
{ "thunderbird", NULL, NULL, 1 << 2, 0, -1 },
{ "KeePassXC", NULL, NULL, 1 << 2, 0, -1 },
// ----- 4 -----
{ "TelegramDesktop", NULL, NULL, 1 << 3, 0, -1 },
{ "vesktop", NULL, NULL, 1 << 3, 0, -1 },
{ "discord", NULL, NULL, 1 << 3, 0, -1 },
{ "KotatogramDesktop", NULL, NULL, 1 << 3, 0, -1 },
{ NULL, "Telegram", NULL, 1 << 3, 0, -1 },
// ----- 5 -----
{ "Steam", NULL, NULL, 1 << 4, 0, -1 },
{ "steam", NULL, NULL, 1 << 4, 0, -1 },
{ "steamwebhelper", NULL, NULL, 1 << 4, 0, -1 },
// ----- 7 -----
{ "QjackCtl", NULL, NULL, 1 << 6, 1, -1 },
{ "qpwgraph", NULL, NULL, 1 << 6, 0, -1 },
{ "nekoray", NULL, NULL, 1 << 6, 0, -1 },
{ "PatchMatrix", NULL, NULL, 1 << 6, 0, -1 },
{ "Blueman-manager", NULL, NULL, 1 << 6, 0, -1 },
{ "corectrl", NULL, NULL, 1 << 6, 0, -1 },
// ----- 9 -----
{ "firefox", NULL, NULL, 1 << 8, 0, -1 },
{ "LibreWolf", NULL, NULL, 1 << 8, 0, -1 },
// ----- OTHER -----
{ "xwinwrap", NULL, NULL, 1 << 9, 0, -1 },
// { NULL, NULL, "broken", 1 << 9, 0, -1 },
};
/* layout(s) */
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
static const int nmaster = 1; /* number of clients in master area */
static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
static const int nmaster = 1;/* number of clients in master area */
static const int resizehints = 1;/* 1 means respect size hints in tiled resizals */
static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */
#include "layouts.c"
static const Layout layouts[] = {
/* symbol arrange function */
{ "###", gaplessgrid },
{ "[]=", tile }, /* first entry is default */
{ "><>", NULL }, /* no layout function means floating behavior */
{ "[M]", monocle },
{ "HHH", grid },
/* symbol arrange function */
{ "###", gaplessgrid },
{ "[]=", tile },
{ "><>", NULL },
{ "[M]", monocle },
};
/* key definitions */
#define SUPERKEY Mod4Mask
#define ALTKEY Mod1Mask
#define TAGKEYS(KEY,TAG) \
{ SUPERKEY, KEY, view, {.ui = 1 << TAG} }, \
{ SUPERKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ SUPERKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ SUPERKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
{ SUPERKEY, KEY, view, {.ui = 1 << TAG} }, \
{ SUPERKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ SUPERKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ SUPERKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
@ -108,79 +104,67 @@ static const char *volmute[] = { "pactl", "set-sink-mute", "0", "toggle", NULL }
static const char *backlightup[] = { "light", "-A", "10", NULL };
static const char *backlightdown[] = { "light", "-U", "10", NULL };
static const char *lockcmd[] = { "slock", NULL };
static const char *dmenucmd[] = { "dmenu_run", "-g", "15", "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbordercolor, "-sf", selfgcolor, NULL };
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
static const char *termcmd[] = { "st", NULL };
static const Key keys[] = {
/* modifier key function argument */
{ 0, XF86XK_ModeLock, spawn, {.v = lockcmd } },
{ 0, XK_Print, spawn, {.v = screenshot } },
{ ShiftMask, XK_Print, spawn, {.v = screenshotarea } },
{ 0, XF86XK_AudioRaiseVolume, spawn, {.v = volup } },
{ 0, XF86XK_AudioLowerVolume, spawn, {.v = voldown } },
{ 0, XF86XK_MonBrightnessUp, spawn, {.v = backlightup } },
{ 0, XF86XK_MonBrightnessDown, spawn, {.v = backlightdown } },
{ 0, XF86XK_AudioMute, spawn, {.v = volmute } },
{ SUPERKEY, XK_p, spawn, {.v = dmenucmd } },
{ SUPERKEY, XK_Return, spawn, {.v = termcmd } },
{ SUPERKEY, XK_b, togglebar, {.i = 1} },
{ SUPERKEY|ShiftMask, XK_b, togglebar, {.i = 2} },
{ ALTKEY, XK_Tab, focusstack, {.i = +1 } },
/* { SUPERKEY, XK_k, focusstack, {.i = -1 } }, */
{ SUPERKEY, XK_i, incnmaster, {.i = +1 } },
{ SUPERKEY, XK_d, incnmaster, {.i = -1 } },
{ SUPERKEY, XK_h, setmfact, {.f = -0.05} },
{ SUPERKEY, XK_l, setmfact, {.f = +0.05} },
{ SUPERKEY|ShiftMask, XK_Return, zoom, {0} },
{ SUPERKEY, XK_Tab, view, {.ui = 0 } }, // next tab
{ SUPERKEY|ShiftMask, XK_Tab, view, {.ui = -1 } }, // prev tab
{ SUPERKEY|ControlMask, XK_Tab, view, {.ui = -2 } }, // last tab
{ SUPERKEY, XK_q, killclient, {0} },
{ SUPERKEY, XK_t, setlayout, {.v = &layouts[1]} },
{ SUPERKEY, XK_f, setlayout, {.v = &layouts[2]} },
{ SUPERKEY, XK_m, setlayout, {.v = &layouts[3]} },
{ SUPERKEY|ShiftMask, XK_g, setlayout, {.v = &layouts[4]} },
{ SUPERKEY, XK_g, setlayout, {.v = &layouts[0]} },
/* { SUPERKEY, XK_space, setlayout, {0} }, */
{ SUPERKEY|ShiftMask, XK_space, togglefloating, {0} },
{ SUPERKEY, XK_comma, focusmon, {.i = -1 } },
{ SUPERKEY, XK_period, focusmon, {.i = +1 } },
{ SUPERKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ SUPERKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
{ SUPERKEY|ShiftMask, XK_equal, setgaps, {.i = 0 } },
{ SUPERKEY|ShiftMask, XK_t, togglealwaysontop, {0} },
{ SUPERKEY|ShiftMask, XK_f, togglefullscr, {0} },
{ SUPERKEY, XK_F5, xrdb, {.v = NULL } },
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
TAGKEYS( XK_4, 3)
TAGKEYS( XK_5, 4)
TAGKEYS( XK_6, 5)
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
TAGKEYS( XK_0, 9)
TAGKEYS( XK_minus, 10)
TAGKEYS( XK_equal, 11)
{ SUPERKEY|ShiftMask, XK_q, quitprompt, {0} },
/* modifier key function argument */
{ 0, XK_Print, spawn, {.v = screenshot } },
{ ShiftMask, XK_Print, spawn, {.v = screenshotarea } },
{ 0, XF86XK_AudioRaiseVolume, spawn, {.v = volup } },
{ 0, XF86XK_AudioLowerVolume, spawn, {.v = voldown } },
{ 0, XF86XK_MonBrightnessUp, spawn, {.v = backlightup } },
{ 0, XF86XK_MonBrightnessDown, spawn, {.v = backlightdown } },
{ 0, XF86XK_AudioMute, spawn, {.v = volmute } },
{ SUPERKEY, XK_d, spawn, {.v = dmenucmd } },
{ SUPERKEY, XK_Return, spawn, {.v = termcmd } },
{ SUPERKEY, XK_b, togglebar, {0} },
{ SUPERKEY|ShiftMask, XK_b, toggleextrabar, {0} },
{ ALTKEY, XK_Tab, focusstack, {.i = +1 } },
{ SUPERKEY, XK_i, incnmaster, {.i = +1 } },
{ SUPERKEY, XK_p, incnmaster, {.i = -1 } },
{ SUPERKEY, XK_o, setmfact, {.f = -0.05} },
{ SUPERKEY, XK_l, setmfact, {.f = +0.05} },
{ SUPERKEY|ShiftMask, XK_Return, zoom, {0} },
{ SUPERKEY, XK_q, killclient, {0} },
{ SUPERKEY, XK_g, setlayout, {.v = &layouts[0]} },
// { SUPERKEY, XK_t, setlayout, {.v = &layouts[1]} },
{ SUPERKEY, XK_f, setlayout, {.v = &layouts[2]} },
{ SUPERKEY, XK_m, setlayout, {.v = &layouts[3]} },
{ SUPERKEY|ShiftMask, XK_space, togglefloating, {0} },
// { SUPERKEY, XK_comma, focusmon, {.i = -1 } },
// { SUPERKEY, XK_period, focusmon, {.i = +1 } },
// { SUPERKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
// { SUPERKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
{ SUPERKEY|ShiftMask, XK_f, togglefullscr, {0} },
TAGKEYS(XK_1, 0)
TAGKEYS(XK_2, 1)
TAGKEYS(XK_3, 2)
TAGKEYS(XK_4, 3)
TAGKEYS(XK_5, 4)
TAGKEYS(XK_6, 5)
TAGKEYS(XK_7, 6)
TAGKEYS(XK_8, 7)
TAGKEYS(XK_9, 8)
TAGKEYS(XK_0, 9)
TAGKEYS(XK_minus, 10)
TAGKEYS(XK_equal, 11)
{ SUPERKEY|ShiftMask, XK_q, quitprompt, {0} },
};
/* button definitions */
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static const Button buttons[] = {
/* click event mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, ALTKEY, Button1, movemouse, {0} },
{ ClkClientWin, ALTKEY, Button2, togglefloating, {0} },
{ ClkClientWin, ALTKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, SUPERKEY, Button1, tag, {0} },
{ ClkTagBar, SUPERKEY, Button3, toggletag, {0} },
/* clickevent mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, SUPERKEY, Button1, movemouse, {0} },
{ ClkClientWin, SUPERKEY, Button2, togglefloating, {0} },
{ ClkClientWin, SUPERKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, SUPERKEY, Button1, tag, {0} },
{ ClkTagBar, SUPERKEY, Button3, toggletag, {0} },
};

186
config.h
View File

@ -1,186 +0,0 @@
/* See LICENSE file for copyright and license details. */
#include <X11/XF86keysym.h>
/* appearance */
static const unsigned int borderpx = 4;
static const unsigned int gappx = 15;
static const unsigned int snap = 32; /* snap pixel */
static const int showbar = 1; /* 0 means no bar */
static const int showextrabar = 1; /* 0 means no bar */
// TODO: FIX THAT SHIT
static const int topbar = 1; /* 0 means bottom bar */
static const char statussep = ';';
static const int horizpadbar = 8;
static const int vertpadbar = 12;
static const int vertpadstat = 0;
static const char *fonts[] = {
"Ubuntu Mono:style=Bold:size=12:antialias=true:autohint=true",
"Font Awesome 6 Free Solid:style=Solid:size=12:antialias=true:autohint=true",
"Font Awesome 6 Brands Regular:style=Regular:size=12:antialias=true:autohint=true"
};
static char dmenufont[] = "Ubuntu Mono:size=12";
static char normbgcolor[] = "#222222";
static char normbordercolor[] = "#444444";
static char normfgcolor[] = "#bbbbbb";
static char selfgcolor[] = "#eeeeee";
static char selbordercolor[] = "#005577";
static char selbgcolor[] = "#005577";
static char *colors[][3] = {
/* fg bg border */
[SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor },
[SchemeSel] = { selfgcolor, selbgcolor, selbordercolor },
};
/* tagging */
static const char *tags[] = { "", "", "", "", "", "", "", "", "", "0", "-", "=" };
static const Rule rules[] = {
/* xprop(1):
* WM_CLASS(STRING) = instance, class
* WM_NAME(STRING) = title
*/
/* class instance title tags mask isfloating monitor */
// ----- 1 -----
{ "st-256color", NULL, NULL, 0, 0, -1 },
// ----- 2 -----
{ "Code", NULL, NULL, 1 << 1, 0, -1 },
// ----- 3 -----
{ "thunderbird", NULL, NULL, 1 << 2, 0, -1 },
{ "KeePassXC", NULL, NULL, 1 << 2, 0, -1 },
// ----- 4 -----
{ "TelegramDesktop", NULL, NULL, 1 << 3, 0, -1 },
{ "discord", NULL, NULL, 1 << 3, 0, -1 },
// ----- 5 -----
{ "Steam", NULL, NULL, 1 << 4, 0, -1 },
{ "steam", NULL, NULL, 1 << 4, 0, -1 },
{ "steamwebhelper", NULL, NULL, 1 << 4, 0, -1 },
// ----- 7 -----
{ "QjackCtl", NULL, NULL, 1 << 6, 1, -1 },
{ "PatchMatrix", NULL, NULL, 1 << 6, 0, -1 },
{ "Blueman-manager", NULL, NULL, 1 << 6, 0, -1 },
{ "corectrl", NULL, NULL, 1 << 6, 0, -1 },
// ----- 9 -----
{ "firefox", NULL, NULL, 1 << 8, 0, -1 },
// ----- OTHER -----
{ "xwinwrap", NULL, NULL, 1 << 9, 0, -1 },
// { NULL, NULL, "broken", 1 << 9, 0, -1 },
};
/* layout(s) */
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
static const int nmaster = 1; /* number of clients in master area */
static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */
static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */
#include "layouts.c"
static const Layout layouts[] = {
/* symbol arrange function */
{ "###", gaplessgrid },
{ "[]=", tile }, /* first entry is default */
{ "><>", NULL }, /* no layout function means floating behavior */
{ "[M]", monocle },
{ "HHH", grid },
};
/* key definitions */
#define SUPERKEY Mod4Mask
#define ALTKEY Mod1Mask
#define TAGKEYS(KEY,TAG) \
{ SUPERKEY, KEY, view, {.ui = 1 << TAG} }, \
{ SUPERKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ SUPERKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ SUPERKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
/* commands */
static const char *screenshot[] = { "scrsht", NULL };
static const char *screenshotarea[] = { "scrsht", "-s", NULL };
static const char *volup[] = { "pactl", "set-sink-volume", "0", "+5%", NULL };
static const char *voldown[] = { "pactl", "set-sink-volume", "0", "-5%", NULL };
static const char *volmute[] = { "pactl", "set-sink-mute", "0", "toggle", NULL };
static const char *backlightup[] = { "light", "-A", "10", NULL };
static const char *backlightdown[] = { "light", "-U", "10", NULL };
static const char *lockcmd[] = { "slock", NULL };
static const char *dmenucmd[] = { "dmenu_run", "-g", "15", "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbordercolor, "-sf", selfgcolor, NULL };
static const char *termcmd[] = { "st", NULL };
static const Key keys[] = {
/* modifier key function argument */
{ 0, XF86XK_ModeLock, spawn, {.v = lockcmd } },
{ 0, XK_Print, spawn, {.v = screenshot } },
{ ShiftMask, XK_Print, spawn, {.v = screenshotarea } },
{ 0, XF86XK_AudioRaiseVolume, spawn, {.v = volup } },
{ 0, XF86XK_AudioLowerVolume, spawn, {.v = voldown } },
{ 0, XF86XK_MonBrightnessUp, spawn, {.v = backlightup } },
{ 0, XF86XK_MonBrightnessDown, spawn, {.v = backlightdown } },
{ 0, XF86XK_AudioMute, spawn, {.v = volmute } },
{ SUPERKEY, XK_p, spawn, {.v = dmenucmd } },
{ SUPERKEY, XK_Return, spawn, {.v = termcmd } },
{ SUPERKEY, XK_b, togglebar, {.i = 1} },
{ SUPERKEY|ShiftMask, XK_b, togglebar, {.i = 2} },
{ ALTKEY, XK_Tab, focusstack, {.i = +1 } },
/* { SUPERKEY, XK_k, focusstack, {.i = -1 } }, */
{ SUPERKEY, XK_i, incnmaster, {.i = +1 } },
{ SUPERKEY, XK_d, incnmaster, {.i = -1 } },
{ SUPERKEY, XK_h, setmfact, {.f = -0.05} },
{ SUPERKEY, XK_l, setmfact, {.f = +0.05} },
{ SUPERKEY|ShiftMask, XK_Return, zoom, {0} },
{ SUPERKEY, XK_Tab, view, {.ui = 0 } }, // next tab
{ SUPERKEY|ShiftMask, XK_Tab, view, {.ui = -1 } }, // prev tab
{ SUPERKEY|ControlMask, XK_Tab, view, {.ui = -2 } }, // last tab
{ SUPERKEY, XK_q, killclient, {0} },
{ SUPERKEY, XK_t, setlayout, {.v = &layouts[1]} },
{ SUPERKEY, XK_f, setlayout, {.v = &layouts[2]} },
{ SUPERKEY, XK_m, setlayout, {.v = &layouts[3]} },
{ SUPERKEY|ShiftMask, XK_g, setlayout, {.v = &layouts[4]} },
{ SUPERKEY, XK_g, setlayout, {.v = &layouts[0]} },
/* { SUPERKEY, XK_space, setlayout, {0} }, */
{ SUPERKEY|ShiftMask, XK_space, togglefloating, {0} },
{ SUPERKEY, XK_comma, focusmon, {.i = -1 } },
{ SUPERKEY, XK_period, focusmon, {.i = +1 } },
{ SUPERKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ SUPERKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
{ SUPERKEY|ShiftMask, XK_equal, setgaps, {.i = 0 } },
{ SUPERKEY|ShiftMask, XK_t, togglealwaysontop, {0} },
{ SUPERKEY|ShiftMask, XK_f, togglefullscr, {0} },
{ SUPERKEY, XK_F5, xrdb, {.v = NULL } },
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
TAGKEYS( XK_4, 3)
TAGKEYS( XK_5, 4)
TAGKEYS( XK_6, 5)
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
TAGKEYS( XK_0, 9)
TAGKEYS( XK_minus, 10)
TAGKEYS( XK_equal, 11)
{ SUPERKEY|ShiftMask, XK_q, quitprompt, {0} },
};
/* button definitions */
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static const Button buttons[] = {
/* click event mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, ALTKEY, Button1, movemouse, {0} },
{ ClkClientWin, ALTKEY, Button2, togglefloating, {0} },
{ ClkClientWin, ALTKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, SUPERKEY, Button1, tag, {0} },
{ ClkTagBar, SUPERKEY, Button3, toggletag, {0} },
};

View File

@ -1,5 +1,5 @@
# dwm version
VERSION = bit_1.1
VERSION = 6.5
# Customize below to fit your system
@ -26,7 +26,7 @@ INCS = -I${X11INC} -I${FREETYPEINC}
LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS}
# flags
CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=200809L -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700L -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
#CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os ${INCS} ${CPPFLAGS}
LDFLAGS = ${LIBS}

2
drw.c
View File

@ -195,7 +195,7 @@ drw_clr_create(Drw *drw, Clr *dest, const char *clrname)
/* Wrapper to create color schemes. The caller has to call free(3) on the
* returned color scheme when done using it. */
Clr *
drw_scm_create(Drw *drw, char *clrnames[], size_t clrcount)
drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount)
{
size_t i;
Clr *ret;

2
drw.h
View File

@ -40,7 +40,7 @@ void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned in
/* Colorscheme abstraction */
void drw_clr_create(Drw *drw, Clr *dest, const char *clrname);
Clr *drw_scm_create(Drw *drw, char *clrnames[], size_t clrcount);
Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount);
/* Cursor abstraction */
Cur *drw_cur_create(Drw *drw, int shape);

BIN
drw.o

Binary file not shown.

BIN
dwm

Binary file not shown.

798
dwm.c

File diff suppressed because it is too large Load Diff

BIN
dwm.o

Binary file not shown.

107
layouts.c
View File

@ -1,30 +1,44 @@
// TODO: FIX GAPS IN GRID LAYOUT
void
grid(Monitor *m) {
unsigned int i, n, cx, cy, cw, ch, aw, ah, cols, rows;
tile(Monitor *m)
{
unsigned int i, n, h, mw, my, ty;
Client *c;
for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next))
n++;
for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
if (n == 0)
return;
/* grid dimensions */
for(rows = 0; rows <= n/2; rows++)
if(rows*rows >= n)
break;
cols = (rows && (rows - 1) * rows >= n) ? rows - 1 : rows;
if (n > m->nmaster)
mw = m->nmaster ? m->ww * m->mfact : 0;
else
mw = m->ww - gappx;
for (i = 0, my = ty = gappx, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
if (i < m->nmaster) {
h = (m->wh - my) / (MIN(n, m->nmaster) - i) - gappx;
resize(c, m->wx + gappx, m->wy + my, mw - (2*c->bw) - gappx, h - (2*c->bw), 0);
if (my + HEIGHT(c) + gappx < m->wh)
my += HEIGHT(c) + gappx;
} else {
h = (m->wh - ty) / (n - i) - gappx;
resize(c, m->wx + mw + gappx, m->wy + ty, m->ww - mw - (2*c->bw) - 2*gappx, h - (2*c->bw), 0);
if (ty + HEIGHT(c) + gappx < m->wh)
ty += HEIGHT(c) + gappx;
}
}
/* window geoms (cell height/width) */
ch = (m->wh - m->gappx) / (rows ? rows : 1);
cw = (m->ww - m->gappx) / (cols ? cols : 1);
for(i = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next)) {
cx = m->wx + (i / rows) * cw;
cy = m->wy + (i % rows) * ch;
/* adjust height/width of last row/column's windows */
ah = ((i + 1) % rows == 0) ? m->wh - m->gappx * (rows + 1) - ch * rows : 0;
aw = (i >= rows * (cols - 1)) ? m->ww - m->gappx * (cols + 1) - cw * cols : 0;
resize(c, cx + m->gappx * (i / rows + 1), cy + m->gappx * (i % rows + 1), cw - 2 * c->bw + aw, ch - 2 * c->bw + ah, False);
i++;
}
void
monocle(Monitor *m)
{
unsigned int n = 0;
Client *c;
for (c = m->clients; c; c = c->next)
if (ISVISIBLE(c))
n++;
if (n > 0) /* override layout symbol */
snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
for (c = nexttiled(m->clients); c; c = nexttiled(c->next))
resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, 0);
}
void
@ -45,16 +59,16 @@ gaplessgrid(Monitor *m) {
rows = n/cols;
/* window geometries */
cw = cols ? (m->ww - m->gappx) / cols : m->ww - m->gappx;
cw = cols ? (m->ww - gappx) / cols : m->ww - gappx;
cn = 0; /* current column number */
rn = 0; /* current row number */
for(i = 0, c = nexttiled(m->clients); c; i++, c = nexttiled(c->next)) {
if(i/rows + 1 > cols - n%cols)
rows = n/cols + 1;
ch = rows ? (m->wh - m->gappx) / rows : m->wh - m->gappx;
ch = rows ? (m->wh - gappx) / rows : m->wh - gappx;
cx = m->wx + cn*cw;
cy = m->wy + rn*ch;
resize(c, cx + m->gappx, cy + m->gappx, cw - 2 * c->bw - m->gappx, ch - 2 * c->bw - m->gappx, False);
resize(c, cx + gappx, cy + gappx, cw - 2 * c->bw - gappx, ch - 2 * c->bw - gappx, False);
rn++;
if(rn >= rows) {
rn = 0;
@ -62,46 +76,3 @@ gaplessgrid(Monitor *m) {
}
}
}
void
tile(Monitor *m)
{
unsigned int i, n, h, mw, my, ty;
Client *c;
for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
if (n == 0)
return;
if (n > m->nmaster)
mw = m->nmaster ? m->ww * m->mfact : 0;
else
mw = m->ww - m->gappx;
for (i = 0, my = ty = m->gappx, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++)
if (i < m->nmaster) {
h = (m->wh - my) / (MIN(n, m->nmaster) - i) - m->gappx;
resize(c, m->wx + m->gappx, m->wy + my, mw - (2*c->bw) - m->gappx, h - (2*c->bw), 0);
if (my + HEIGHT(c) + m->gappx < m->wh)
my += HEIGHT(c) + m->gappx;
} else {
h = (m->wh - ty) / (n - i) - m->gappx;
resize(c, m->wx + mw + m->gappx, m->wy + ty, m->ww - mw - (2*c->bw) - 2*m->gappx, h - (2*c->bw), 0);
if (ty + HEIGHT(c) + m->gappx < m->wh)
ty += HEIGHT(c) + m->gappx;
}
}
void
monocle(Monitor *m)
{
unsigned int n = 0;
Client *c;
for (c = m->clients; c; c = c->next)
if (ISVISIBLE(c))
n++;
if (n > 0) /* override layout symbol */
snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
for (c = nexttiled(m->clients); c; c = nexttiled(c->next))
resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, 0);
}

BIN
util.o

Binary file not shown.