mirror of
				https://github.com/tiyn/dwm.git
				synced 2025-11-03 20:51:15 +01:00 
			
		
		
		
	Compare commits
	
		
			34 Commits
		
	
	
		
			81d1901820
			...
			config
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					cdd41ed4aa | ||
| 
						 | 
					e82ea595c8 | ||
| 27c10d4bd7 | |||
| c357419eaf | |||
| a4257742ce | |||
| c7ff6b6a42 | |||
| 04ba42ca7f | |||
| a12c7638d0 | |||
| ca94ba21a6 | |||
| 4c8265265f | |||
| d286e168ef | |||
| b9c7e4b9a1 | |||
| 380d63f8fd | |||
| 008c92268a | |||
| 8fcd0666ff | |||
| 1dd7519235 | |||
| 0035d03900 | |||
| 1a7568c158 | |||
| 32e01b8179 | |||
| 18bc15180f | |||
| c4f7ace2f4 | |||
| 633070875e | |||
| c556f40832 | |||
| b88f60d2e7 | |||
| 4ff8663e88 | |||
| ca7a863c1a | |||
| 722caafce3 | |||
| 3d72376cef | |||
| 15ac6f9754 | |||
| fc7eb3f7c2 | |||
| 1fada364c0 | |||
| 
						 | 
					c376355cfe | ||
| 
						 | 
					767d7e124e | ||
| 
						 | 
					9addd105de | 
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
*.o
 | 
			
		||||
dwm
 | 
			
		||||
config.h
 | 
			
		||||
							
								
								
									
										93
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										93
									
								
								README.md
									
									
									
									
									
								
							@@ -1,43 +1,76 @@
 | 
			
		||||
# dwm
 | 
			
		||||
This is my patched version of dwm. The base version is directly from suckless.org.
 | 
			
		||||
This belongs to my larbs installation script and depends heavily on its scripts and programs.
 | 
			
		||||
 | 
			
		||||
This is my patched version of dwm. The base version is directly from
 | 
			
		||||
suckless.org.
 | 
			
		||||
This belongs to my larbs installation script and depends heavily on its scripts
 | 
			
		||||
and programs.
 | 
			
		||||
It is supposed to work in the environment after the larbs-base-installation.
 | 
			
		||||
This is my patched version of dwm. The base version is directly from suckless.org.
 | 
			
		||||
This repository is set up according to the
 | 
			
		||||
