update speedwm.php

This commit is contained in:
speedie 2022-11-27 12:21:02 +01:00
parent ede4a53ced
commit e7981a3d0d

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<?php include '../php/header.php';?>
<?php include '/php/header.php';?>
<title>speedwm</title>
<meta charset="UTF-8">
<meta name="description" content="speedie's fork of suckless.org's dwm">
@ -12,7 +12,7 @@
</head>
<body>
<div class="content">
<p><img src="preview.png" alt="image"></p>
<h1 id="speedwm">speedwm</h1>
<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). </p>
<p>Just like dwm, speedwm also tries to be minimal 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>
@ -23,11 +23,11 @@
<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>
<li>If any warnings/errors 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>If you do not have a .xinitrc, you can add autostart commands to the file ~/.config/speedwm/autostart.sh or autostart-once.sh. speedwm-autostart in $PATH will also work.</li>
<li>If a .xinitrc is used, add &#39;speedwm&#39; to the end.<ul>
<li>If you do not have a .xinitrc, you can add autostart commands to the file ~/.config/speedwm/autostart.sh.</li>
</ul>
</li>
</ul>
@ -51,8 +51,7 @@
<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>This is a full list of keybinds.<br>Please let me know if any keybinds are missing as these have been manually added.</p>
<h3 id="applications">Applications</h3>
<p> Keybinds for regular applications</p>
<p>Keybinds for regular applications</p>
<ul>
<li>Super+Shift+Enter - Opens the defined terminal (default is st)</li>
<li>Super+Shift+Colon - Opens a dmenu prompt</li>
@ -68,12 +67,11 @@
<li>Super+Shift+c - Opens the defined chat client</li>
<li>Super+Shift+d - Opens iron in the terminal if it is installed</li>
<li>Super+Shift+u - Opens the defined RSS reader</li>
<li><p>Super+Shift+r - Opens the defined email client</p>
<h3 id="navigation">Navigation</h3>
<li>Super+Shift+r - Opens the defined email client</li>
</ul>
<p>These keybinds are for navigating speedwm</p>
</li>
<li><p>Super+f - Fullscreen the selected window</p>
</li>
<ul>
<li>Super+f - Fullscreen the selected window</li>
<li>Super+b - Show/hide the speedwm bar</li>
<li>Super+s - Show/hide the systray</li>
<li>Super+j/k - Move focus between visible windows</li>
@ -135,7 +133,7 @@
<li>Super+Control+j/k - Move focus between hidden windows (Can then &#39;Show&#39;)</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+h - Open the man page for speedwm in dmenu.</li>
<li>Super+Control+o - Show a hidden focused window</li>
<li>Super+Control+a/d - Move to the next/previous tag</li>
<li>Super+Control+Shift+o - Show all hidden windows</li>
@ -163,12 +161,11 @@
<li>Super+Control+Shift+r - Restart speedwm</li>
<li>Super+Control+Shift+j/k - Change window size vertically (cfact)</li>
<li>Super+Control+Shift+Equal - Increase bar height by 1</li>
<li><p>Super+Control+Shift+Minus - Decrease bar height by 1</p>
<h3 id="chained-keybinds">Chained keybinds</h3>
</li>
<li><p>Super+r &amp; s - Run screenkey if it is installed</p>
</li>
<li>Super+r &amp; d - Kill screenkey</li>
<li>Super+Control+Shift+Minus - Decrease bar height by 1</li>
</ul>
<p>Chained keybinds</p>
<ul>
<li>Super+r &amp; s - Run screenkey if it is installed Super+r &amp; d - Kill screenkey</li>
<li>Super+t &amp; r - Reorganize tags and move windows</li>
<li>Super+t &amp; t - Toggle tag area in the bar</li>
<li>Super+t &amp; y - Toggle empty tag area in the bar</li>
@ -210,12 +207,11 @@
<li>Super+Shift+e &amp; e - Open a list of all emojis and copy the selection</li>
<li>Super+Shift+e &amp; r - Randomize wallpaper</li>
<li>Super+Shift+e &amp; p - Set wallpaper to the previous</li>
<li><p>Super+Shift+k &amp; o - Kill every window except the focused</p>
<h3 id="extras">Extras</h3>
<li>Super+Shift+k &amp; o - Kill every window except the focused</li>
</ul>
<p>These will only work if your keyboard has special multimedia buttons.</p>
</li>
<li><p>Mute button - Mutes your audio</p>
</li>
<ul>
<li>Mute button - Mutes your audio</li>
<li>Up Volume button - Increases your volume</li>
<li>Next/Previous song button - Switch to the next/previous track </li>
<li>Down Volume button - Decreases your volume</li>
@ -226,12 +222,11 @@
<li>Email button - Open your defined email client</li>
<li>System button - Open your defined status viewer in a terminal</li>
<li>Music button - Open your defined music player</li>
<li><p>WLAN button - Disconnect from WLAN (requires speedwm-extras)</p>
<h3 id="mouse">Mouse</h3>
<li>WLAN button - Disconnect from WLAN (requires speedwm-extras)</li>
</ul>
<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>
<ul>
<li>Tag &lt;num&gt; (Left click) - Switch to tag &lt;num&gt;</li>
<li>Tag (Scrolling up/down) - Switch to the next/previous tag</li>
<li>Layout indicator (Left click) - Switch to the next layout</li>
<li>Layout indicator (Middle click) - Switch to the previous layout</li>
@ -246,7 +241,7 @@
<li>Root window (Right click) - List .desktop entries and open them (requires j4-dmenu-desktop)</li>
</ul>
<h2 id="dependencies">Dependencies</h2>
<p> These are absolutely necessary, speedwm will NOT compile without them</p>
<p>These are absolutely necessary, speedwm will NOT compile without them</p>
<ul>
<li>libxft</li>
<li>pango</li>
@ -262,15 +257,15 @@
<li>Required for the IPC patch. If the IPC patch is disabled, you do not need this.</li>
</ul>
</li>
<li><p>tcc</p>
<ul>
<li>tcc<ul>
<li>Very minimal C compiler that speedwm uses to speed up compile times. If you don&#39;t want this dependency, edit host.mk and set CC to &#39;cc&#39; (or what you prefer).</li>
</ul>
</li>
</ul>
<h2 id="features">Features</h2>
<p>These are necessary for certain features and keybinds.<br>If you want to use an alternative, change it in options.h and/or keybinds.h and mouse.h.</p>
</li>
<li><p>dmenu</p>
<ul>
<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>
</ul>
</li>
@ -280,15 +275,16 @@
</li>
<li>xrdb (Install if you want .Xresources support)</li>
<li>pywal (Install if you want pywal support. Requires swal (the default way to set wallpapers) or a tool that supports the correct signal for instant reloading)</li>
<li><p>j4-dmenu-desktop</p>
<ul>
<li>j4-dmenu-desktop<ul>
<li>Required for dmenu desktop entries..</li>
</ul>
</li>
</ul>
<h2 id="software">Software</h2>
<p>This build of speedwm comes with binds for software.<br>You can add, change and remove keybinds by editing &#39;keybinds.h&#39; and running &#39;make clean install&#39;.</p>
</li>
<li><p>speedwm-extras</p>
<ul>
<li>libspeedwm</li>
<li>speedwm-extras<ul>
<li>Important metapackage containing extra scripts that speedwm makes use of. (<a href="https://codeberg.org/speedie/speedwm-extras">https://codeberg.org/speedie/speedwm-extras</a>)</li>
</ul>
</li>
@ -306,10 +302,9 @@
<li>lf (File manager)</li>
<li>slock (Lock screen)</li>
<li>weechat (IRC client)</li>
<li><p>tmux (Used for the music player and IRC client)</p>
<p>And everything under &#39;Features&#39;.</p>
</li>
<li>tmux (Used for the music player and IRC client)</li>
</ul>
<p>And everything under &#39;Features&#39;.</p>
<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>
@ -331,19 +326,20 @@
<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 it 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. It also has pywal support (tool which grabs colors based on your wallpaper).</p>
<p>Colors can be reloaded on-the-fly using the built in wallpaper utility. In order to implement speedwm reloading support to your own wallpaper utility, run shell command (/bin/sh) &#39;speedwm_run -r&#39; to reload colors automatically.</p>
<p>Note that the &#39;xrdb&#39; dependency is required for both pywal and .Xresources support.</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. However ~/.config/speedwm/speedwmrc should be created automatically, which can (and should most of the time) be used instead.</p>
<p>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>Colors do not reload automatically though, you must reload them manually. Use a signal for this (See list of signals above) or simply &#39;libspeedwm --perform core_wm_reload&#39;.</p>
<p>To use .Xresources, make sure &#39;xrdb&#39; is installed. If a .xinitrc is used, add &#39;xrdb /path/to/.Xresources/file&#39; before &#39;speedwm&#39;. If a .Xresources file is not used, add it to ~/.config/speedwm/autostart.sh instead.</p>
<p>If you don&#39;t want to define the options manually, there is an example .Xresources file containing speedwm default settings in docs/example.Xresources. You can copy this somewhere or you can simply &#39;&lt; docs/example.Xresources &gt;&gt; ~/.Xresources&#39; to append the speedwm options to your .Xresources file.</p>
<p>The magic of .Xresources is that it is a universal configuration file. While you <em>can</em> use the col.value values, you can also use traditional colors 0 through 15 as well. These colors take priority over regular speedwm colors. This is so that speedwm is compatible with Pywal and more general/mainstream .Xresources configurations.</p>
<p>Below is a list of all .Xresources values you can define.</p>
<ul>
<li>speedwm.bar.height: 4 </li>
<li>speedwm.bar.height: 4 </li>
<li>speedwm.bar.position: 1 </li>
<li>speedwm.bar.paddingh: 10 </li>
<li>speedwm.bar.paddingv: 10 </li>
<li>speedwm.bar.hide: 0 </li>
<li>speedwm.bar.hide.tags: 0 </li>
<li>speedwm.bar.hide.emptytags: 1 </li>
<li>speedwm.bar.hide.powerlinetags: 0 </li>
<li>speedwm.bar.hide.powerlinetags: 0 </li>
<li>speedwm.bar.hide.powerlinetitle: 0 </li>
<li>speedwm.bar.hide.floating: 0 </li>
<li>speedwm.bar.hide.layout: 0 </li>
@ -358,9 +354,9 @@
<li>speedwm.border.cornerradius: 2 </li>
<li>speedwm.border.size: 1 </li>
<li>speedwm.client.allowurgent: 1 </li>
<li>speedwm.client.automove: 0 </li>
<li>speedwm.client.autofocus: 0 </li>
<li>speedwm.client.autoresize: 0 </li>
<li>speedwm.client.automove: 1 </li>
<li>speedwm.client.autofocus: 1 </li>
<li>speedwm.client.autoresize: 1 </li>
<li>speedwm.client.decorhints: 1 </li>
<li>speedwm.client.fade.inactive: 1 </li>
<li>speedwm.client.fade.windows: 1 </li>
@ -419,7 +415,7 @@
<li>speedwm.col.windowborderurg: #f0e68c</li>
<li>speedwm.color.hiddentitle: 1 </li>
<li>speedwm.color.layout: 0 </li>
<li>speedwm.color.selectedtitle: 0 </li>
<li>speedwm.color.selectedtitle: 1 </li>
<li>speedwm.bar.powerline.tag.shape: 0 </li>
<li>speedwm.bar.powerline.title.shape: 1 </li>
<li>speedwm.cursor.warp: 1 </li>
@ -444,17 +440,16 @@
<li>speedwm.mfact: 0.50 </li>
<li>speedwm.mfact.lowest: 0.05 </li>
<li>speedwm.mouse.clicktofocus: 0 </li>
<li>speedwm.mouse.mfact: 1 </li>
<li>speedwm.mouse.mfact: 1 </li>
<li>speedwm.mouse.cfact: 1 </li>
<li>speedwm.mouse.mousepreview: 1 </li>
<li>speedwm.rule.refresh: 1 </li>
<li>speedwm.rule.refresh: 0 </li>
<li>speedwm.stack.attachdirection: 3 </li>
<li>speedwm.stack.centerfloating: 1 </li>
<li>speedwm.stack.i3mcount: 0 </li>
<li>speedwm.stack.mastercount: 1 </li>
<li>speedwm.stack.snap: 20 </li>
<li>speedwm.status.defaultstatus:</li>
<li>speedwm.status.status: speedwm_status</li>
<li>speedwm.status.statusallmons: 1 </li>
<li>speedwm.switcher.maxheight: 200 </li>
<li>speedwm.switcher.maxwidth: 600 </li>
@ -602,23 +597,20 @@
<li>112 - Mirror the layout</li>
<li>113 - Enter an empty layout where all clients are hidden</li>
</ul>
<h2 id="maintaining-settings-easily">Maintaining settings easily</h2>
<p>speedwm is a personal fork of dwm and will therefore likely have keybinds and other options you may not like.</p>
<p>Because of this, I recommend that you use the patching system to manage your &quot;custom&quot; settings. speedwm has a patching system. It allows you to create a patch with your changes to most of the headers.</p>
<p>To create a patch, simply make clean install once and then the docs folder will contain backups of your source code. If you perform changes to any of these four files, run make patch to create patches against the backups in docs and your modified files. Then once you&#39;re updating, do make patch_remove, git pull, make patch_install, and make clean install and all your settings will be there.</p>
<p>The only (obvious) problem with doing this is that eventually the backup files patches are being created against will be pretty old causing patches to no longer apply correctly. If this is the case you will need to create new patches and backups.</p>
<p>If this seems like more effort than it is worth, maintaining your own fork is always an option. This allows you to perform any options you want yourself. This however doesn&#39;t allow you to grab any updates so this should be your second choice.</p>
<p>Another option, if you use Gentoo, you can add my overlay and install speedwm using the &#39;savedconfig&#39; USE flag. This USE flag will combine all the headers into one and will be placed in /etc/portage/savedconfig/x11-wm/speedwm-version. To use the settings, simply emerge speedwm again.</p>
<h2 id="status-bar">Status bar</h2>
<p>speedwm has a status bar. It&#39;s the right part of the bar. It supports Pango, status2d and statuscmd markup as well as regular plain text and colored emojis or glyphs. To override this status, you can use the &#39;speedwm -s &lt;status&gt;&#39; command.</p>
<p>Bundled with speedwm is a fork of dwmblocks. dwmblocks is a dwm status bar that handles this all for you through a block system. This fork has been integrated into the Makefile and is (by default) installed when speedwm is compiled. The status bar can be configured in the status.c and status.h and clickability can be configured in statusbar.h.</p>
<p>By default the status bar runs modules that are also bundled with speedwm (see modules/ directory). To configure these modules, you can edit ~/.config/speedwm/statusrc which should be created when a module runs.</p>
<p>The bundled status bar is autostarted by speedwm if it is installed. If you want to use your own status bar, comment out &#39;USESTATUS&#39; in toggle.mk and remove /usr/bin/status if speedwm has been installed previously. Then simply start the status bar through autostart.h, ~/.config/speedwm/autostart.sh or .xinitrc if you are using that.</p>
<h2 id="additional-note-on-autostart">Additional note on autostart</h2>
<p>If you wish to add autostart entries without recompiling, consider using $HOME/.config/speedwm/autostart.sh. This is a path added to autostart.h and you can fill it with anything you want. You can also use speedwm-autostart. This is a binary that will be executed if it is in $PATH.</p>
<p>Do note that it will NOT just run once. It will run every time you restart and start speedwm (signals count as well).<br>To get around this, you may wrap stuff in a function in the script and have some way of checking if it has ran before. If it hasn&#39;t, call the function.</p>
<p>An alternative is to use the $HOME/.config/speedwm/autostart_once.sh path. This one is autostarted by speedwm_run and is therefore not hardcoded and not affected by speedwm restarting. Just like the previous autostart script, it does not exist so you need to create it.</p>
<p>If you wish to add autostart entries without recompiling, consider using $HOME/.config/speedwm/autostart.sh. This is a path added to autostart.h and you can fill it with anything you want.</p>
<p>Do note that it will NOT just run once. It will run every time you restart and start speedwm (restart signals count as well, color reloads do not).<br>To get around this, you may wrap stuff in a function in the script and have some way of checking if it has ran before such as pgrep. If it hasn&#39;t, call the function.</p>
<h2>Auto generated.</h2>
<p>This page was auto generated by the speedwm-help script bundled with speedwm. It acts as the help script and it writes documentation to HTML, Markdown and plain text from documentation in the docs folder and data grabbed from your current system.</p>
</div>
</body>
<footer>
<?php include '../php/footer.php';?>
<?php include '/php/footer.php';?>
</footer>
</html>