dwl.html (10000B)
1 <!DOCTYPE html> 2 <html dir="ltr" lang="en"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 5 <meta http-equiv="Content-Language" content="en" /> 6 <meta name="viewport" content="width=device-width" /> 7 <meta name="keywords" content="blog, git, dev-log, life-log" /> 8 <meta name="description" content="Perfect high DPI window manager" /> 9 <meta name="author" content="linusbehrens" /> 10 <meta name="generator" content="saait (https://git.codemadness.org/saait/file/README.html)" /> 11 <title>dwl config - Linus Blog</title> 12 13 <link rel="preconnect" href="https://rsms.me/"> 14 <link rel="stylesheet" href="https://rsms.me/inter/inter.css"> 15 <link rel="preconnect" href="https://fonts.googleapis.com"> 16 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 17 <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:wght@100..900&display=swap" rel="stylesheet"> 18 19 <link rel="stylesheet" href="style.css" type="text/css" media="screen" /> 20 <link rel="stylesheet" href="typeface.css" type="text/css" media="screen" /> 21 <link rel="stylesheet" href="print.css" type="text/css" media="print" /> 22 23 <link rel="alternate" href="atom.xml" type="application/atom+xml" title="Linus Blog Atom Feed" /> 24 <link rel="alternate" href="atom_content.xml" type="application/atom+xml" title="Linus Blog Atom Feed with content" /> 25 <link rel="icon" href="/favicon.png" type="image/png" /> 26 </head> 27 <body> 28 <nav id="menuwrap"> 29 <table id="menu" width="100%" border="0"> 30 <tr> 31 <td id="links" align="left"> 32 <a href="index.html">Blog</a> | 33 <a href="/git/" title="Git repository with some of my projects">Git</a> <!-- | --> 34 <!-- <a href="/releases/">Releases</a> | --> 35 <!-- <a href="gopher://codemadness.org">Gopherhole</a> --> 36 </td> 37 <td id="links-contact" align="right"> 38 <span class="hidden"> | </span> 39 <!-- <a href="feeds.html">Feeds</a> | --> 40 <a href="pgp.asc">PGP</a> | 41 <a href="mailto:mail@linus-behrens.de">Mail</a> 42 </td> 43 </tr> 44 </table> 45 </nav> 46 <hr class="hidden" /> 47 <main id="mainwrap"> 48 <div id="main"> 49 <article> 50 <header> 51 <h1>dwl config</h1> 52 <p> 53 <strong>Last modification on </strong> <time>2025-06-16</time> 54 </p> 55 </header> 56 57 <p>My first rather serious linux system should be built on a Thinkpad 58 x61s in 2023. Due to a lack in performence I thought about installing 59 only the most minimal software on it.</p> 60 <p>So I came to see the famouse Thinkpad Arch combination. (I know and 61 knew that it was not the most minimal os possible, but I was convinced) 62 When trying to find the most minimal and fast window manager found the 63 perfect fit: <code>dwm</code>.</p> 64 <p><code>dwm</code> became my wm that just worked.</p> 65 <hr /> 66 <p>However as I continued to gain understanding of how Xorg works and as 67 I understood the bloat in <code>X</code>, I found it hard to swich. On 68 YouTube I came across <code>dwl</code> a project about translating 69 <code>dwl</code> to work with <code>wlroots</code>.</p> 70 <p>Even though being familiar with the rather difficult to install 71 <code>dwm</code>, I wasn’t able to even compile <code>dwl</code>. Now I 72 understand and give you - the reader - a path to follow.</p> 73 <div class="sourceCode" id="cb1"><pre 74 class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">sudo</span> dnf install <span class="dt">\</span></span> 75 <span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> libinput libinput-devel <span class="dt">\</span></span> 76 <span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> wayland wayland-devel <span class="dt">\</span></span> 77 <span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a> wlroots wlroots-devel <span class="dt">\</span></span> 78 <span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a> xkbcommon xkbcommon-devel <span class="dt">\</span></span> 79 <span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a> wayland-protocols <span class="dt">\</span></span> 80 <span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a> pkgconf-pkg-config</span></code></pre></div> 81 <div class="sourceCode" id="cb2"><pre 82 class="sourceCode bash"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="fu">git</span> clone https://codeberg.org/dwl/dwl.git</span> 83 <span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="bu">cd</span> dwl</span> 84 <span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a><span class="fu">git</span> checkout v0.7</span> 85 <span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span> 86 <span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a><span class="fu">sudo</span> make install</span></code></pre></div> 87 <div class="sourceCode" id="cb3"><pre 88 class="sourceCode bash"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="fu">sudo</span> dnf install <span class="dt">\</span></span> 89 <span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a> libinput libinput-devel <span class="dt">\</span></span> 90 <span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a> wayland wayland-devel <span class="dt">\</span></span> 91 <span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a> wlroots wlroots-devel <span class="dt">\</span></span> 92 <span id="cb3-5"><a href="#cb3-5" aria-hidden="true" tabindex="-1"></a> xkbcommon xkbcommon-devel <span class="dt">\</span></span> 93 <span id="cb3-6"><a href="#cb3-6" aria-hidden="true" tabindex="-1"></a> wayland-protocols-devel <span class="dt">\</span></span> 94 <span id="cb3-7"><a href="#cb3-7" aria-hidden="true" tabindex="-1"></a> pkgconf-pkg-config <span class="dt">\</span></span> 95 <span id="cb3-8"><a href="#cb3-8" aria-hidden="true" tabindex="-1"></a> meson ninja-build <span class="dt">\</span></span> 96 <span id="cb3-9"><a href="#cb3-9" aria-hidden="true" tabindex="-1"></a> gcc</span></code></pre></div> 97 <div class="sourceCode" id="cb4"><pre 98 class="sourceCode bash"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">git</span> clone https://github.com/waycrate/wmenu.git</span> 99 <span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="bu">cd</span> wmenu</span> 100 <span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a><span class="ex">meson</span> setup build</span> 101 <span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a><span class="ex">ninja</span> <span class="at">-C</span> build</span> 102 <span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a><span class="fu">sudo</span> ninja <span class="at">-C</span> build install</span></code></pre></div> 103 <hr /> 104 <p>Edits to <code>sources/dwl/config.h</code>:</p> 105 <div class="sourceCode" id="cb5"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="dt">static</span> <span class="dt">const</span> <span class="dt">char</span> <span class="op">*</span>termcmd<span class="op">[]</span> <span class="op">=</span> <span class="op">{</span> <span class="st">"ghostty"</span><span class="op">,</span> NULL <span class="op">};</span></span></code></pre></div> 106 <div class="sourceCode" id="cb6"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="dt">static</span> <span class="dt">const</span> MonitorRule monrules<span class="op">[]</span> <span class="op">=</span> <span class="op">{</span></span> 107 <span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a> <span class="co">/* macbook m1 14" */</span></span> 108 <span id="cb6-3"><a href="#cb6-3" aria-hidden="true" tabindex="-1"></a> <span class="op">{</span> <span class="st">"eDP-1"</span><span class="op">,</span> <span class="fl">0.5</span><span class="bu">f</span><span class="op">,</span> <span class="dv">1</span><span class="op">,</span> <span class="dv">2</span><span class="op">,</span> <span class="op">&</span>layouts<span class="op">[</span><span class="dv">0</span><span class="op">],</span> WL_OUTPUT_TRANSFORM_NORMAL<span class="op">,</span> <span class="op">-</span><span class="dv">1</span><span class="op">,</span> <span class="op">-</span><span class="dv">1</span> <span class="op">},</span></span> 109 <span id="cb6-4"><a href="#cb6-4" aria-hidden="true" tabindex="-1"></a><span class="op">};</span></span></code></pre></div> 110 <div class="sourceCode" id="cb7"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="dt">static</span> <span class="dt">const</span> <span class="kw">struct</span> xkb_rule_names xkb_rules <span class="op">=</span> <span class="op">{</span></span> 111 <span id="cb7-2"><a href="#cb7-2" aria-hidden="true" tabindex="-1"></a> <span class="co">/* default:</span></span> 112 <span id="cb7-3"><a href="#cb7-3" aria-hidden="true" tabindex="-1"></a><span class="co"> .options = NULL,</span></span> 113 <span id="cb7-4"><a href="#cb7-4" aria-hidden="true" tabindex="-1"></a><span class="co"> */</span></span> 114 <span id="cb7-5"><a href="#cb7-5" aria-hidden="true" tabindex="-1"></a> <span class="op">.</span>layout <span class="op">=</span> <span class="st">"de"</span><span class="op">,</span></span> 115 <span id="cb7-6"><a href="#cb7-6" aria-hidden="true" tabindex="-1"></a> <span class="op">.</span>variant <span class="op">=</span> <span class="st">"latin1"</span><span class="op">,</span></span> 116 <span id="cb7-7"><a href="#cb7-7" aria-hidden="true" tabindex="-1"></a><span class="op">};</span></span></code></pre></div> 117 118 </article> 119 </div> 120 </main> 121 </body> 122 </html>