[suckless entry of my wiki](https://github.com/tiyn/wiki/blob/master/wiki/linux/suckless.md).
 | 
			
		||||
 | 
			
		||||
## Patches
 | 
			
		||||
 | 
			
		||||
The list below shows the currently applied patches to the master branch.
 | 
			
		||||
 | 
			
		||||
- dwm-activetagindicatorbar-6.2.diff (show bar as window indicator)
 | 
			
		||||
- dwm-actualfullscreen-20191112-cb3f58a.diff (enables true fullscreen)
 | 
			
		||||
- dwm-alpha-20180613-b69c870.diff (adds transparency)
 | 
			
		||||
- dwm-bottomstack-20160719-56a31dc.diff (adds bottomstack and bottomstackhorizontal layout)
 | 
			
		||||
- dwm-center-6.1.diff (adds ability to center floating windows at launch)
 | 
			
		||||
- dwm-cyclelayouts-20180524-6.2.diff (adds ability to cycle through layouts)
 | 
			
		||||
- dwm-deck-6.0.diff (adds deck layout)
 | 
			
		||||
- dwm-noborder-6.2.diff (removes border if there is only one window)
 | 
			
		||||
- dwm-notitle-6.2.diff (removes window title in the middle of the bar)
 | 
			
		||||
- dwm-pertag-20170513-ceac8c9.diff (allows having a layout/mwfact/barpos/nmaster per tag)
 | 
			
		||||
- dwm-quitprompt-20220718-6613d9f.diff (adds a confirmation prompt before exiting dwm)
 | 
			
		||||
- dwm-status2d-6.2.diff (adds colors and ability to draw rectangles)
 | 
			
		||||
- dwm-statusallmons-6.2.diff (display statusbar on every monitors)
 | 
			
		||||
- dwm-statuscmd-6.2.diff (enables dwmblocks compatibility)
 | 
			
		||||
- dwm-systray-6.2.diff (adds a systray to statusbar)
 | 
			
		||||
- dwm-zeroastag-22032023-0aea805.diff (adds a tenth tag on 0)
 | 
			
		||||
 | 
			
		||||
## Hotkeys
 | 
			
		||||
There are various shortcuts and hotkeys used in this version. Included in my build are the following.
 | 
			
		||||
| ModKey | Shift | Key               | Function                                                  |
 | 
			
		||||
| ------ | ----- | ----------------- | --------------------------------------------------------- |
 | 
			
		||||
| Super  | Shift | Escape            | Quit dwm                                                  |
 | 
			
		||||
| Super  | Shift | b                 | Toggle dwmbar                                             |
 | 
			
		||||
| Super  | Shift | c                 | Enable deck(/card) layout                                 |
 | 
			
		||||
| Super  | Shift | d                 | Toggle floating/tiled for selected window                 |
 | 
			
		||||
| Super  | Shift | f                 | Toggle fullscreen                                         |
 | 
			
		||||
| Super  |       | h                 | (Tiling/Deck) Focus window higher in stack than current   |
 | 
			
		||||
| Super  | Shift | h                 | (Tiling/Deck) Make current window the master window       |
 | 
			
		||||
| Super  |       | j                 | (Tiling/Deck) Focus window lower in stack than current    |
 | 
			
		||||
| Super  | Shift | j                 | (Tiling/Deck) Make current window the master window       |
 | 
			
		||||
| Super  |       | k                 | (Tiling/Deck) Focus window higher in stack than current   |
 | 
			
		||||
| Super  | Shift | k                 | (Tiling/Deck) Make current window the master window       |
 | 
			
		||||
| Super  |       | l                 | (Tiling/Deck) Focus window lower in stack than current    |
 | 
			
		||||
| Super  | Shift | m                 | Enable monocle layout	                                 |
 | 
			
		||||
| Super  | Shift | o                 | (Tiling/Deck) Increase master window size                 |
 | 
			
		||||
| Super  |       | q                 | Close current window                                      |
 | 
			
		||||
| Super  | Shift | t                 | Enable tiling layout                                      |
 | 
			
		||||
| Super  | Shift | z                 | (Tiling/Deck) Decrease master window size                 |
 | 
			
		||||
| Super  |       | 0                 | Show all tags                                             |
 | 
			
		||||
| Super  | Shift | 0                 | Add current window to all tag                             |
 | 
			
		||||
| Super  | 		 | 1/2/.../9		 | Show tag 1/2/.../9                                        |
 | 
			
		||||
| Super  | Shift | 1/2/.../9		 | Add current window to tag 1/2/.../9                       |
 | 
			
		||||
| Super  | 		 | .				 | Show monitor lower in stack                               |
 | 
			
		||||
| Super  | Shift | .				 | Add to monitor lower in stack                             |
 | 
			
		||||
| Super  |		 | ,				 | Show monitor higher in stack                              |
 | 
			
		||||
| Super  | Shift | ,				 | Add to monitor higher in stack                            |
 | 
			
		||||
 | 
			
		||||
There are various shortcuts and hotkeys used in this version. Included in my
 | 
			
		||||
build are the following.
 | 
			
		||||
 | 
			
		||||
| ModKey | Shift | Key | Function |
 | 
			
		||||
| ------ | ----- | --- | -------- |
 | 
			
		||||
| Super | | h | (Tiling/Deck) Focus window higher in stack than current |
 | 
			
		||||
| Super | | j | (Tiling/Deck) Focus window lower in stack than current |
 | 
			
		||||
| Super | | k | (Tiling/Deck) Focus window higher in stack than current |
 | 
			
		||||
| Super | | l | (Tiling/Deck) Focus window lower in stack than current |
 | 
			
		||||
| Super | | 1/2/.../9/0 | Show tag 1/2/.../9/0 |
 | 
			
		||||
| Super | | . | Show monitor lower in stack |
 | 
			
		||||
| Super | | , | Show monitor higher in stack |
 | 
			
		||||
| Super | Shift | Escape | Quit dwm with call for confirmation |
 | 
			
		||||
| Super | Shift | b | Toggle dwmbar |
 | 
			
		||||
| Super | Shift | c | Enable deck(/card) layout |
 | 
			
		||||
| Super | Shift | d | Toggle floating/tiled for selected window |
 | 
			
		||||
| Super | Shift | f | Toggle fullscreen |
 | 
			
		||||
| Super | Shift | h | (Tiling/Deck) Make current window the master window |
 | 
			
		||||
| Super | Shift | j | (Tiling/Deck) Make current window the master window |
 | 
			
		||||
| Super | Shift | k | (Tiling/Deck) Make current window the master window |
 | 
			
		||||
| Super | Shift | m | Enable monocle layout |
 | 
			
		||||
| Super | Shift | o | (Tiling/Deck) Increase master window size |
 | 
			
		||||
| Super | Shift | q | Close current window |
 | 
			
		||||
| Super | Shift | t | Enable tiling layout |
 | 
			
		||||
| Super | Shift | u | Enable bottomstack layout |
 | 
			
		||||
| Super | Shift | v | Enable bottomstackhorizontal layout |
 | 
			
		||||
| Super | Shift | z | (Tiling/Deck) Decrease master window size |
 | 
			
		||||
| Super | Shift | 1/2/.../9/0 | Add current window to tag 1/2/.../9/0 |
 | 
			
		||||
| Super | Shift | . | Add to monitor lower in stack |
 | 
			
		||||
| Super | Shift | , | Add to monitor higher in stack |
 | 
			
		||||
| Alt   | | Tab | (Tiling/Deck) Focus window lower in stack than current  |
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
The following programs are required to be installed for full functionality.
 | 
			
		||||
 | 
			
		||||
- [dmenu](https://github.com/tiyn/dmenu)
 | 
			
		||||
 | 
			
		||||
The most basic way is to clone the repository and then invoke make.
 | 
			
		||||
 | 
			
		||||
- `git clone https://github.com/tiyn/dwm`
 | 
			
		||||
- `make clean install`
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										190
									
								
								config.def.h
									
									
									
									
									
								
							
							
						
						
									
										190
									
								
								config.def.h
									
									
									
									
									
								
							@@ -4,33 +4,63 @@
 | 
			
		||||
#include <X11/XF86keysym.h>
 | 
			
		||||
 | 
			
		||||
/* appearance */
 | 
			
		||||
static const unsigned int borderpx  = 1;        /* border pixel of windows */
 | 
			
		||||
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", "Noto Color Emoji:size=11" };
 | 
			
		||||
static const char dmenufont[]       = "monospace:size=10";
 | 
			
		||||
static const char col_gray1[]       = "#222222";
 | 
			
		||||
static const char col_gray2[]       = "#444444";
 | 
			
		||||
static const char col_gray3[]       = "#f7f7f7";
 | 
			
		||||
static const char col_gray4[]       = "#000000";
 | 
			
		||||
static const char col_cyan[]        = "#dddddd";
 | 
			
		||||
static const unsigned int borderpx       = 1;        /* border pixel of windows */
 | 
			
		||||
static const unsigned int snap           = 32;       /* snap pixel */
 | 
			
		||||
static const unsigned int systraypinning = 0;   /* 0: sloppy systray follows selected monitor, >0: pin systray to monitor X */
 | 
			
		||||
static const unsigned int systrayspacing = 2;   /* systray spacing */
 | 
			
		||||
static const int systraypinningfailfirst = 1;   /* 1: if pinning fails, display systray on the first monitor, False: display systray on the last monitor*/
 | 
			
		||||
static const int showsystray             = 1;     /* 0 means no systray */
 | 
			
		||||
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 normbgcolor[]          = "#0e0f14";
 | 
			
		||||
static const char normbordercolor[]      = "#363b47";
 | 
			
		||||
static const char normfgcolor[]          = "#dfdfdf";
 | 
			
		||||
static const char selfgcolor[]           = "#eeeeee";
 | 
			
		||||
static const char selbordercolor[]       = "#555a63";
 | 
			
		||||
static const char selbgcolor[]           = "#282828";
 | 
			
		||||
static const unsigned int baralpha       = 0xff;
 | 
			
		||||
static const unsigned int borderalpha    = OPAQUE;
 | 
			
		||||
 | 
			
		||||
static const char *colors[][3]      = {
 | 
			
		||||
	/*               fg         bg         border   */
 | 
			
		||||
	[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
 | 
			
		||||
	[SchemeSel]  = { col_gray4, col_cyan,  col_gray3 },
 | 
			
		||||
	[SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor },
 | 
			
		||||
	[SchemeSel]  = { selfgcolor,  selbgcolor,  selbordercolor },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const unsigned int alphas[][3]      = {
 | 
			
		||||
	/*               fg      bg        border     */
 | 
			
		||||
	[SchemeNorm] = { OPAQUE, baralpha, borderalpha },
 | 
			
		||||
	[SchemeSel]  = { OPAQUE, baralpha, borderalpha },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* tagging */
 | 
			
		||||
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
 | 
			
		||||
static const char *alttags[] = { "<1>", "<2>", "<3>", "<4>", "<5>", "<6>", "<7>", "<8>", "<9>" };
 | 
			
		||||
static const char *tags[] = { "", "", "", "", "", "", "", "", "", "" };
 | 
			
		||||
 | 
			
		||||
static const Rule rules[] = {
 | 
			
		||||
	/* xprop(1):
 | 
			
		||||
	 *	WM_CLASS(STRING) = instance, class
 | 
			
		||||
	 *	WM_NAME(STRING) = title
 | 
			
		||||
	 */
 | 
			
		||||
	{ NULL,								"de.uol.swp.client.ClientApp",		NULL,       0,            0,			 1,           -1 },
 | 
			
		||||
	/* class              instance title                        tags center float mon */
 | 
			
		||||
	{ "firefox",          0,  0,                                1 << 1, 0,  0,  -1 },
 | 
			
		||||
	{ "zen",              0,  0,                                1 << 1, 0,  0,  -1 },
 | 
			
		||||
	{ "Lutris",           0,  0,                                1 << 2, 0,  0,   0 },
 | 
			
		||||
	{ "zenity",           0,  0,                                     0, 0,  1,  -1 },
 | 
			
		||||
	{ "steam",            0,  0,                                1 << 2, 0,  0,   0 },
 | 
			
		||||
	{ "discord",          0,  0,                                1 << 2, 0,  0,   1 },
 | 
			
		||||
	{ "TeamSpeak",        0,  0,                                1 << 2, 0,  0,   1 },
 | 
			
		||||
	{ "Element",          0,  0,                                1 << 2, 0,  0,   1 },
 | 
			
		||||
	{ "Signal",           0,  0,                                1 << 4, 0,  0,   1 },
 | 
			
		||||
	{ "TelegramDesktop",  0,  0,                                1 << 4, 0,  0,   1 },
 | 
			
		||||
	{ "threema-web",      0,  0,                                1 << 4, 0,  0,   1 },
 | 
			
		||||
	{ "thunderbird",      0,  0,                                1 << 4, 0,  0,   1 },
 | 
			
		||||
	{ "Sonixd",           0,  0,                                1 << 8, 0,  0,   1 },
 | 
			
		||||
	{ "KeePassXC",        0,  "Unlock Database - KeePassXC",    1 << 1, 0,  0,   0 },
 | 
			
		||||
	{ "KeePassXC",        0,  0,                                1 << 9, 0,  0,   0 },
 | 
			
		||||
	{ "easyeffects",      0,  0,                                1 << 9, 0,  0,   1 },
 | 
			
		||||
	{ "pavucontrol",      0,  0,                                1 << 9, 0,  0,   1 },
 | 
			
		||||
	{ "Onboard",          0,  0,                                     0, 0,  1,   0 },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* layout(s) */
 | 
			
		||||
@@ -40,82 +70,82 @@ static const int resizehints = 1;    /* 1 means respect size hints in tiled resi
 | 
			
		||||
 | 
			
		||||
static const Layout layouts[] = {
 | 
			
		||||
	/* symbol     arrange function */
 | 
			
		||||
	{ "[M]",      monocle },
 | 
			
		||||
	{ "[]=",      tile },    /* first entry is default */
 | 
			
		||||
	{ "[D]",      deck },
 | 
			
		||||
	{ "><>",      NULL },    /* no layout function means floating behavior */
 | 
			
		||||
	{ "M",      monocle },
 | 
			
		||||
	{ "T",      tile },    /* first entry is default */
 | 
			
		||||
	{ "D",      deck },
 | 
			
		||||
	{ "B",      bstack },
 | 
			
		||||
	{ "B",      bstackhoriz },
 | 
			
		||||
	{ "F",      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} },
 | 
			
		||||
	{ 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} },
 | 
			
		||||
 | 
			
		||||
/* 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 char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
 | 
			
		||||
static const char *dmenucmd[] = { "dmenu_run", "-c", "-l", "20", NULL };
 | 
			
		||||
 | 
			
		||||
static Key keys[] = {
 | 
			
		||||
	/* modifier                     key							function		argument */
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_Escape,					quit,			{0} },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_b,						togglebar,      {0} },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_c,						setlayout,      {.v = &layouts[2]} },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_d,						togglefloating, {0} },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_f,						togglefullscr,  {0} },
 | 
			
		||||
	{ MODKEY,                       XK_h,						focusstack,     {.i = -1 } },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_h,						zoom,			{0} },
 | 
			
		||||
	{ MODKEY,                       XK_j,						focusstack,     {.i = +1 } },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_j,						zoom,			{0} },
 | 
			
		||||
	{ MODKEY,                       XK_k,						focusstack,     {.i = -1 } },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_k,						zoom,			{0} },
 | 
			
		||||
	{ MODKEY,                       XK_l,						focusstack,     {.i = +1 } },
 | 
			
		||||
	{ MODKEY|ShiftMask,				XK_m,						setlayout,      {.v = &layouts[0]} },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_o,						setmfact,       {.f = +0.05} },
 | 
			
		||||
	{ MODKEY,						XK_q,						killclient,     {0} },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_t,						setlayout,      {.v = &layouts[1]} },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_z,						setmfact,       {.f = -0.05} },
 | 
			
		||||
	{ MODKEY,                       XK_0,						view,           {.ui = ~0 } },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_0,						tag,            {.ui = ~0 } },
 | 
			
		||||
	{ MODKEY,                       XK_comma,  focusmon,       {.i = -1 } },
 | 
			
		||||
	{ MODKEY,                       XK_period, focusmon,       {.i = +1 } },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_comma,  tagmon,         {.i = -1 } },
 | 
			
		||||
	{ MODKEY|ShiftMask,             XK_period, tagmon,         {.i = +1 } },
 | 
			
		||||
	//{ MODKEY|ShiftMask,             XK_o,      incnmaster,     {.i = +1 } },
 | 
			
		||||
	//{ MODKEY|ShiftMask,			  XK_z,      incnmaster,     {.i = -1 } },
 | 
			
		||||
	//{ MODKEY,                       XK_space,  setlayout,      {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)
 | 
			
		||||
  /* modifier           key         function        argument */
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_Escape,  quitprompt,           {0} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_b,       togglebar,      {0} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_c,       setlayout,      {.v = &layouts[2]} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_d,       togglefloating, {0} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_f,       togglefullscr,  {0} },
 | 
			
		||||
  { MODKEY,             XK_h,       focusstack,     {.i = -1} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_h,       zoom,           {0} },
 | 
			
		||||
  { MODKEY,             XK_j,       focusstack,     {.i = +1} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_j,       zoom,           {0} },
 | 
			
		||||
  { MODKEY,             XK_k,       focusstack,     {.i = -1} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_k,       zoom,           {0} },
 | 
			
		||||
  { MODKEY,             XK_l,       focusstack,     {.i = +1} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_m,       setlayout,      {.v = &layouts[0]} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_o,       setmfact,       {.f = +0.05} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_q,       killclient,     {0} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_t,       setlayout,      {.v = &layouts[1]} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_u,       setlayout,      {.v = &layouts[3]} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_v,       setlayout,      {.v = &layouts[4]} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_z,       setmfact,       {.f = -0.05} },
 | 
			
		||||
  { MODKEY,             XK_0,       view,           {.ui = ~0} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_0,       tag,            {.ui = ~0} },
 | 
			
		||||
  { MODKEY,             XK_comma,   focusmon,       {.i = -1} },
 | 
			
		||||
  { MODKEY,             XK_period,  focusmon,       {.i = +1} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_comma,   tagmon,         {.i = -1} },
 | 
			
		||||
  { MODKEY|ShiftMask,   XK_period,  tagmon,         {.i = +1} },
 | 
			
		||||
  { Mod1Mask,           XK_Tab,     focusstack,     {.i = +1} },
 | 
			
		||||
 | 
			
		||||
  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)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* button definitions */
 | 
			
		||||
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
 | 
			
		||||
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkClientWin, or ClkRootWin */
 | 
			
		||||
