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> <!DOCTYPE html>
<html> <html>
<head> <head>
<?php include '../php/header.php';?> <?php include '/php/header.php';?>
<title>speedwm</title> <title>speedwm</title>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="description" content="speedie's fork of suckless.org's dwm"> <meta name="description" content="speedie's fork of suckless.org's dwm">
@ -12,7 +12,7 @@
</head> </head>
<body> <body>
<div class="content"> <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> <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>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> <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>git clone <a href="https://codeberg.org/speedie/speedwm">https://codeberg.org/speedie/speedwm</a></li>
<li>cd speedwm</li> <li>cd speedwm</li>
<li>make clean install<ul> <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> </ul>
</li> </li>
<li>If a .xinitrc is used, add &#39;speedwm_run&#39; to the end.<ul> <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 or autostart-once.sh. speedwm-autostart in $PATH will also work.</li> <li>If you do not have a .xinitrc, you can add autostart commands to the file ~/.config/speedwm/autostart.sh.</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -51,7 +51,6 @@
<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> <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> <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> <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> <ul>
<li>Super+Shift+Enter - Opens the defined terminal (default is st)</li> <li>Super+Shift+Enter - Opens the defined terminal (default is st)</li>
@ -68,12 +67,11 @@
<li>Super+Shift+c - Opens the defined chat client</li> <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+d - Opens iron in the terminal if it is installed</li>
<li>Super+Shift+u - Opens the defined RSS reader</li> <li>Super+Shift+u - Opens the defined RSS reader</li>
<li><p>Super+Shift+r - Opens the defined email client</p> <li>Super+Shift+r - Opens the defined email client</li>
<h3 id="navigation">Navigation</h3> </ul>
<p>These keybinds are for navigating speedwm</p> <p>These keybinds are for navigating speedwm</p>
</li> <ul>
<li><p>Super+f - Fullscreen the selected window</p> <li>Super+f - Fullscreen the selected window</li>
</li>
<li>Super+b - Show/hide the speedwm bar</li> <li>Super+b - Show/hide the speedwm bar</li>
<li>Super+s - Show/hide the systray</li> <li>Super+s - Show/hide the systray</li>
<li>Super+j/k - Move focus between visible windows</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+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+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+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+o - Show a hidden focused window</li>
<li>Super+Control+a/d - Move to the next/previous tag</li> <li>Super+Control+a/d - Move to the next/previous tag</li>
<li>Super+Control+Shift+o - Show all hidden windows</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+r - Restart speedwm</li>
<li>Super+Control+Shift+j/k - Change window size vertically (cfact)</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>Super+Control+Shift+Equal - Increase bar height by 1</li>
<li><p>Super+Control+Shift+Minus - Decrease bar height by 1</p> <li>Super+Control+Shift+Minus - Decrease bar height by 1</li>
<h3 id="chained-keybinds">Chained keybinds</h3> </ul>
</li> <p>Chained keybinds</p>
<li><p>Super+r &amp; s - Run screenkey if it is installed</p> <ul>
</li> <li>Super+r &amp; s - Run screenkey if it is installed Super+r &amp; d - Kill screenkey</li>
<li>Super+r &amp; d - Kill screenkey</li>
<li>Super+t &amp; r - Reorganize tags and move windows</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; t - Toggle tag area in the bar</li>
<li>Super+t &amp; y - Toggle empty 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; 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; r - Randomize wallpaper</li>
<li>Super+Shift+e &amp; p - Set wallpaper to the previous</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> <li>Super+Shift+k &amp; o - Kill every window except the focused</li>
<h3 id="extras">Extras</h3> </ul>
<p>These will only work if your keyboard has special multimedia buttons.</p> <p>These will only work if your keyboard has special multimedia buttons.</p>
</li> <ul>
<li><p>Mute button - Mutes your audio</p> <li>Mute button - Mutes your audio</li>
</li>
<li>Up Volume button - Increases your volume</li> <li>Up Volume button - Increases your volume</li>
<li>Next/Previous song button - Switch to the next/previous track </li> <li>Next/Previous song button - Switch to the next/previous track </li>
<li>Down Volume button - Decreases your volume</li> <li>Down Volume button - Decreases your volume</li>
@ -226,12 +222,11 @@
<li>Email button - Open your defined email client</li> <li>Email button - Open your defined email client</li>
<li>System button - Open your defined status viewer in a terminal</li> <li>System button - Open your defined status viewer in a terminal</li>
<li>Music button - Open your defined music player</li> <li>Music button - Open your defined music player</li>
<li><p>WLAN button - Disconnect from WLAN (requires speedwm-extras)</p> <li>WLAN button - Disconnect from WLAN (requires speedwm-extras)</li>
<h3 id="mouse">Mouse</h3> </ul>
<p>These binds can be activated using your mouse</p> <p>These binds can be activated using your mouse</p>
</li> <ul>
<li><p>Tag &lt;num&gt; (Left click) - Switch to tag &lt;num&gt;</p> <li>Tag &lt;num&gt; (Left click) - Switch to tag &lt;num&gt;</li>
</li>
<li>Tag (Scrolling up/down) - Switch to the next/previous tag</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 (Left click) - Switch to the next layout</li>
<li>Layout indicator (Middle click) - Switch to the previous layout</li> <li>Layout indicator (Middle click) - Switch to the previous layout</li>
@ -262,15 +257,15 @@
<li>Required for the IPC patch. If the IPC patch is disabled, you do not need this.</li> <li>Required for the IPC patch. If the IPC patch is disabled, you do not need this.</li>
</ul> </ul>
</li> </li>
<li><p>tcc</p> <li>tcc<ul>
<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> <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> </ul>
</li>
</ul>
<h2 id="features">Features</h2> <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> <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> <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> <li>NOTE: dmenu is required for most scripts included with this build of speedwm. My build is required for proper Pywal support.</li>
</ul> </ul>
</li> </li>
@ -280,15 +275,16 @@
</li> </li>
<li>xrdb (Install if you want .Xresources support)</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>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> <li>j4-dmenu-desktop<ul>
<ul>
<li>Required for dmenu desktop entries..</li> <li>Required for dmenu desktop entries..</li>
</ul> </ul>
</li>
</ul>
<h2 id="software">Software</h2> <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> <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> <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> <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> </ul>
</li> </li>
@ -306,10 +302,9 @@
<li>lf (File manager)</li> <li>lf (File manager)</li>
<li>slock (Lock screen)</li> <li>slock (Lock screen)</li>
<li>weechat (IRC client)</li> <li>weechat (IRC client)</li>
<li><p>tmux (Used for the music player and IRC client)</p> <li>tmux (Used for the music player and IRC client)</li>
<p>And everything under &#39;Features&#39;.</p>
</li>
</ul> </ul>
<p>And everything under &#39;Features&#39;.</p>
<h2 id="important">Important</h2> <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> <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> <ul>
@ -331,10 +326,11 @@
<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> <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> <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>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>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>Note that the &#39;xrdb&#39; dependency is required for both pywal and .Xresources support.</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>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 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>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>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> <ul>
<li>speedwm.bar.height: 4 </li> <li>speedwm.bar.height: 4 </li>
<li>speedwm.bar.position: 1 </li> <li>speedwm.bar.position: 1 </li>
@ -358,9 +354,9 @@
<li>speedwm.border.cornerradius: 2 </li> <li>speedwm.border.cornerradius: 2 </li>
<li>speedwm.border.size: 1 </li> <li>speedwm.border.size: 1 </li>
<li>speedwm.client.allowurgent: 1 </li> <li>speedwm.client.allowurgent: 1 </li>
<li>speedwm.client.automove: 0 </li> <li>speedwm.client.automove: 1 </li>
<li>speedwm.client.autofocus: 0 </li> <li>speedwm.client.autofocus: 1 </li>
<li>speedwm.client.autoresize: 0 </li> <li>speedwm.client.autoresize: 1 </li>
<li>speedwm.client.decorhints: 1 </li> <li>speedwm.client.decorhints: 1 </li>
<li>speedwm.client.fade.inactive: 1 </li> <li>speedwm.client.fade.inactive: 1 </li>
<li>speedwm.client.fade.windows: 1 </li> <li>speedwm.client.fade.windows: 1 </li>
@ -419,7 +415,7 @@
<li>speedwm.col.windowborderurg: #f0e68c</li> <li>speedwm.col.windowborderurg: #f0e68c</li>
<li>speedwm.color.hiddentitle: 1 </li> <li>speedwm.color.hiddentitle: 1 </li>
<li>speedwm.color.layout: 0 </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.tag.shape: 0 </li>
<li>speedwm.bar.powerline.title.shape: 1 </li> <li>speedwm.bar.powerline.title.shape: 1 </li>
<li>speedwm.cursor.warp: 1 </li> <li>speedwm.cursor.warp: 1 </li>
@ -447,14 +443,13 @@
<li>speedwm.mouse.mfact: 1 </li> <li>speedwm.mouse.mfact: 1 </li>
<li>speedwm.mouse.cfact: 1 </li> <li>speedwm.mouse.cfact: 1 </li>
<li>speedwm.mouse.mousepreview: 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.attachdirection: 3 </li>
<li>speedwm.stack.centerfloating: 1 </li> <li>speedwm.stack.centerfloating: 1 </li>
<li>speedwm.stack.i3mcount: 0 </li> <li>speedwm.stack.i3mcount: 0 </li>
<li>speedwm.stack.mastercount: 1 </li> <li>speedwm.stack.mastercount: 1 </li>
<li>speedwm.stack.snap: 20 </li> <li>speedwm.stack.snap: 20 </li>
<li>speedwm.status.defaultstatus:</li> <li>speedwm.status.defaultstatus:</li>
<li>speedwm.status.status: speedwm_status</li>
<li>speedwm.status.statusallmons: 1 </li> <li>speedwm.status.statusallmons: 1 </li>
<li>speedwm.switcher.maxheight: 200 </li> <li>speedwm.switcher.maxheight: 200 </li>
<li>speedwm.switcher.maxwidth: 600 </li> <li>speedwm.switcher.maxwidth: 600 </li>
@ -602,23 +597,20 @@
<li>112 - Mirror the layout</li> <li>112 - Mirror the layout</li>
<li>113 - Enter an empty layout where all clients are hidden</li> <li>113 - Enter an empty layout where all clients are hidden</li>
</ul> </ul>
<h2 id="maintaining-settings-easily">Maintaining settings easily</h2> <h2 id="status-bar">Status bar</h2>
<p>speedwm is a personal fork of dwm and will therefore likely have keybinds and other options you may not like.</p> <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>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>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>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>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 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>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>
<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="additional-note-on-autostart">Additional note on autostart</h2> <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>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 (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>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>
<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>
<h2>Auto generated.</h2> <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> <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> </div>
</body> </body>
<footer> <footer>
<?php include '../php/footer.php';?> <?php include '/php/footer.php';?>
</footer> </footer>
</html> </html>