My dwm build customized heavily to integrate with xfce4
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

254 lines
12 KiB

/* See LICENSE file for copyright and license details. */
/* Constants */
#define TERMINAL "urxvt"
#define TERMCLASS "URxvt"
/* appearance */
static unsigned int borderpx = 3; /* border pixel of windows */
static unsigned int snap = 32; /* snap pixel */
static unsigned int gappih = 20; /* horiz inner gap between windows */
static unsigned int gappiv = 10; /* vert inner gap between windows */
static unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
static unsigned int gappov = 30; /* vert outer gap between windows and screen edge */
static int swallowfloating = 0; /* 1 means swallow floating windows by default */
static int smartgaps = 0; /* 1 means no outer gap when there is only one window */
static int showbar = 1; /* 0 means no bar */
static int topbar = 1; /* 0 means bottom bar */
static const int usealtbar = 1; /* 1 means use non-dwm status bar */
static const char *altbarclass= "Xfce4-panel"; /* Alternate bar class name */
static const char *altbarcmd = "/usr/bin/xfce4-panel --disable-wm-check &"; /* Alternate bar launch command */
static char *fonts[] = { "monospace:size=10", "JoyPixels:pixelsize=10:antialias=true:autohint=true" };
static char normbgcolor[] = "#222222";
static char normbordercolor[] = "#444444";
static char normfgcolor[] = "#bbbbbb";
static char selfgcolor[] = "#eeeeee";
static char selbordercolor[] = "#770000";
static char selbgcolor[] = "#005577";
static char *colors[][3] = {
/* fg bg border */
[SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor },
[SchemeSel] = { selfgcolor, selbgcolor, selbordercolor },
};
typedef struct {
const char *name;
const void *cmd;
} Sp;
/* tagging */
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
static const Rule rules[] = {
/* xprop(1):
* WM_CLASS(STRING) = instance, class
* WM_NAME(STRING) = title
*/
/* class instance title tags mask isfloating isterminal noswallow monitor */
{ TERMCLASS, NULL, NULL, 0, 0, 1, 0, -1 },
{ NULL, "tabbed", NULL, 0, 0, 1, 0, -1 },
{ NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 },
{ NULL, "file-roller",NULL, 0, True, 0, 1, -1 },
{ NULL, "xfce4-taskmanager",NULL, 0, True, 0, 1, -1 },
{ NULL, "timeshift-gtk", NULL, 0, True, 0, 1, -1 },
{ NULL, "gnome-calculator", NULL, 0, True, 0, 1, -1 },
{ NULL, "xfburn", NULL, 0, True, 0, 1, -1 },
{ NULL, "xfce4-settings-manager",NULL, 0, True, 0, 1, -1 },
{ NULL, "xfce4-display-settings",NULL, 0, True, 0, 1, -1 },
{ NULL, "wrapper-2.0", NULL, ~0, True, 0, 1, -1 },
{ NULL, "xfce4-appfinder", NULL, ~0, True, 0, 1, -1 },
};
/* layout(s) */
static float mfact = 0.55; /* factor of master area size [0.05..0.95] */
static int nmaster = 1; /* number of clients in master area */
static int resizehints = 0; /* 1 means respect size hints in tiled resizals */
#define FORCE_VSPLIT 1 /* nrowgrid layout: force two clients to always split vertically */
#include "vanitygaps.c"
static const Layout layouts[] = {
/* symbol arrange function */
{ "[]=", tile }, /* Default: Master on left, slaves on right */
{ "TTT", bstack }, /* Master on top, slaves on bottom */
{ "[@]", spiral }, /* Fibonacci spiral */
{ "[\\]", dwindle }, /* Decreasing in size right and leftward */
{ "[D]", deck }, /* Master on left, slaves in monocle-like mode on right */
{ "[M]", monocle }, /* All windows on top of eachother */
{ "|M|", centeredmaster }, /* Master in middle, slaves on sides */
{ ">M>", centeredfloatingmaster }, /* Same but master floats */
{ "><>", NULL }, /* no layout function means floating behavior */
{ NULL, NULL },
};
/* key definitions */
#define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
#define STACKKEYS(MOD,ACTION) \
{ MOD, XK_Right, ACTION##stack, {.i = INC(+1) } }, \
{ MOD, XK_Left, ACTION##stack, {.i = INC(-1) } }, \
/* 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 *termcmd[] = { TERMINAL, NULL };
/*
* Xresources preferences to load at startup
*/
ResourcePref resources[] = {
{ "color0", STRING, &normbordercolor },
{ "color8", STRING, &selbordercolor },
{ "color0", STRING, &normbgcolor },
{ "color4", STRING, &normfgcolor },
{ "color0", STRING, &selfgcolor },
{ "color4", STRING, &selbgcolor },
{ "borderpx", INTEGER, &borderpx },
{ "snap", INTEGER, &snap },
{ "showbar", INTEGER, &showbar },
{ "topbar", INTEGER, &topbar },
{ "nmaster", INTEGER, &nmaster },
{ "resizehints", INTEGER, &resizehints },
{ "mfact", FLOAT, &mfact },
{ "gappih", INTEGER, &gappih },
{ "gappiv", INTEGER, &gappiv },
{ "gappoh", INTEGER, &gappoh },
{ "gappov", INTEGER, &gappov },
{ "swallowfloating", INTEGER, &swallowfloating },
{ "smartgaps", INTEGER, &smartgaps },
};
#include <X11/XF86keysym.h>
#include "shiftview.c"
static Key keys[] = {
/* modifier key function argument */
STACKKEYS(MODKEY, focus)
STACKKEYS(MODKEY|ShiftMask, push)
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)
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
{ MODKEY, XK_BackSpace, spawn, SHCMD("xfce4-session-logout") },
{ MODKEY|ShiftMask, XK_BackSpace, spawn, SHCMD("xflock4") },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY, XK_q, killclient, {0} },
{ MODKEY, XK_w, spawn, SHCMD("$BROWSER") },
{ MODKEY|ShiftMask, XK_w, spawn, SHCMD( "netsurf-gtk") },
{ MODKEY, XK_e, spawn, SHCMD("claws-mail --alternate-config-dir $HOME/.config/claws-mail") },
{ MODKEY|ShiftMask, XK_e, spawn, SHCMD( "$TERMINAL -e neomutt ; rmdir ~/.abook") },
{ MODKEY, XK_r, spawn, SHCMD("thunar") },
{ MODKEY|ShiftMask, XK_r, spawn, SHCMD("$TERMINAL -e mc") },
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, /* tile */
{ MODKEY|ShiftMask, XK_t, setlayout, {.v = &layouts[1]} }, /* bstack */
{ MODKEY, XK_y, setlayout, {.v = &layouts[2]} }, /* spiral */
{ MODKEY|ShiftMask, XK_y, setlayout, {.v = &layouts[3]} }, /* dwindle */
{ MODKEY, XK_u, setlayout, {.v = &layouts[4]} }, /* deck */
{ MODKEY|ShiftMask, XK_u, setlayout, {.v = &layouts[5]} }, /* monocle */
{ MODKEY, XK_i, setlayout, {.v = &layouts[6]} }, /* centeredmaster */
{ MODKEY|ShiftMask, XK_i, setlayout, {.v = &layouts[7]} }, /* centeredfloatingmaster */
{ MODKEY, XK_o, incnmaster, {.i = +1 } },
{ MODKEY|ShiftMask, XK_o, incnmaster, {.i = -1 } },
{ MODKEY, XK_p, spawn, SHCMD("xfce4-display-settings") },
{ MODKEY, XK_a, togglegaps, {0} },
{ MODKEY|ShiftMask, XK_a, defaultgaps, {0} },
{ MODKEY|ShiftMask, XK_s, togglesticky, {0} },
{ MODKEY, XK_s, spawn, SHCMD("xfce4-settings-manager") },
{ MODKEY, XK_d, spawn, SHCMD("xfce4-popup-whiskermenu") },
{ MODKEY|ShiftMask, XK_d, spawn, SHCMD("xfce4-appfinder") },
{ MODKEY, XK_f, togglefullscr, {0} },
{ MODKEY|ShiftMask, XK_f, setlayout, {.v = &layouts[8]} },
{ MODKEY, XK_g, shiftview, { .i = -1 } },
{ MODKEY|ShiftMask, XK_g, shifttag, { .i = -1 } },
{ MODKEY, XK_h, spawn, SHCMD("$TERMINAL -e htop -d5") },
{ MODKEY, XK_Return, spawn, SHCMD("$TERMINAL") },
{ MODKEY|ShiftMask, XK_Return, spawn, SHCMD("$TERMINAL -e tmux attach -t 0")},
{ MODKEY, XK_v, spawn, SHCMD("gvim")},
{ MODKEY|ShiftMask, XK_v, spawn, SHCMD("$TERMINAL -e vim")},
{ MODKEY, XK_x, spawn, SHCMD("nheko") },
{ MODKEY|ShiftMask, XK_x, spawn, SHCMD("$TERMINAL -e weechat") },
{ MODKEY, XK_z, incrgaps, {.i = +3 } },
{ MODKEY, XK_c, spawn, SHCMD("doas cpupower frequency-set --governor schedutil") },
{ MODKEY|ShiftMask, XK_c, spawn, SHCMD("doas cpupower frequency-set --governor performance") },
//{ MODKEY, XK_c, spawn, SHCMD("doas cpupower frequency-set --max 750MHz") },
//{ MODKEY|ShiftMask, XK_c, spawn, SHCMD("doas cpupower frequency-set --max 1.5GHz") },
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_n, spawn, SHCMD("nightmode") },
{ MODKEY|ShiftMask, XK_n, spawn, SHCMD("daymode") },
//{ MODKEY, XK_Left, shiftview, {.i = -1 } },
{ MODKEY|ControlMask, XK_Left, setmfact, {.f = -0.05 } },
//{ MODKEY, XK_Right, shiftview, {.i = +1 } },
{ MODKEY|ControlMask, XK_Right, setmfact, {.f = +0.05 } },
{ MODKEY, XK_Up, focusmon, { .i = -1 } },
{ MODKEY|ShiftMask, XK_Up, tagmon, { .i = -1 } },
{ MODKEY, XK_Down, focusmon, { .i = +1 } },
{ MODKEY|ShiftMask, XK_Down, tagmon, { .i = +1 } },
{ MODKEY, XK_space, zoom, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ 0, XK_Print, spawn, SHCMD("xfce4-screenshooter") },
{ MODKEY, XK_Print, spawn, SHCMD("simplescreenrecorder") },
};
/* button definitions */
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
/* click event mask button function argument */
#ifndef __OpenBSD__
{ ClkWinTitle, 0, Button2, zoom, {0} },
{ ClkStatusText, 0, Button1, sigdwmblocks, {.i = 1} },
{ ClkStatusText, 0, Button2, sigdwmblocks, {.i = 2} },
{ ClkStatusText, 0, Button3, sigdwmblocks, {.i = 3} },
{ ClkStatusText, 0, Button4, sigdwmblocks, {.i = 4} },
{ ClkStatusText, 0, Button5, sigdwmblocks, {.i = 5} },
{ ClkStatusText, ShiftMask, Button1, sigdwmblocks, {.i = 6} },
#endif
{ ClkStatusText, ShiftMask, Button3, spawn, SHCMD(TERMINAL " -e nvim ~/.local/src/dwmblocks/config.h") },
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button2, defaultgaps, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
{ ClkClientWin, MODKEY, Button4, incrgaps, {.i = +1} },
{ ClkClientWin, MODKEY, Button5, incrgaps, {.i = -1} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, MODKEY, Button1, tag, {0} },
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
{ ClkTagBar, 0, Button4, shiftview, {.i = -1} },
{ ClkTagBar, 0, Button5, shiftview, {.i = 1} },
{ ClkRootWin, 0, Button2, togglebar, {0} },
};