]> nyquistdev.net Git - dwm-config.git/commitdiff
readme
authorA-Larsen <austin.larsen@mailfence.com>
Wed, 14 Oct 2026 22:00:24 +0000 (18:00 -0400)
committerA-Larsen <austin.larsen@mailfence.com>
Wed, 14 Oct 2026 22:00:24 +0000 (18:00 -0400)
.images/rules-struct.png
README.adoc
config.def.h
rendered.html

index ef4b26ab01252aee32fabf91e6eaa436b72ca589..47ef5dc42d36dbb20e3898d15d69b21bc827f5e8 100644 (file)
Binary files a/.images/rules-struct.png and b/.images/rules-struct.png differ
index 918b89d9beae7d1e679f09eefa48911b886b96b4..fb97315164aed3ad9bc717fffe6e121e12271ae4 100644 (file)
@@ -34,11 +34,14 @@ Extra keyboard shortcuts:
 | Super+Shift+w       | open sidepanel loader
 |===
 
+== Side Pannel Applications
+
 Specific application are designed to be sidepannel application. These are
 applications that will only launch on the far right side of your monitor. These
 application do not interfere with window tiling functionality to the left of
 them.
 
+
 == Tag icons
 
 image::sidepannel-apps.png[tag-icons]
@@ -60,3 +63,58 @@ image::geticon-function.png[tag-icons]
 There is also quite a bit of changes to the rules struct.
 
 image::rules-struct.png[rules-struct]
