Suckless Patches
Table of Contents
dwm
- Dave's Visual Guide to DWM
- Make sure you run
cd ~/src/dwm && sudo make install
after tangling
Config
Colors and Font
- This diff shows changes I make to customize the colors on DWM
static const unsigned int snap = 32; /* snap pixel */ static const int showbar = 1; /* 0 means no bar */ static const int topbar = 1; /* 0 means bottom bar */ -static const char *fonts[] = { "monospace:size=10" }; -static const char dmenufont[] = "monospace:size=10"; -static const char col_gray1[] = "#222222"; -static const char col_gray2[] = "#444444"; +static const char *fonts[] = { "Hack:size=12" }; +static const char dmenufont[] = "Hack:size=12"; +static const char col_gray1[] = "#3b6064"; +static const char col_gray2[] = "#364958"; static const char col_gray3[] = "#bbbbbb"; -static const char col_gray4[] = "#eeeeee"; -static const char col_cyan[] = "#005577"; +static const char col_gray4[] = "#000000"; +static const char col_cyan[] = "#87bba2"; static const char *colors[][3] = { /* fg bg border */
Comment out the tag mask for Firefox
- By default dwm ships with firefox always on tag 9
- To disable this comment out the line or delete it
{ "Gimp", NULL, NULL, 0, 1, -1 }, - { "Firefox", NULL, NULL, 1 << 8, 0, -1 }, + /* { "Firefox", NULL, NULL, 1 << 8, 0, -1 }, */
Use Super as ModKey
- This diff shows changing the
MODKEY
toMod4Mask
, which is the Windows or Super key
/* key definitions */ -#define MODKEY Mod1Mask +#define MODKEY Mod4Mask
Set the terminal to kitty
-static const char *termcmd[] = { "st", NULL }; +static const char *termcmd[] = { "kitty", NULL };
Add media commands
- This command usually goes below the
termcmd
- This defines commands used for volume and brightness control
- These commands are defined in utils
+ +static const char *upvol[] = { "volup", NULL }; +static const char *downvol[] = { "voldown", NULL }; +static const char *mutevol[] = { "volmute", NULL }; +static const char *uplight[] = { "lightup", NULL }; +static const char *downlight[] = { "lightdown", NULL };
Bind Media Keys to media commands
- This goes in the
keys[]
array
{ MODKEY|ShiftMask, XK_q, quit, {0} }, + { 0, XF86XK_AudioLowerVolume, spawn, {.v = downvol } }, + { 0, XF86XK_AudioMute, spawn, {.v = mutevol } }, + { 0, XF86XK_AudioRaiseVolume, spawn, {.v = upvol } }, + { 0, XF86XK_MonBrightnessUp, spawn, {.v = uplight } }, + { 0, XF86XK_MonBrightnessDown, spawn, {.v = downlight } },
Use media keys in dwm
- Include
X11/XF86keysym.h
indwm.c
--- a/dwm.c +++ b/dwm.c @@ -36,6 +36,7 @@ #include <X11/Xlib.h> #include <X11/Xproto.h> #include <X11/Xutil.h> +#include <X11/XF86keysym.h> #ifdef XINERAMA #include <X11/extensions/Xinerama.h> #endif /* XINERAMA */
OpenBSD
- Uncomment the
FREETYPEINC
path change for OpenBSD inconfig.mk
--- a/config.mk +++ b/config.mk @@ -18,7 +18,7 @@ XINERAMAFLAGS = -DXINERAMA FREETYPELIBS = -lfontconfig -lXft FREETYPEINC = /usr/include/freetype2 # OpenBSD (uncomment) -#FREETYPEINC = ${X11INC}/freetype2 +FREETYPEINC = ${X11INC}/freetype2
dmenu
OpenBSD
- Uncomment the
FREETYPEINC
path change for OpenBSD inconfig.mk
--- a/config.mk +++ b/config.mk @@ -18,7 +18,7 @@ XINERAMAFLAGS = -DXINERAMA FREETYPELIBS = -lfontconfig -lXft FREETYPEINC = /usr/include/freetype2 # OpenBSD (uncomment) -#FREETYPEINC = ${X11INC}/freetype2 +FREETYPEINC = ${X11INC}/freetype2
TODO slstatus
Make sure you run cd ~/src/slstatus && sudo make install
after tangling
/* See LICENSE file for copyright and license details. */ /* interval between updates (in ms) */ const unsigned int interval = 1000; /* text to show if no value can be retrieved */ static const char unknown_str[] = "n/a"; /* maximum output string length */ #define MAXLEN 2048 /* * function description argument (example) * * battery_perc battery percentage battery name (BAT0) * NULL on OpenBSD/FreeBSD * battery_state battery charging state battery name (BAT0) * NULL on OpenBSD/FreeBSD * battery_remaining battery remaining HH:MM battery name (BAT0) * NULL on OpenBSD/FreeBSD * cpu_perc cpu usage in percent NULL * cpu_freq cpu frequency in MHz NULL * datetime date and time format string (%F %T) * disk_free free disk space in GB mountpoint path (/) * disk_perc disk usage in percent mountpoint path (/) * disk_total total disk space in GB mountpoint path (/") * disk_used used disk space in GB mountpoint path (/) * entropy available entropy NULL * gid GID of current user NULL * hostname hostname NULL * ipv4 IPv4 address interface name (eth0) * ipv6 IPv6 address interface name (eth0) * kernel_release `uname -r` NULL * keyboard_indicators caps/num lock indicators format string (c?n?) * see keyboard_indicators.c * keymap layout (variant) of current NULL * keymap * load_avg load average NULL * netspeed_rx receive network speed interface name (wlan0) * netspeed_tx transfer network speed interface name (wlan0) * num_files number of files in a directory path * (/home/foo/Inbox/cur) * ram_free free memory in GB NULL * ram_perc memory usage in percent NULL * ram_total total memory size in GB NULL * ram_used used memory in GB NULL * run_command custom shell command command (echo foo) * separator string to echo NULL * swap_free free swap in GB NULL * swap_perc swap usage in percent NULL * swap_total total swap size in GB NULL * swap_used used swap in GB NULL * temp temperature in degree celsius sensor file * (/sys/class/thermal/...) * NULL on OpenBSD * thermal zone on FreeBSD * (tz0, tz1, etc.) * uid UID of current user NULL * uptime system uptime NULL * username username of current user NULL * vol_perc OSS/ALSA volume in percent mixer file (/dev/mixer) * NULL on OpenBSD * wifi_perc WiFi signal in percent interface name (wlan0) * wifi_essid WiFi ESSID interface name (wlan0) */ static const struct arg args[] = { /* function format argument */ { datetime, "%s | ", "%F %r" }, { battery_perc, "BAT: %s%%", "BAT0" }, };