speedwm-personal/readme.html

425 lines
24 KiB
HTML

<p> <a href="https://speedie.gq/speedwm">https://speedie.gq/speedwm</a></p>
<p><a href="https://speedie.gq/donate">https://speedie.gq/donate</a></p>
<h2 id="what-is-speedwm-">What is speedwm?</h2>
<p>speedwm is a window manager forked from suckless.org&#39;s dwm or dynamic window manager. It manages the user&#39;s open windows and tiles them according to a set layout (dynamic).<br>Unlike dwm, speedwm tries to be minimal just dwm but also has functionality and aesthetics as a goal. It is also much more minimal than other window managers like i3-gaps while offering many more features.</p>
<p>Tiling window managers (unlike floating window managers that you may be used to) tile windows based on a set layout making them easy to get productive on.<br>They also encourage the user to use their keyboard instead of the mouse so that the user doesn&#39;t have to move their hands much but there are mouse keybinds and more can be added.</p>
<h2 id="installation">Installation</h2>
<p>In order to install this build of speedwm, all dependencies must be installed.<br>You can see (Dependencies) for a list of all dependencies required to use this fork.</p>
<ul>
<li>git clone <a href="https://codeberg.org/speedie/speedwm">https://codeberg.org/speedie/speedwm</a></li>
<li>cd speedwm</li>
<li>make clean install<ul>
<li>If any warnings show up, fix it by installing the missing dependency.</li>
</ul>
</li>
<li>If a .xinitrc is used, add &#39;speedwm_run&#39; to the end.<ul>
<li>NOTE: Your .xinitrc should ONLY contain &#39;speedwm_run&#39;. speedwm will automatically start everything else. If not, edit autostart.h and &#39;make clean install&#39;. If a .xinitrc is not used then you don&#39;t need to worry. A .desktop file is automatically created when you run &#39;make clean install&#39;.</li>
</ul>
</li>
</ul>
<h2 id="layouts">Layouts</h2>
<p>speedwm comes with the following layouts:</p>
<ul>
<li>Tile</li>
<li>Monocle</li>
<li>Grid</li>
<li>Deck</li>
<li>Centered Master</li>
<li>Centered Floating Master</li>
<li>Spiral</li>
<li>Dwindle</li>
<li>Three Column</li>
<li>Bottom Stack</li>
<li>Horizontal Bottom Stack</li>
<li>Horizonal Grid</li>
<li>Tatami</li>
<li>Tilewide</li>
<li>Stairs</li>
<li>Tiling (5:4)</li>
<li>Column</li>
<li>Dynamic Grid</li>
</ul>
<p>They can be switched between using a little menu (See Keybinds for more information) or by right clicking the Layout indicator.<br>The more commonly used layouts can be switched between using a quick keybind.</p>
<h2 id="keybinds">Keybinds</h2>
<p>Below is a list of all speedwm keybinds.</p>
<h3 id="applications">Applications</h3>
<p> Keybinds for regular applications</p>
<ul>
<li>Super+Shift+Enter | Opens a terminal</li>
<li>Super+Shift+Colon | Opens a dmenu prompt</li>
<li>Super+Shift+s | Opens &#39;maim&#39; to take a screenshot and copies it to the clipboard using &#39;xclip&#39;</li>
<li>Super+Shift+f | Opens the defined file manager</li>
<li>Super+Shift+w | Opens the defined web browser</li>
<li>Super+Shift+o | Opens the bundled dfmpeg dmenu script to record your screen.</li>
<li>Super+Shift+t | Opens the defined editor in your terminal</li>
<li>Super+Shift+p | Kills the defined web browser</li>
<li>Super+Shift+m | Kills the defined music player</li>
<li>Super+Shift+a | Opens the defined mixer in your terminal</li>
<li>Super+Shift+m | Opens the defined music player</li>
<li>Super+Shift+x | Opens the defined system process viewer in your terminal</li>
<li>Super+Control+Shift+m | Opens the defined email client</li>
<li><p>Super+Control+u | Opens the defined RSS reader</p>
<h3 id="navigation">Navigation</h3>
<p>These keybinds are for navigating speedwm</p>
</li>
<li><p>Super+t | Reorganize tags and move clients</p>
</li>
<li>Super+f | Full-screen the selected window</li>
<li>Super+b | Show/hide the speedwm bar</li>
<li>Super+s | Show/hide the systray (If trayer is installed)</li>
<li>Super+j/k | Move focus between visible windows</li>
<li>Super+Alt+j/k | Increase/decrease gaps between windows in tiling layout by 1</li>
<li>Super+Alt+u/d | Increase/decrease gaps between windows in tiling layout by 5</li>
<li>Super+Control+j/k | Move focus between hidden windows (Can then &#39;Show&#39;)</li>
<li>Super+a/d | Increase/decrease size of each window</li>
<li>Super+o | Hide a window</li>
<li>Super+Control+o | Show a hidden focused window</li>
<li>Super+a/d | Move to the next/previous tag</li>
<li>Super+Minus | Show the scratchpad</li>
<li>Super+Equal | Remove the scratchpad</li>
<li>Super+Enter | Switch order of windows</li>
<li>Super+Shift+q | Close the current window</li>
<li>Super+Space | Set layout</li>
<li>Super+t | Disable inactive fade</li>
<li>Super+Shift+Equal | Toggle scratchpads</li>
<li>Super+Shift+Minus | Hide the scratchpad</li>
<li>Super+Shift+Space | Unfloat floating windows</li>
<li>Super+Shift+Arrow | Resizes a window in floating mode</li>
<li>Super+1 | Move to tag 1</li>
<li>Super+2 | Move to tag 2</li>
<li>Super+3 | Move to tag 3</li>
<li>Super+4 | Move to tag 4</li>
<li>Super+5 | Move to tag 5</li>
<li>Super+6 | Move to tag 6</li>
<li>Super+7 | Move to tag 7</li>
<li>Super+8 | Move to tag 8</li>
<li>Super+9 | Move to tag 9</li>
<li>Super+Shift+1 | Preview tag 1</li>
<li>Super+Shift+2 | Preview tag 2</li>
<li>Super+Shift+3 | Preview tag 3</li>
<li>Super+Shift+4 | Preview tag 4</li>
<li>Super+Shift+5 | Preview tag 5</li>
<li>Super+Shift+6 | Preview tag 6</li>
<li>Super+Shift+7 | Preview tag 7</li>
<li>Super+Shift+8 | Preview tag 8</li>
<li>Super+Shift+9 | Preview tag 9</li>
<li>Super+Shift+h/j/k/l | Rotates a stack.</li>
<li>Super+Shift+Escape | Ask the user if they want to shutdown or reboot or nothing</li>
<li>Super+Shift+i | Open a dmenu prompt and open the file the user picks in Zathura</li>
<li>Super+Shift+p | Open a dmenu prompt and open the file the user picks in Vim</li>
<li>Super+Control+e | Switch to layout 3 (Grid)</li>
<li>Super+Control+r | Switch to layout 1 (Monocle)</li>
<li>Super+Control+t | Switch to layout 0 (Master &amp; stack)</li>
<li>Super+Control+y | Switch to layout 4 (Deck)</li>
<li>Super+Control+0 | View all windows at once.</li>
<li>Super+Control+Arrow | Moves a window to any corner of your screen (Arrow key)</li>
<li>Super+Control+Tab | Open a dmenu prompt asking the user what layout to switch to</li>
<li>Super+Control+h | Open a list of all keybinds in your terminal using less</li>
<li>Super+Control+Shift+a/d | Move between available layouts</li>
<li>Super+Alt+s | Make the current selected window sticky</li>
<li>Super+Control+Shift+Esc | Open speedwm-utils (Main menu)</li>
<li>Super+Control+Shift+Arrow | Resize the window to the screen size.</li>
<li>Super+Control+Shift+s | Set a wallpaper</li>
<li>Super+Control+Shift+n | Connect to wifi (Requires iwd)</li>
<li>Super+Control+Shift+b | Connect to a bluetooth device (Requires bluez and bluez-utils)</li>
<li>Super+Control+Shift+e | Open up a list of dotfiles in dmenu that you can edit.</li>
<li>Alt+Tab | Switch windows quickly and easily </li>
<li><p>Alt+Control+j/k | Change window size vertically (cfact)</p>
<h3 id="chained-keybinds">Chained keybinds</h3>
</li>
<li>Super+c &amp; w | Curl wttr.in and open in less</li>
<li>Super+c &amp; m | Ask the user for a topic and curl cheat.sh</li>
<li>Super+g &amp; t | Toggle gaps</li>
<li>Super+g &amp; 0 | Reset gaps</li>
<li>Super+g &amp; i | Increase inner gaps by 1</li>
<li>Super+Shift+g &amp; i | Decrease inner gaps by 1</li>
<li>Super+g &amp; o | Increase outer gaps by 1</li>
<li>Super+Shift+g &amp; o | Decrease outer gaps by 1</li>
<li>Super+r+v | Open the defined music visualizer</li>
<li>Super+Shift+e+a | Open the virtual keyboard</li>
<li>Super+Shift+e+e | Open a list of all emojis and copy the selection</li>
<li>Super+Shift+e+a | Open a list of copypasta and copy the selection</li>
<li><p>Alt+Shift+q+o | Kill every window except the focused</p>
<h3 id="extras">Extras</h3>
<p>These will only work if your keyboard has special multimedia buttons.</p>
</li>
<li><p>Mute button | Mutes your audio</p>
</li>
<li>Up Volume button | Increases your volume</li>
<li>Down Volume button | Decreases your volume</li>
<li>Stop button | Stops your defined music player</li>
<li>Browser button | Opens your defined web browser</li>
<li>Power button | Ask if you wanna shut down, restart or lock your computer.</li>
<li>Email button | Open your defined email client</li>
<li><p>System button | Open your defined status viewer in a terminal</p>
<h3 id="mouse">Mouse</h3>
<p>These binds can be activated using your mouse</p>
</li>
<li><p>Tag &lt;num&gt; (Left click) | Switch to tag &lt;num&gt;</p>
</li>
<li>Layout indicator (Left click) | Switch to the next layout</li>
<li>Layout indicator (Middle click) | Switch to the next layout</li>
<li>Layout indicator (Right click) | Open a dmenu list of all layouts</li>
<li>Window title (Left click) | Hide/Show the window</li>
<li>Window title (Right click) | Open speedwm-utils</li>
<li>Focused window (Super+Alt+Left click) | Move the focused window around</li>
<li>Focused window (Super+Alt+Middle click) | Make the focused window floating</li>
<li>Focused window title (Middle click) | Rotate stack</li>
<li>Dragging (Super+Right click) | Increase/decrease size of each window</li>
<li><p>Dragging (SuperControl+Right click) | Increase/decrease cfact</p>
<p>There are also keybinds for statuscmd, but you must implement it into your own status bar.<br>See mouse.h for more information.</p>
</li>
</ul>
<h2 id="dependencies">Dependencies</h2>
<p> These are absolutely necessary, speedwm will NOT compile without them</p>
<ul>
<li>libxft-bgra (Can be installed through &#39;make &lt;distro&gt;-libxftfix&#39;)<ul>
<li>NOTE: libXft will do but will cause speedwm and as such all your applications to crash if a colored emoji is displayed in the status bar. This includes the Emoji picker.</li>
</ul>
</li>
<li>libXinerama<ul>
<li>Can be disabled through editing toggle.mk if you&#39;re not interested in multiple monitors.</li>
</ul>
</li>
<li><p>imlib2</p>
<ul>
<li>Tag previews, Window icons. Can be disabled through editing toggle.mk and toggle.h if you don&#39;t want these features.</li>
</ul>
<h2 id="features">Features</h2>
<p>These are dependencies if you wanna use certain features<br>NOTE: Do not add any of these to .xinitrc or similar. They are going to be autostarted by speedwm.<br>If you want to use an alternative, change it in options.h.</p>
</li>
<li>dmenu<ul>
<li>NOTE: dmenu is required for most scripts included with this build of speedwm. My build is required for proper Pywal support.</li>
<li>If you do not have the password, grid and center patches, you must disable them in ~/.config/speedwm-de/global/config by setting two variables to false.</li>
</ul>
</li>
<li>picom<ul>
<li>Optional but speedwm looks sort of ugly without it.</li>
</ul>
</li>
<li>xclip (Required for clipboard support by a few scripts, will start automatically)</li>
<li>xwallpaper (Required to set wallpapers)</li>
<li>xmodmap<ul>
<li>Required if you want the Alt+Tab to have proper keybinds.</li>
<li>Install if you want Escape instead of Caps Lock and Right Super+hjkl for arrow keys</li>
</ul>
</li>
<li>xrdb (Install if you want .Xresources support)</li>
<li>pywal (Install if you want pywal support. Requires swal aka the default way to set wallpapers)</li>
<li>wmctrl (Needed for proper window management)</li>
<li>xsetroot (Needed for most scripts including Pywal support)</li>
<li>slock (Required for screen locking)<ul>
<li>If you want to display a message, you need the text patch.</li>
<li>If you have the background image patch, you can set the image to ~/.config/speedwm-de/swal/CurrentWallpaper. It is a symlink to the current wallpaper.</li>
</ul>
</li>
<li><p>maim (Required for built in &#39;speedwm-screenshotutil&#39; script)</p>
<h2 id="software">Software</h2>
<p>This build of speedwm comes with binds for software.<br>These must be installed by default but you can change what software is required by editing &#39;options.h&#39; and running &#39;make clean install&#39;.<br>You can also remove keybinds by editing &#39;keybinds.h&#39; and running &#39;make clean install&#39;.</p>
</li>
<li>st (Terminal)</li>
<li>firefox (Web browser)</li>
<li>htop (Status monitor)</li>
<li>newsboat (RSS reader)</li>
<li>zathura (PDF reader)</li>
<li>alsa-utils (Required for audio controls)</li>
<li>cmus (Default music player)</li>
<li>neovim (Text editor)</li>
<li>aerc (Email client)</li>
<li>maim (Screenshot tool, automatically copies to clipboard using xclip)</li>
<li>vifm (File manager)</li>
<li>slock (Lock screen)<br>And everything under &#39;Features&#39;.</li>
</ul>
<h2 id="important">Important</h2>
<p>If you&#39;re used to dwm, speedwm might be a little unfamiliar to you at first. This is because speedwm doesn&#39;t use config.h (or config.def.h).<br>Instead, config.h is split into different parts to make it easier to edit. Instead of editing config.h you&#39;ll want to edit:</p>
<ul>
<li>autostart.h for starting stuff right before speedwm (For example xclip, pywal, etc.)</li>
<li>options.h for changing colors and applications to use with keybinds.</li>
<li>fsignal.h for adding fake signals</li>
<li>colors.h for changing alpha options, most users won&#39;t need to edit it.</li>
<li>xresources.h for adding .Xresources options</li>
<li>rules.h for adding rules</li>
<li>keybinds.h for adding/removing keybinds.</li>
</ul>
<p>After you&#39;ve edited one of the files, you need to run &#39;make clean install&#39; to reinstall speedwm.<br>Remember that you can change colors through your .Xresources file (see .Xresources and Pywal) meaning you do not need to recompile speedwm.</p>
<p>Another important detail you must keep in mind is that this build comes with a status bar simply named &#39;status&#39;.<br>It can be found in the speedwm source code directory. It is just a shell script which adds stuff to your status bar. It will automatically be started when speedwm starts.</p>
<p>You can edit the status bar simply by editing &#39;status&#39; and running &#39;make clean install&#39;.<br>You can also configure it by editing &#39;~/.config/speedwm-de/status/config&#39;.<br>Please note that most status bars including the built in &#39;status&#39; depends on xsetroot which must be installed. speedwm-compatcheck is going to tell you about this when compiling.</p>
<p>If you want to change status bar, edit options.h and set &#39;static char status&#39; to your status bar binary (must be in $PATH).<br>Alternatively, you can also set speedwm.status: &lt;statusbar&gt; in .Xresources (See .Xresources and Pywal)</p>
<h2 id="-xresources-and-pywal">.Xresources and Pywal</h2>
<p>This fork of speedwm has .Xresources support thanks to the .Xresources patch.<br>It also has pywal support (tool which grabs colors based on your wallpaper).</p>
<p>Colors reload automagically because of a reloadxresources function this build has combined with fsignal and a wallpaper script I wrote.<br>Therefore, if you want colors to reload instantly, you&#39;re unfortunately forced to use the bundled wallpaper script.</p>
<p>If you want to use another script, you can open up speedwm-utils and select &#39;Reload .Xresources&#39; to reload .Xresources.<br>Alternatively, you can write a script yourself (18 reloads the colors)</p>
<p>Below is a list of all .Xresources values you can define. The .Xresources file should be placed in ~ or ~/.config by the user.<br>If it is not or you want it somewhere else, you can edit &#39;autostart.h&#39; and &#39;make clean install&#39;.</p>
<p>Note that the &#39;xrdb&#39; dependency is required for both pywal and .Xresources support and &#39;xsetroot&#39; is required for automatic reloading of colors, the built in status bar, and more so you should install this.</p>
<ul>
<li>speedwm.font: fontawesome:size=8</li>
<li>speedwm.font2: NotoSans-Regular:size=8:antialiasing=true</li>
<li>speedwm.font3: Noto Emoji:size=8</li>
<li>speedwm.col_background: #222222</li>
<li>speedwm.col_backgroundmid: #222222</li>
<li>speedwm.col_textnorm: #bbbbbb</li>
<li>speedwm.col_textsel: #eeeeee</li>
<li>speedwm.col_windowbordersel: #eeeeee</li>
<li>speedwm.col_windowbordernorm: #000000</li>
<li>speedwm.col_tag1: #333333</li>
<li>speedwm.col_tag1_text: #eeeeee</li>
<li>speedwm.col_tag2: #333333</li>
<li>speedwm.col_tag2_text: #eeeeee</li>
<li>speedwm.col_tag3: #333333</li>
<li>speedwm.col_tag3_text: #eeeeee</li>
<li>speedwm.col_tag4: #333333</li>
<li>speedwm.col_tag4_text: #eeeeee</li>
<li>speedwm.col_tag5: #333333</li>
<li>speedwm.col_tag5_text: #eeeeee</li>
<li>speedwm.col_tag6: #333333</li>
<li>speedwm.col_tag6_text: #eeeeee</li>
<li>speedwm.col_tag7: #333333</li>
<li>speedwm.col_tag7_text: #eeeeee</li>
<li>speedwm.col_tag8: #333333</li>
<li>speedwm.col_tag8_text: #eeeeee</li>
<li>speedwm.col_tag9: #333333</li>
<li>speedwm.col_tag9_text: #eeeeee</li>
<li>speedwm.col_layouttext: #000000</li>
<li>speedwm.col_layoutbgnorm: #222222</li>
<li>speedwm.col_layoutbgsel: #bbbbbb</li>
<li>speedwm.col_status0: #131210</li>
<li>speedwm.col_status1: #bf616a</li>
<li>speedwm.col_status2: #A16F9D</li>
<li>speedwm.col_status3: #68ABAA</li>
<li>speedwm.col_status4: #A89F93</li>
<li>speedwm.col_status5: #D3A99B</li>
<li>speedwm.col_status6: #AFC9AC</li>
<li>speedwm.col_status7: #eae1cb</li>
<li>speedwm.col_status8: #a39d8e</li>
<li>speedwm.col_status9: #6D5E8E</li>
<li>speedwm.col_status10: #A16F9D</li>
<li>speedwm.col_status11: #D3A99B</li>
<li>speedwm.col_status12: #AFC9AC</li>
<li>speedwm.col_status13: #eae1cb</li>
<li>speedwm.col_status14: #6D5E8E</li>
<li>speedwm.col_status15: #ffffff</li>
<li>speedwm.borderpx: 1</li>
<li>speedwm.snap: 20</li>
<li>speedwm.showbar: 1</li>
<li>speedwm.resizehints: 0</li>
<li>speedwm.mousemfact: 1</li>
<li>speedwm.mfact: 0.50</li>
<li>speedwm.startontag: 1</li>
<li>speedwm.clicktofocus: 0</li>
<li>speedwm.focusspawn: 0</li>
<li>speedwm.enablegaps: 1</li>
<li>speedwm.smartgaps: 0</li>
<li>speedwm.smartgapsize: 0</li>
<li>speedwm.gappih: 10</li>
<li>speedwm.gappiv: 10</li>
<li>speedwm.gappoh: 10</li>
<li>speedwm.gappov: 10</li>
<li>speedwm.attachdirection: 3</li>
<li>speedwm.shell: /bin/sh</li>
<li>speedwm.sizeicon: 10</li>
<li>speedwm.spacingicon: 5</li>
<li>speedwm.status: status</li>
<li>speedwm.defaultname:</li>
<li>speedwm.refreshrules: 1</li>
<li>speedwm.decorhints: 1</li>
<li>speedwm.barpaddingv: 5</li>
<li>speedwm.barpaddingh: 5 </li>
<li>speedwm.barheight: 5</li>
<li>speedwm.centerfloating: 1</li>
<li>speedwm.savefloat: 1</li>
<li>speedwm.warpcursor: 1</li>
<li>speedwm.pertag: 1</li>
<li>speedwm.i3nmaster: 0</li>
<li>speedwm.tagpreview: 1</li>
<li>speedwm.tagpreviewpaddingv: 0</li>
<li>speedwm.tagpreviewpaddingh: 0</li>
<li>speedwm.mousepreview: 1</li>
<li>speedwm.barpreview: 0</li>
<li>speedwm.scalepreview: 4</li>
<li>speedwm.monocleclientcount: 0</li>
<li>speedwm.monoclecount: 0</li>
<li>speedwm.monocleformat: [%d/%d]</li>
<li>speedwm.statusallmons: 1</li>
<li>speedwm.hidelayout: 0</li>
<li>speedwm.hidetitle: 0</li>
<li>speedwm.hideicon: 0</li>
<li>speedwm.hidestatus: 0</li>
<li>speedwm.hidetags: 0</li>
<li>speedwm.hidesticky: 0</li>
<li>speedwm.hidefloating: 0</li>
<li>speedwm.leftlayout: 1</li>
<li>speedwm.fadeinactive: 1</li>
<li>speedwm.defaultlayout: 1</li>
<li>speedwm.wmclass: 1</li>
<li>speedwm.stairpx: 20</li>
<li>speedwm.stairdirection: 1</li>
<li>speedwm.stairsamesize: 1</li>
<li>speedwm.deckcount: 0</li>
<li>speedwm.deckformat: D %d</li>
<li>speedwm.roundedcorners: 0</li>
<li>speedwm.cornerradius: 3</li>
<li>speedwm.swallowclients: 1</li>
<li>speedwm.swallowfloating: 1</li>
<li>speedwm.movefullscreenmon: 0</li>
<li>speedwm.lockfullscreen: 1</li>
<li>speedwm.fullscreenhidebar: 1</li>
<li>speedwm.underline: 0</li>
<li>speedwm.underlineall: 0</li>
<li>speedwm.underlinepad: 5</li>
<li>speedwm.underlinestroke: 2</li>
<li>speedwm.underlinevoffset: 0</li>
<li>speedwm.forcevsplit: 1</li>
<li>speedwm.floatscratchpad: 0</li>
<li>speedwm.nmaster: 1</li>
</ul>
<h2 id="fsignal">Fsignal</h2>
<p>Thanks to the &#39;fsignal&#39; patch available on suckless.org&#39;s website, we can easily write shell scripts to interact with dwm and therefore speedwm.<br>This is exactly what I did and speedwm-utils, speedwm-swal, speedwm-shutdown and more take advantage of it.</p>
<p>In order to use &#39;fsignal&#39;, your system must have &#39;xsetroot&#39; installed.<br>Then simply use the dwm-utils script. Syntax is dwm-utils -exec &lt;signum&gt;</p>
<p>Below is a list of all signums and what they do.</p>
<ul>
<li>1 | Switch to the Tiling layout</li>
<li>2 | Switch to the Floating layout</li>
<li>3 | Switch to the Monocle layout</li>
<li>4 | Switch to the Grid layout</li>
<li>5 | Switch to the Deck layout</li>
<li>6 | Switch to the Centered Master layout</li>
<li>7 | Switch to the Centered Floating Master layout</li>
<li>8 | Switch to the Fibonacci Spiral layout</li>
<li>9 | Switch to the Fibonacci Dwindle layout</li>
<li>10 | Switch to the Three Column layout</li>
<li>11 | Switch to the Bottom Stack Vertical layout</li>
<li>12 | Switch to the Bottom Stack Horizontal layout</li>
<li>13 | Switch to the Horizontal Grid layout</li>
<li>14 | Switch to the Tatami layout</li>
<li>15 | To be added</li>
<li>16 | Cycle layout (Previous)</li>
<li>17 | Cycle layout (Next)</li>
<li>18 | Reload colors from .Xresources</li>
<li>19 | Set mfact (-0.05)</li>
<li>20 | Set mfact (+0.05)</li>
<li>21 | Toggle Scratchpad</li>
<li>22 | Toggle Sticky</li>
<li>23 | Toggle Bar</li>
<li>24 | Toggle Fullscreen</li>
<li>25 | Restart speedwm keeping all your applications open.</li>
<li>26 | Unused at the moment.</li>
<li>27 | Switch to the Stairs layout</li>
<li>28 | Reset layout and mfact</li>
<li>29 | Reorganize tags</li>
<li>30 | Restart speedwm</li>
<li>31 | Shutdown speedwm</li>
<li>32 | To be added</li>
<li>33 | To be added</li>
<li>34 | To be added</li>
<li>35 | Switch to the Tiling (5:4) layout</li>
<li>36 | Switch to the Column layout</li>
<li>37 | Switch to the Dynamic Grid layout</li>
</ul>
<h2 id="switching-run-launcher">Switching run launcher</h2>
<p>Some users may prefer to use a different run launcher than dmenu.<br>Previously all scripts bundled would only run dmenu from $PATH but you can now switch run launcher very easily.</p>
<ul>
<li>Edit options.h and change RUN to your run launcher</li>
<li>Add export RUNLAUNCHER=&lt;runlauncher&gt; to your .&lt;shell&gt;rc</li>
</ul>
<p>Run launchers must support dmenu arguments because otherwise scripts are going to be incompatible.<br>It must also support the additional &#39;-g&#39; argument that the dmenu grid patch provides unless you modify the scripts bundled.<br>Keep in mind that if you use a different run launcher, it may not support Pywal/.Xresources.</p>