change statusbar.h and new readme

This commit is contained in:
speediegq 2022-10-15 02:29:27 +02:00
parent 2711bbb8a6
commit 999d08131a
2 changed files with 18 additions and 30 deletions

View file

@ -67,7 +67,7 @@ Please let me know if any keybinds are missing as these have been manually added
These keybinds are for navigating speedwm
- Super+t | Reorganize tags and move clients
- Super+t | Reorganize tags and move windows
- Super+f | Full-screen the selected window
- Super+b | Show/hide the speedwm bar
- Super+s | Show/hide the systray
@ -81,11 +81,11 @@ Please let me know if any keybinds are missing as these have been manually added
- Super+Control+Shift+o | Show all hidden windows
- Super+Control+Shift+p | Hide all windows
- Super+Control+a/d | Move to the next/previous tag
- Super+Control+Shift+z/c | Move to the next/previous tag skipping any without windows open
- Super+Minus | Show the scratchpad
- Super+Equal | Remove the scratchpad
- Super+Enter | Switch order of windows
- Super+Shift+q | Close the current window
- Super+Space | Set layout
- Super+Colon | Open a list of desktop entries in dmenu
- Super+0 | Reset mfact
- Super+r | Reset number of masters
@ -127,9 +127,7 @@ Please let me know if any keybinds are missing as these have been manually added
- Super+Control+q | Mutes your audio
- Super+Control+w | Increases your volume
- Super+Control+e | Decreases your volume
- Super+Control+r | Switch to layout 0 (Tile)
- Super+Control+t | Switch to layout 18 (Dynamic Grid)
- Super+Control+0 | View all windows at once.
- Super+Control+0 | Tag all tags at once.
- Super+Control+Arrow | Moves a window to any corner of your screen (Arrow key)
- Super+Control+Tab | Open a dmenu prompt asking the user what layout to switch to
- Super+Control+h | Open a list of all keybinds in your terminal using less
@ -176,6 +174,8 @@ Please let me know if any keybinds are missing as these have been manually added
- Super+Shift+e & e | Open a list of all emojis and copy the selection
- Super+Shift+k & o | Kill every window except the focused
- Super+t & s | Make the current selected window sticky
- Super+w & r | Randomize wallpaper
- Super+w & p | Set wallpaper to the previous
### Extras
@ -194,7 +194,7 @@ Please let me know if any keybinds are missing as these have been manually added
- Music button | Open your defined music player
- WLAN button | Disconnect from WLAN
### Mouse
-- Mouse --
These binds can be activated using your mouse
@ -242,7 +242,6 @@ Please let me know if any keybinds are missing as these have been manually added
- xrdb (Install if you want .Xresources support)
- pywal (Install if you want pywal support. Requires swal aka the default way to set wallpapers)
- wmctrl (Needed for proper window management)
- xsetroot (Needed for most scripts including Pywal support)
- slock (Required for screen locking)
- If you want to display a message, you need the text patch.
- 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.
@ -274,7 +273,7 @@ Instead, config.h is split into different parts to make it easier to edit. Inste
- autostart.h for starting stuff right before speedwm (For example xclip, pywal, etc.)
- options.h for changing colors and applications to use with keybinds.
- fsignal.h for adding fake signals
- signal.h for adding fake signals
- colors.h for changing alpha options and color options, most users won't need to edit it.
- xresources.h for adding/removing .Xresources options
- rules.h for adding/removing rules
@ -293,27 +292,25 @@ It can be found in the speedwm source code directory. It is just a shell script
You can edit the status bar simply by editing 'status' and running 'make clean install'.
You can also configure it by editing '~/.config/speedwm-de/status/config'.
Please note that most status bars including the built in 'status' depends on xsetroot which must be installed. speedwm-compatcheck is going to tell you about this when compiling.
If you want to change status bar, edit options.h and set 'static char status' to your status bar binary (must be in $PATH).
Alternatively, you can also set speedwm.status: <statusbar> in .Xresources (See .Xresources and Pywal).
Alternatively, you can also set "speedwm.status: <statusbar>" in .Xresources (See .Xresources and Pywal).
## .Xresources and Pywal
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).
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) 'speedwm_run -r' to reload colors automatically.
Note that the 'xrdb' dependency is required for both pywal and .Xresources support and 'xsetroot' is required for automatic reloading of colors, the built in status bar, and more so you should install this.
Note that the 'xrdb' dependency is required for both pywal and .Xresources support.
Below is a list of all .Xresources values you can define. The .Xresources file should be placed in ~ or ~/.config by the user.
If it is not or you want it somewhere else, you can edit 'autostart.h' and 'make clean install'.
## Fsignal
## Signals
Thanks to the 'fsignal' patch available on suckless.org's website, we can easily write shell scripts to interact with dwm and therefore speedwm.
This is exactly what I did and speedwm-utils, speedwm-swal, speedwm-shutdown and more take advantage of it.
I made some changes to this patch, because it has some.. questionable behaviour in my opinion.
In order to use 'fsignal', your system must have 'xsetroot' installed.
Then simply use the dwm-utils script. Syntax is dwm-utils -exec <signum>
To use signals, simply use the speedwm-utils script. Syntax is speedwm-utils -exec <signum>
Below is a list of all signums and what they do.
@ -382,30 +379,21 @@ Below is a list of all signums and what they do.
- 63 | Show all windows
- 64 | Reset mfact
- 65 | Reload .Xresources on the fly
- 66 | Switch to the previous tag, skipping empty tags
- 67 | Switch to the next tag, skipping empty tags
## Switching run launcher
Some users may prefer to use a different run launcher than dmenu.
Previously all scripts bundled would only run dmenu from $PATH but you can now switch run launcher very easily.
- Edit options.h and change RUN to your run launcher
- Add export RUNLAUNCHER=<runlauncher> to your .<shell>rc
- Add "export RUNLAUNCHER=<runlauncher>" to your .<shell>rc
Run launchers must support dmenu arguments because otherwise scripts are going to be incompatible.
It must also support the additional '-g' argument that the dmenu grid patch provides unless you modify the scripts bundled.
Keep in mind that if you use a different run launcher, it may not support Pywal/.Xresources.
## What is up with /usr/share
speedwm occasionally writes files to /usr/share. These files contain information about speedwm.
- The documentation you're reading when you press Ctrl+Alt+h is stored there (as separate files).
- speedwm-bindir is stored there which is a file that contains the path to the binaries on your system.
- speedwm-compositor is stored there which is a file that contains the defined compositor.
- speedwm-layouts is stored there which is a file that contains all available layouts.
These files are pretty important so it is recommended that you do not delete them.
If you do end up deleting them though, you can just make clean install on speedwm again.
## Maintaining settings easily
speedwm is a personal fork of dwm and will therefore likely have keybinds and other options you may not like. Because of this, I recommend that you use the patching system to manage your custom settings
speedwm is a personal fork of dwm and will therefore likely have keybinds and other options you may not like. Because of this, I recommend that you use the patching system to manage your "custom" settings
speedwm has a patching system. It allows you to create a patch with your changes to options.h, options.mk, toggle.h and toggle.mk. 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're updating, do make patch_remove, git pull, make patch_install, and make clean install and all your settings will be there.
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.

View file

@ -4,8 +4,8 @@
*
* It must also be wrapped in a printf. Example:
*
* Invalid: xsetroot -name "\x01This is a test"
* Valid: xsetroot -name "$(printf '\x01This is a test')"
* Invalid: speedwm -s "\x01This is a test"
* Valid: speedwm -s "$(printf '\x01This is a test')"
*
* As for the modules here, they are only compatible with the built-in status bar by default.
* You may add support in your own bar, though.