+
+`isSidePannel`::
+    Tells dwm if this is a sidepannel application.
+
+`isCentered`:: 
+    Tells dwm whether or not to center the application to the middle
+    of the screen.
+
+`layout`:: 
+    Tells dwm if there is a layout to have the applicatoin launch in, you can
+    have `NULL` to not specify.
+
+`switchto`:: 
+    Tells dwm if it should focus the application when it launches or launch it
+    silently.
+
+== Dependency Scripts
+
+There are several scripts that work with my DWM config. You can find these
+scripts here: https://nyquistdev.net/git/?p=ubuntu-rice.git;a=tree;f=usr-local-bin;h=HEAD[scripts].
+
+Most of these scripts start with the 'dwm' prefix, for the exception of
+`facecam`, `brightness-launch`, `ffsrec-stop-recoding`, `wake-up`, `ffsrec`.
+That is because those applications can work independently of dwm.
+
+[source, c]
+----
+/* commands */
+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[]  = { "alacritty", "--title", "Alacritty", NULL };
+static const char *flameshotcmd[]  = { "flameshot", "gui", NULL };
+static const char *suscmd[]  = { "systemctl", "suspend", NULL };
+static const char *volupcmd[]  = { "/usr/local/bin/dwm_volume_up", NULL };
+static const char *voldowncmd[]  = { "/usr/local/bin/dwm_volume_down", NULL };
+static const char *volmutecmd[]  = { "/usr/local/bin/dwm_volume_mute", NULL };
+static const char *mixercmd[]  = { "/usr/local/bin/dwm-term-toggle", "pulsemixer", NULL };
+static const char *calc_mcw_cmd[]  = { "/usr/local/bin/dwm-speedcrunch-move", "cw", NULL };
+static const char *calc_mccw_cmd[]  = { "/usr/local/bin/dwm-speedcrunch-move", "ccw", NULL };
+static const char *facecamcmd[]  = { "/usr/local/bin/facecam", NULL };
+static const char *cpucmd[]  = { "/usr/local/bin/dwm-term-toggle", "htop", NULL };
+static const char *brightnesscmd[]  = { "/usr/local/bin/brightness-launch", NULL };
+static const char *ffsrecstartcmd[]  = { "/usr/local/bin/ffsrec", NULL };
+static const char *ffsrecstopcmd[]  = { "/usr/local/bin/ffsrec-stop-recording", NULL };
+static const char *wakeupcmd[]  = { "/usr/local/bin/wake-up", "toggle", NULL };
+static const char *calendarcmd[]  = { "/usr/local/bin/dwm-calendar", NULL };
+static const char *windowcontainercmd[]  = { "/usr/local/bin/dwm-window-container-toggle", NULL };
+static const char *gotowindowcmd[]  = { "/usr/local/bin/dwm-goto-window", NULL };
+----
+
+== Other changes
+
+* each tag has a unique layout 
+* gaps for each application
+* centered applicatoins
index 9bc0e219536d29b8067e2a04383dfe5fd6d7af54..1a3e54efbab7b29ff34d01e617367ac15bc93d44 100644 (file)
@@ -90,19 +90,11 @@ static const Layout layouts[] = {
 };
 
 static const Rule rules[] = {
-       /* xprop(1):
-        *      WM_CLASS(STRING) = instance, class
-        *      WM_NAME(STRING) = title
-        */
-    // Keep ffplay floating a and in all tags for facecam script
-    // last tag is for calendar
        /* class            instance      title          tags mask     isfloating   isCentered   isSidePanel    monitor     resize hint    layout    switchto*/   
     //
     {  NULL,                NULL,     NULL,             0,            1,           1,           0,           -1,           0,           NULL,         0},
        {  NULL,                NULL,    "facecam",         (1<<4)-1,     0,           0,           1,            1,           1,           NULL,         0},
-       // {  "SpeedCrunch",       NULL,    "calculator",   0,            1,           0,           0,           -1,           0,           NULL,         0},
        {  "SpeedCrunch",       NULL,    "calculator",      0,            0,           0,           1,            1,           0,           NULL,         1},
-       //{  "SpeedCrunch",       NULL,    "SpeedCrunch",   0,            0,           0,           0,           -1,           1,           NULL,         0},
        {  NULL,                NULL,    "youtube-upload",  (1<<9)-1,     1,           0,           0,           -1,           0,           NULL,         0},
        {  NULL,                NULL,    "Calendar",        0,            0,           0,           0,            1,           0,           NULL,         1},
     { "Xephyr",             NULL,    NULL,              0,            0,           0,           1,            1,           0,           NULL,         1},
@@ -121,15 +113,6 @@ static const Rule rules[] = {
     {  NULL,                NULL,    "note",            0,            1,           0,           0,           -1,           0,           NULL,         0},
        {  NULL,                NULL,    "pulsemixer",      (1<<9)-1,     1,           0,           0,            1,           0,           NULL,         1},
        {  NULL,                NULL,    "htop",            (1<<9)-1,     1,           0,           0,            1,           0,           NULL,         1},
-    // { NULL,                 NULL,    NULL,           0,            0,           1,        0,         -1 },
-
-    // there is a possibility to need a terminal in misc tag as well..
-       // {  NULL,              NULL,       "Alacritty",   1 << 0,     0,         -1 },
-       // {  "Brave",           NULL,        NULL,         1 << 1,     0,         -1 },
-       // {  "Gimp",            NULL,        NULL,         1 << 2,     0,         -1 },
-       // {  "Discord",         NULL,        NULL,         1 << 3,     0,         -1 },
-       // {  "OBS",             NULL,        NULL,         1 << 4,     0,         -1 },
-       // {  "KeePassXC",       NULL,        NULL,         1 << 4,     0,         -1 },
 };
 
 const char *
index 81cacc25d133ddac3d0f21eba92f81c3ccbec110..3890387e6728c5f96e6dad019435cc2e95889133 100644 (file)
@@ -433,6 +433,88 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
 @media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
 </style>
 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+<style>
+pre.pygments .hll { background-color: #49483e }
+pre.pygments { background: #272822; color: #F8F8F2 }
+pre.pygments .tok-c { color: #959077 } /* Comment */
+pre.pygments .tok-err { color: #ED007E; background-color: #1E0010 } /* Error */
+pre.pygments .tok-esc { color: #F8F8F2 } /* Escape */
+pre.pygments .tok-g { color: #F8F8F2 } /* Generic */
+pre.pygments .tok-k { color: #66D9EF } /* Keyword */
+pre.pygments .tok-l { color: #AE81FF } /* Literal */
+pre.pygments .tok-n { color: #F8F8F2 } /* Name */
+pre.pygments .tok-o { color: #FF4689 } /* Operator */
+pre.pygments .tok-x { color: #F8F8F2 } /* Other */
+pre.pygments .tok-p { color: #F8F8F2 } /* Punctuation */
+pre.pygments .tok-ch { color: #959077 } /* Comment.Hashbang */
+pre.pygments .tok-cm { color: #959077 } /* Comment.Multiline */
+pre.pygments .tok-cp { color: #959077 } /* Comment.Preproc */
+pre.pygments .tok-cpf { color: #959077 } /* Comment.PreprocFile */
+pre.pygments .tok-c1 { color: #959077 } /* Comment.Single */
+pre.pygments .tok-cs { color: #959077 } /* Comment.Special */
+pre.pygments .tok-gd { color: #FF4689 } /* Generic.Deleted */
+pre.pygments .tok-ge { color: #F8F8F2; font-style: italic } /* Generic.Emph */
+pre.pygments .tok-ges { color: #F8F8F2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */
+pre.pygments .tok-gr { color: #F8F8F2 } /* Generic.Error */
+pre.pygments .tok-gh { color: #F8F8F2 } /* Generic.Heading */
+pre.pygments .tok-gi { color: #A6E22E } /* Generic.Inserted */
+pre.pygments .tok-go { color: #66D9EF } /* Generic.Output */
+pre.pygments .tok-gp { color: #FF4689; font-weight: bold } /* Generic.Prompt */
+pre.pygments .tok-gs { color: #F8F8F2; font-weight: bold } /* Generic.Strong */
+pre.pygments .tok-gu { color: #959077 } /* Generic.Subheading */
+pre.pygments .tok-gt { color: #F8F8F2 } /* Generic.Traceback */
+pre.pygments .tok-kc { color: #66D9EF } /* Keyword.Constant */
+pre.pygments .tok-kd { color: #66D9EF } /* Keyword.Declaration */
+pre.pygments .tok-kn { color: #FF4689 } /* Keyword.Namespace */
+pre.pygments .tok-kp { color: #66D9EF } /* Keyword.Pseudo */
+pre.pygments .tok-kr { color: #66D9EF } /* Keyword.Reserved */
+pre.pygments .tok-kt { color: #66D9EF } /* Keyword.Type */
+pre.pygments .tok-ld { color: #E6DB74 } /* Literal.Date */
+pre.pygments .tok-m { color: #AE81FF } /* Literal.Number */
+pre.pygments .tok-s { color: #E6DB74 } /* Literal.String */
+pre.pygments .tok-na { color: #A6E22E } /* Name.Attribute */
+pre.pygments .tok-nb { color: #F8F8F2 } /* Name.Builtin */
+pre.pygments .tok-nc { color: #A6E22E } /* Name.Class */
+pre.pygments .tok-no { color: #66D9EF } /* Name.Constant */
+pre.pygments .tok-nd { color: #A6E22E } /* Name.Decorator */
+pre.pygments .tok-ni { color: #F8F8F2 } /* Name.Entity */
+pre.pygments .tok-ne { color: #A6E22E } /* Name.Exception */
+pre.pygments .tok-nf { color: #A6E22E } /* Name.Function */
+pre.pygments .tok-nl { color: #F8F8F2 } /* Name.Label */
+pre.pygments .tok-nn { color: #F8F8F2 } /* Name.Namespace */
+pre.pygments .tok-nx { color: #A6E22E } /* Name.Other */
+pre.pygments .tok-py { color: #F8F8F2 } /* Name.Property */
+pre.pygments .tok-nt { color: #FF4689 } /* Name.Tag */
+pre.pygments .tok-nv { color: #F8F8F2 } /* Name.Variable */
+pre.pygments .tok-ow { color: #FF4689 } /* Operator.Word */
+pre.pygments .tok-pm { color: #F8F8F2 } /* Punctuation.Marker */
+pre.pygments .tok-w { color: #F8F8F2 } /* Text.Whitespace */
+pre.pygments .tok-mb { color: #AE81FF } /* Literal.Number.Bin */
+pre.pygments .tok-mf { color: #AE81FF } /* Literal.Number.Float */
+pre.pygments .tok-mh { color: #AE81FF } /* Literal.Number.Hex */
+pre.pygments .tok-mi { color: #AE81FF } /* Literal.Number.Integer */
+pre.pygments .tok-mo { color: #AE81FF } /* Literal.Number.Oct */
+pre.pygments .tok-sa { color: #E6DB74 } /* Literal.String.Affix */
+pre.pygments .tok-sb { color: #E6DB74 } /* Literal.String.Backtick */
+pre.pygments .tok-sc { color: #E6DB74 } /* Literal.String.Char */
+pre.pygments .tok-dl { color: #E6DB74 } /* Literal.String.Delimiter */
+pre.pygments .tok-sd { color: #E6DB74 } /* Literal.String.Doc */
+pre.pygments .tok-s2 { color: #E6DB74 } /* Literal.String.Double */
+pre.pygments .tok-se { color: #AE81FF } /* Literal.String.Escape */
+pre.pygments .tok-sh { color: #E6DB74 } /* Literal.String.Heredoc */
+pre.pygments .tok-si { color: #E6DB74 } /* Literal.String.Interpol */
+pre.pygments .tok-sx { color: #E6DB74 } /* Literal.String.Other */
+pre.pygments .tok-sr { color: #E6DB74 } /* Literal.String.Regex */
+pre.pygments .tok-s1 { color: #E6DB74 } /* Literal.String.Single */
+pre.pygments .tok-ss { color: #E6DB74 } /* Literal.String.Symbol */
+pre.pygments .tok-bp { color: #F8F8F2 } /* Name.Builtin.Pseudo */
+pre.pygments .tok-fm { color: #A6E22E } /* Name.Function.Magic */
+pre.pygments .tok-vc { color: #F8F8F2 } /* Name.Variable.Class */
+pre.pygments .tok-vg { color: #F8F8F2 } /* Name.Variable.Global */
+pre.pygments .tok-vi { color: #F8F8F2 } /* Name.Variable.Instance */
+pre.pygments .tok-vm { color: #F8F8F2 } /* Name.Variable.Magic */
+pre.pygments .tok-il { color: #AE81FF } /* Literal.Number.Integer.Long */
+</style>
 <head>
 <!-- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=DotGothic16"> -->
 <!-- <link rel="icon" type="image/x-icon" href="https://raw.githubusercontent.com/A-Larsen/math-notes/refs/heads/main/favicon.png"> -->
@@ -1122,6 +1204,11 @@ changes to the source code.</p>
 </tr>
 </tbody>
 </table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_side_pannel_applications">Side Pannel Applications</h2>
+<div class="sectionbody">
 <div class="paragraph">
 <p>Specific application are designed to be sidepannel application. These are
 applications that will only launch on the far right side of your monitor. These
@@ -1169,6 +1256,86 @@ Just find the geticon function and change the icon for your application.</p>
 <img src="https://nyquistdev.net/git/?p=dwm-config.git;a=blob_plain;f=.images/rules-struct.png" alt="rules-struct">
 </div>
 </div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>isSidePannel</code></dt>
+<dd>
+<p>Tells dwm if this is a sidepannel application.</p>
+</dd>
+<dt class="hdlist1"><code>isCentered</code></dt>
+<dd>
+<p>Tells dwm whether or not to center the application to the middle
+of the screen.</p>
+</dd>
+<dt class="hdlist1"><code>layout</code></dt>
+<dd>
+<p>Tells dwm if there is a layout to have the applicatoin launch in, you can
+have <code>NULL</code> to not specify.</p>
+</dd>
+<dt class="hdlist1"><code>switchto</code></dt>
+<dd>
+<p>Tells dwm if it should focus the application when it launches or launch it
+silently.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_dependency_scripts">Dependency Scripts</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>There are several scripts that work with my DWM config. You can find these
+scripts here: <a href="https://nyquistdev.net/git/?p=ubuntu-rice.git;a=tree;f=usr-local-bin;h=HEAD">scripts</a>.</p>
+</div>
+<div class="paragraph">
+<p>Most of these scripts start with the 'dwm' prefix, for the exception of
+<code>facecam</code>, <code>brightness-launch</code>, <code>ffsrec-stop-recoding</code>, <code>wake-up</code>, <code>ffsrec</code>.
+That is because those applications can work independently of dwm.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cm">/* commands */</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-n">dmenumon</span><span class="tok-p">[</span><span class="tok-mi">2</span><span class="tok-p">]</span><span class="tok-w"> </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-s">&quot;0&quot;</span><span class="tok-p">;</span><span class="tok-w"> </span><span class="tok-cm">/* component of dmenucmd, manipulated in spawn() */</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">dmenucmd</span><span class="tok-p">[]</span><span class="tok-w"> </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;dmenu_run&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;-m&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-n">dmenumon</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;-fn&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-n">dmenufont</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;-nb&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-n">col_gray1</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;-nf&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-n">col_gray3</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;-sb&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-n">col_cyan</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;-sf&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-n">col_gray4</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">termcmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;alacritty&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;--title&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;Alacritty&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">flameshotcmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;flameshot&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;gui&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">suscmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;systemctl&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;suspend&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">volupcmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/dwm_volume_up&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">voldowncmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/dwm_volume_down&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">volmutecmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/dwm_volume_mute&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">mixercmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/dwm-term-toggle&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;pulsemixer&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">calc_mcw_cmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/dwm-speedcrunch-move&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;cw&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">calc_mccw_cmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/dwm-speedcrunch-move&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;ccw&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">facecamcmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/facecam&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">cpucmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/dwm-term-toggle&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;htop&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">brightnesscmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/brightness-launch&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">ffsrecstartcmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/ffsrec&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">ffsrecstopcmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/ffsrec-stop-recording&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">wakeupcmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/wake-up&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-s">&quot;toggle&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">calendarcmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/dwm-calendar&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">windowcontainercmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/dwm-window-container-toggle&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span>
+<span class="tok-k">static</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">gotowindowcmd</span><span class="tok-p">[]</span><span class="tok-w">  </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-p">{</span><span class="tok-w"> </span><span class="tok-s">&quot;/usr/local/bin/dwm-goto-window&quot;</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-nb">NULL</span><span class="tok-w"> </span><span class="tok-p">};</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_other_changes">Other changes</h2>
+<div class="sectionbody">
+<div class="ulist">
+<ul>
+<li>
+<p>each tag has a unique layout</p>
+</li>
+<li>
+<p>gaps for each application</p>
+</li>
+<li>
+<p>centered applicatoins</p>
+</li>
+</ul>
+</div>
 </div>
 </div>
 </div>