static Button buttons[] = {
 | 
			
		||||
	/* click                event mask      button          function        argument */
 | 
			
		||||
	{ ClkLtSymbol,          0,              Button1,        setlayout,      {0} },
 | 
			
		||||
	{ ClkLtSymbol,          0,              Button3,        setlayout,      {.v = &layouts[2]} },
 | 
			
		||||
	{ ClkWinTitle,          0,              Button2,        zoom,           {0} },
 | 
			
		||||
	{ ClkStatusText,        0,              Button1,        sigdwmblocks,   {.i = 1} },
 | 
			
		||||
	{ ClkStatusText,        0,              Button2,        sigdwmblocks,   {.i = 2} },
 | 
			
		||||
	{ ClkStatusText,        0,              Button3,        sigdwmblocks,   {.i = 3} },
 | 
			
		||||
	{ ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} },
 | 
			
		||||
	{ ClkClientWin,         MODKEY,         Button2,        togglefloating, {0} },
 | 
			
		||||
	{ ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} },
 | 
			
		||||
	{ ClkTagBar,            0,              Button1,        view,           {0} },
 | 
			
		||||
	{ ClkTagBar,            0,              Button3,        toggleview,     {0} },
 | 
			
		||||
	{ ClkTagBar,            MODKEY,         Button1,        tag,            {0} },
 | 
			
		||||
	{ ClkTagBar,            MODKEY,         Button3,        toggletag,      {0} },
 | 
			
		||||
  /* click          event mask  button    function        argument */
 | 
			
		||||
  { ClkLtSymbol,    0,          Button1,  cyclelayout,    {.i = +1} },
 | 
			
		||||
  { ClkLtSymbol,    0,          Button2,  focusstack,     {.i = +1} },
 | 
			
		||||
  { ClkLtSymbol,    0,          Button3,  cyclelayout,    {.i = -1} },
 | 
			
		||||
  { ClkStatusText,  0,          Button1,  sigdwmblocks,   {.i = 1} },
 | 
			
		||||
  { ClkStatusText,  0,          Button2,  sigdwmblocks,   {.i = 2} },
 | 
			
		||||
  { ClkStatusText,  0,          Button3,  sigdwmblocks,   {.i = 3} },
 | 
			
		||||
  { ClkClientWin,   MODKEY,     Button1,  movemouse,      {0} },
 | 
			
		||||
  { ClkClientWin,   MODKEY,     Button2,  togglefloating, {0} },
 | 
			
		||||
  { ClkClientWin,   MODKEY,     Button3,  resizemouse,    {0} },
 | 
			
		||||
  { ClkTagBar,      0,          Button1,  view,           {0} },
 | 
			
		||||
  { ClkTagBar,      0,          Button3,  toggleview,     {0} },
 | 
			
		||||
  { ClkTagBar,      MODKEY,     Button1,  tag,            {0} },
 | 
			
		||||
  { ClkTagBar,      MODKEY,     Button3,  toggletag,      {0} },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								dwm.c
									
									
									
									
									
								
							@@ -1110,7 +1110,7 @@ monocle(Monitor *m)
 | 
			
		||||
		if (ISVISIBLE(c))
 | 
			
		||||
			n++;
 | 
			
		||||
	if (n > 0) /* override layout symbol */
 | 
			
		||||
		snprintf(m->ltsymbol, sizeof m->ltsymbol, "%d", n);
 | 
			
		||||
		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);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user