Massive changes, including documentation to speedwmrc config file

This commit is contained in:
speediegq 2022-09-16 22:13:39 +02:00
parent 3e30a624ef
commit 28a61da73b
11 changed files with 356 additions and 543 deletions

View file

@ -4,6 +4,7 @@
## What is speedwm?
speedwm is a window manager forked from suckless.org's dwm or dynamic window manager. It manages the user's open windows and tiles them according to a set layout (dynamic).
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.
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.
@ -44,6 +45,7 @@ speedwm comes with the following layouts:
They can be switched between using a little menu (See Keybinds for more information) or by right clicking the Layout indicator.
The more commonly used layouts can be switched between using a quick keybind.
Do note that these may be disabled through the toggle.h header.
## Keybinds
Below is a list of all speedwm keybinds.
@ -59,7 +61,6 @@ Below is a list of all speedwm keybinds.
- Super+Shift+w | Opens the defined web browser
- Super+Shift+o | Opens the bundled dfmpeg dmenu script to record your screen.
- Super+Shift+t | Opens the defined editor in your terminal
- Super+Shift+p | Kills the defined web browser
- Super+Shift+m | Kills the defined music player
- Super+Shift+a | Opens the defined mixer in your terminal
- Super+Shift+m | Opens the defined music player
@ -76,7 +77,7 @@ Below is a list of all speedwm keybinds.
- Super+b | Show/hide the speedwm bar
- Super+s | Show/hide the systray (If trayer is installed)
- Super+j/k | Move focus between visible windows
- Super+Space | Moves focus to the Master window (or back if Master is already focused)
- Super+Control+Space | Moves focus to the Master window (or back if Master is already focused)
- Super+Alt+j/k | Increase/decrease gaps between windows in tiling layout by 1
- Super+Alt+u/d | Increase/decrease gaps between windows in tiling layout by 5
- Super+Control+j/k | Move focus between hidden windows (Can then 'Show')
@ -116,6 +117,9 @@ Below is a list of all speedwm keybinds.
- Super+Shift+Escape | Ask the user if they want to shutdown or reboot or nothing
- Super+Shift+i | Open a dmenu prompt and open the file the user picks in Zathura
- Super+Shift+p | Open a dmenu prompt and open the file the user picks in Vim
- Super+Control+1 | Mutes your audio
- Super+Control+2 | Increases your volume
- Super+Control+1 | Decreases your volume
- Super+Control+e | Switch to layout 3 (Grid)
- Super+Control+r | Switch to layout 1 (Monocle)
- Super+Control+t | Switch to layout 0 (Master & stack)
@ -132,6 +136,9 @@ Below is a list of all speedwm keybinds.
- Super+Control+Shift+n | Connect to wifi (Requires iwd)
- Super+Control+Shift+b | Connect to a bluetooth device (Requires bluez and bluez-utils)
- Super+Control+Shift+e | Open up a list of dotfiles in dmenu that you can edit.
- Super+Control+Shift+1 | Pauses your music
- Super+Control+Shift+1 | Decreases your music volume
- Super+Control+Shift+2 | Increase your music volume
- Alt+Super+Up/Down | Resize the window keeping the aspect ratio of it.
- Alt+Tab | Switch windows quickly and easily
- Alt+Control+j/k | Change window size vertically (cfact)
@ -158,11 +165,14 @@ Below is a list of all speedwm keybinds.
- Mute button | Mutes your audio
- Up Volume button | Increases your volume
- Down Volume button | Decreases your volume
- Pause button | Pauses the current track
- Stop button | Stops your defined music player
- Browser button | Opens your defined web browser
- Power button | Ask if you wanna shut down, restart or lock your computer.
- Email button | Open your defined email client
- System button | Open your defined status viewer in a terminal
- Music button | Open your defined music player
- WLAN button | Disconnect from WLAN
### Mouse
@ -276,11 +286,11 @@ If it is not or you want it somewhere else, you can edit 'autostart.h' and 'make
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.
- speedwm.font: fontawesome:size=8
- speedwm.font2: NotoSans-Regular:size=8:antialiasing=true
- speedwm.font3: Noto Emoji:size=8
- speedwm.font: NotoSans-Regular:size=8:antialiasing=true
- speedwm.font2: fontawesome:size=8
- speedwm.font3: Noto Color Emoji:size=8
- speedwm.col_background: #222222
- speedwm.col_backgroundmid: #222222
- speedwm.col_title: #222222
- speedwm.col_textnorm: #bbbbbb
- speedwm.col_textsel: #eeeeee
- speedwm.col_windowbordersel: #eeeeee
@ -339,11 +349,11 @@ Note that the 'xrdb' dependency is required for both pywal and .Xresources suppo
- speedwm.gappoh: 10
- speedwm.gappov: 10
- speedwm.attachdirection: 3
- speedwm.iconsize: 10
- speedwm.iconspacing: 5
- speedwm.shell: /bin/sh
- speedwm.sizeicon: 10
- speedwm.spacingicon: 5
- speedwm.status: status
- speedwm.defaultname:
- speedwm.defaultstatus:
- speedwm.refreshrules: 1
- speedwm.decorhints: 1
- speedwm.barpaddingv: 5
@ -362,25 +372,29 @@ Note that the 'xrdb' dependency is required for both pywal and .Xresources suppo
- speedwm.scalepreview: 4
- speedwm.monocleclientcount: 0
- speedwm.monoclecount: 0
- speedwm.monocleformat: [%d/%d]
- speedwm.monocleformat: [0/0]
- speedwm.statusallmons: 1
- speedwm.hidelayout: 0
- speedwm.hidetitle: 0
- speedwm.hideicon: 0
- speedwm.hidetitletext: 0
- speedwm.hidestatus: 0
- speedwm.hidestatustext: 0
- speedwm.hideicon: 0
- speedwm.hidetags: 0
- speedwm.hideemptytags: 1
- speedwm.hidesticky: 0
- speedwm.hidefloating: 0
- speedwm.leftlayout: 1
- speedwm.fadeinactive: 1
- speedwm.defaultlayout: 1
- speedwm.resetlayout: 1
- speedwm.resetmfact: 1
- speedwm.resetgaps: 1
- speedwm.wmclass: 1
- speedwm.stairpx: 20
- speedwm.stairdirection: 1
- speedwm.stairsamesize: 1
- speedwm.deckcount: 0
- speedwm.deckformat: D %d
- speedwm.deckformat: [0]
- speedwm.roundedcorners: 0
- speedwm.cornerradius: 3
- speedwm.swallowclients: 1

View file

@ -8,12 +8,12 @@ static char *colors[][3] = {
[SchemeBar] = { col_textnorm, col_background, col_windowbordernorm },
[SchemeTags] = { col_textnorm, col_background, col_windowbordernorm },
[SchemeNormBorder] = { col_textnorm, col_background, col_windowbordernorm },
[SchemeSelBorder] = { col_textsel, col_windowbordernorm, col_windowbordersel },
[SchemeStatus] = { col_textnorm, col_background, col_textsel },
[SchemeNormTitle] = { col_textnorm, col_background, col_background },
[SchemeSelTitle] = { col_textsel, col_backgroundmid, col_textsel },
[SchemeHid] = { col_backgroundmid, col_background, col_backgroundmid },
[SchemeLayout] = { col_layouttext, col_layoutbgsel, col_layoutbgnorm },
[SchemeSelBorder] = { col_textsel, col_windowbordernorm, col_windowbordersel },
[SchemeStatus] = { col_textnorm, col_background, col_textsel },
[SchemeNormTitle] = { col_textnorm, col_background, col_background },
[SchemeSelTitle] = { col_textsel, col_title, col_textsel },
[SchemeHid] = { col_title, col_background, col_title },
[SchemeLayout] = { col_layouttext, col_layoutbgsel, col_layoutbgnorm },
/* text background window border
*/
};
@ -42,14 +42,14 @@ static char *colstatus[] = {
*/
static const unsigned int alphas[][3] = {
/* fg bg border */
[SchemeBar] = { OPAQUE, baropacity, baropacity },
/* fg bg border/unused */
[SchemeBar] = { OPAQUE, baropacity, baropacity },
[SchemeNormTitle] = { OPAQUE, normtitleopacity, normtitleopacity },
[SchemeSelTitle] = { OPAQUE, seltitleopacity, seltitleopacity },
[SchemeLayout] = { OPAQUE, layoutopacity, layoutopacity },
[SchemeStatus] = { OPAQUE, statusopacity, statusopacity },
[SchemeHid] = { hiddenopacity, hiddenopacity, hiddenopacity },
[SchemeTags] = { tagselopacity, tagselopacity, tagnormopacity },
[SchemeSelTitle] = { OPAQUE, seltitleopacity, seltitleopacity },
[SchemeLayout] = { OPAQUE, layoutopacity, layoutopacity },
[SchemeStatus] = { OPAQUE, statusopacity, statusopacity },
[SchemeHid] = { OPAQUE, hiddenopacity, hiddenopacity },
[SchemeTags] = { tagselopacity, tagselopacity, tagnormopacity },
};
/* Colors to use for tags */

View file

@ -1,12 +1,34 @@
- speedwm.font: fontawesome:size=8
- speedwm.font2: NotoSans-Regular:size=8:antialiasing=true
- speedwm.font3: Noto Emoji:size=8
!! speedwm configuration file
!! This is the speedwm configuration file. It will be loaded on startup provided it is located in ~/.config/speedwm-de/speedwmrc.
!! If it isn't, you need to manually load it.
!!
!! Font options
!!
!! Fonts are picked based on (A) order in the list below and (B) what fonts have the character that should be printed.
!! If you want more than three fonts, add a comma to font3 and add another to it.
- speedwm.font: NotoSans-Regular:size=8:antialiasing=true
- speedwm.font2: fontawesome:size=8
- speedwm.font3: Noto Color Emoji:size=8
!!
!! Color options
!!
!! Bar colors
!!
- speedwm.col_background: #222222
- speedwm.col_backgroundmid: #222222
- speedwm.col_title: #222222
!!
!! Bar text colors
!!
- speedwm.col_textnorm: #bbbbbb
- speedwm.col_textsel: #eeeeee
!!
!! Window border colors
!!
- speedwm.col_windowbordersel: #eeeeee
- speedwm.col_windowbordernorm: #000000
!!
!! Tag colors
!!
- speedwm.col_tag1: #333333
- speedwm.col_tag1_text: #eeeeee
- speedwm.col_tag2: #333333
@ -25,9 +47,21 @@
- speedwm.col_tag8_text: #eeeeee
- speedwm.col_tag9: #333333
- speedwm.col_tag9_text: #eeeeee
!!
!! Layout indicator colors
!!
- speedwm.col_layouttext: #000000
- speedwm.col_layoutbgnorm: #222222
- speedwm.col_layoutbgsel: #bbbbbb
!!
!! Status colors
!!
!! These are status2d colors. If you are a user of the default status bar, they will be used without any additional effort.
!! If you use a third party bar, you must add support for these colors yourself.
!!
!! To change color for the text: ^C<num>^ followed by the actual text to print. The number is 0 through 15.
!! To change color for the background: ^B<num>^ followed by the actual text to print. The number is 0 through 15.
!! See https://dwm.suckless.org/patches/status2d/ for more information!
- speedwm.col_status0: #131210
- speedwm.col_status1: #bf616a
- speedwm.col_status2: #A16F9D
@ -44,80 +78,328 @@
- speedwm.col_status13: #eae1cb
- speedwm.col_status14: #6D5E8E
- speedwm.col_status15: #ffffff
!!
!! Border size (in pixels)
!!
- speedwm.borderpx: 1
!!
!! Amount of pixels necessary to move the floating window to the nearest edge. (in pixels)
!!
- speedwm.snap: 20
!!
!! Show the bar or not (1/0)
!!
- speedwm.showbar: 1
!!
!! Show resize hints or not (1/0)
!!
- speedwm.resizehints: 0
!!
!! Allow changing mfact using the mouse (1/0)
!!
- speedwm.mousemfact: 1
!!
!! Default mfact. 0.50 for example gives the master stack half the screen (50% or 0.50) and the stack the rest.
!!
- speedwm.mfact: 0.50
!!
!! Start on tag. If this is set to 1, speedwm will start on tag 1. If it is set to 0, then speedwm will not start on tag 1. (1/0)
!!
- speedwm.startontag: 1
!!
!! Require clicking windows to focus them, or focus when the mouse cursor touches the window border (1/0)
!!
- speedwm.clicktofocus: 0
!!
!! Focus newly spawned windows. If this is set to 0, newly spawned windows will not be automatically focused. (1/0)
!!
- speedwm.focusspawn: 0
!!
!! Enable gaps around windows. Gaps make it easier to distinguish windows from each other and they look nice, but gives the user less space for windows. (1/0)
!!
- speedwm.enablegaps: 1
!!
!! Use different gaps when there is only one window on a tag. (1/0)
!!
- speedwm.smartgaps: 0
!!
!! Gaps to use when there is only one window on a tag. If set to 0, gaps will be disabled when there is only one client.
!!
- speedwm.smartgapsize: 0
!!
!! Horizontal inner gaps in pixels.
!!
- speedwm.gappih: 10
!!
!! Vertical inner gaps in pixels.
- speedwm.gappiv: 10
!!
!! Horizontal outer gaps in pixels.
!!
- speedwm.gappoh: 10
!!
!! Vertical outer gaps in pixels.
!!
- speedwm.gappov: 10
!!
!! Direction windows are spawned in. (0/1/2/3/4/5)
!!
!! 0 will spawn them in the master stack.
!! 1 will spawn them above.
!! 2 will spawn them aside.
!! 3 will spawn them below.
!! 4 will spawn them on the bottom
!! 5 will spawn them on the top.
!!
- speedwm.attachdirection: 3
- speedwm.shell: /bin/sh
!!
!! Window icon size in pixels:
!!
- speedwm.iconsize: 10
!!
!! Window icon spacing between the title text and icon in pixels:
!!
- speedwm.iconspacing: 5
!!
!! Shell commands will run with:
!!
- speedwm.shell: /bin/sh
!!
!! Status bar speedwm will autostart and use:
!!
- speedwm.status: status
- speedwm.defaultname:
!!
!! Text to print when a status bar is not actively writing anything. Empty will print nothing for the empty status bar:
!!
- speedwm.defaultstatus:
!!
!! Refresh rules when a title or class changes. (1/0)
!!
- speedwm.refreshrules: 1
!!
!! Respect decoration hints for software that requests it (1/0)
!!
- speedwm.decorhints: 1
!!
!! Barpadding adds extra space vertically and horizontally between the bar.
!! Vertical bar padding:
!!
- speedwm.barpaddingv: 5
!!
!! Horizontal bar padding:
!!
- speedwm.barpaddingh: 5
!!
!! Height of the bar in pixels. If you want, you may make the bar taller. If set to 0, the bar will just be as tall as the fonts drawn on it.
!!
- speedwm.barheight: 5
!!
!! Center floating windows automatically when spawned. If set to 1, floating windows will be centered when spawned. Otherwise they will be spawned in the top left corner. (1/0)
!!
- speedwm.centerfloating: 1
!!
!! Save floating window position. If set to 1, floating windows will be placed back in their position if they're set to floating again. (1/0)
!!
- speedwm.savefloat: 1
!!
!! Warp cursor to the focused window. If set to 1, the mouse cursor will be warped to the newly focused window. (1/0)
!!
- speedwm.warpcursor: 1
!!
!! Different values (such as layouts, mfact, or gaps) for each tag. If set to 1, each tag will be allowed to have a property independently from other tags. Otherwise, all tags will share the same properties. (1/0)
!!
- speedwm.pertag: 1
!!
!! i3-like number of master behaviour. If set to 1, this will be enabled. (1/0)
!!
- speedwm.i3nmaster: 0
!!
!! Tag previews allow the user to previous a tag before he switches to it. This can be very useful when many tags are occupied.
!! Enable tag previews. If set to 1, tag previews will be enabled. Otherwise they will be disabled.
!!
- speedwm.tagpreview: 1
!!
!! Vertical padding for the tag preview in pixels
!!
- speedwm.tagpreviewpaddingv: 0
!!
!! Horizontal padding for the tag preview in pixels
!!
- speedwm.tagpreviewpaddingh: 0
!!
!! Allow previewing tags using the mouse. If a mouse touches a tag, a tag preview will be displayed for that tag. If set to 1, this will be enabled. Otherwise it will be disabled. (1/0)
!!
- speedwm.mousepreview: 1
!!
!! Display the bar in that preview. If set to 1, the bar will be included in the preview. If set to 0, the bar will not be included. (1/0)
!!
- speedwm.barpreview: 0
!!
!! Scale preview. The lower the number, the smaller the preview will be. For example, 1 will take up the entire screen.
!!
- speedwm.scalepreview: 4
!!
!! Display amount of Monocle clients in the Monocle layout if set to 1, otherwise the layout number (L2) will be printed. (1/0)
!!
- speedwm.monocleclientcount: 0
!!
!! Display focused client and number of total clients in the Monocle layout if set to 1, otherwise the layout number (L2) will be printed. (1/0)
!!
- speedwm.monoclecount: 0
!!
!! Format of the monocle count. %d means client(s).
!!
- speedwm.monocleformat: [%d/%d]
!!
!! Display status on all monitors. If set to 1, the status bar will be displayed on all monitors. Otherwise it will be printed on the focused monitor (1/0)
!!
- speedwm.statusallmons: 1
!!
!! Hide layout indicator. If set to 0, the layout indicator will be shown. Otherwise it will be disabled! (1/0)
!!
- speedwm.hidelayout: 0
!!
!! Hide title/taskbar. If set to 0, the tasks will be shown. Otherwise the tasks will not be shown. (1/0)
!!
- speedwm.hidetitle: 0
!!
!! Hide title text. If set to 0, the task names will be shown. Otherwise the text will not be printed. (1/0)
!!
- speedwm.hidetitletext: 0
- speedwm.hideicon: 0
!!
!! Hide status bar. If set to 0, the status bar will be shown. Otherwise the status bar will not be shown. (1/0)
!!
- speedwm.hidestatus: 0
!!
!! Hide status bar text. If set to 0, the status bar text will be printed. Otherwise the status bar text will not be shown. (1/0)
!!
- speedwm.hidestatustext: 0
!!
!! Hide window icons. If set to 0, the window icons will be used. Otherwise the window icons will not be drawn. (1/0)
!!
- speedwm.hideicon: 0
!!
!! Hide tags. If set to 0, the tags will be drawn. Otherwise the tags will not be drawn. (1/0)
!!
- speedwm.hidetags: 0
!!
!! Hide empty tags. If set to 0, the tags that aren't used will be printed. Otherwise they will be hidden. (1/0)
!!
- speedwm.hideemptytags: 1
!!
!! Hide sticky window indicator. If set to 0, the sticky window indicator will be drawn. Otherwise it will be hidden (1/0)
!!
- speedwm.hidesticky: 0
!!
!! Hide floating indicator. If set to 0, the floating window indicator will be drawn. Otherwise it will be hidden (1/0)
!!
- speedwm.hidefloating: 0
!!
!! Layout indicator position. If set to 1, the layout indicator will be printed before the tags. Otherwise, the layout indicator will be printed after the tags (1/0)
!!
- speedwm.leftlayout: 1
!!
!! Fade inactive windows. If set to 1, inactive windows (the unfocused windows) will fade into the background. This is both an easy way to tell if a window is focused or not and looks good. (1/0)
!!
- speedwm.fadeinactive: 1
!!
!! Reset layout when there is only one window visible. If set to 1, the layout will be reset to layout 1 if there is only one window on the selected tag. (1/0)
!!
- speedwm.resetlayout: 1
!!
!! Reset mfact when there is only one window visible. If set to 1, the mfact will be reset to the default if there is only one window on the selected tag. (1/0)
!!
- speedwm.resetmfact: 1
!!
!! Reset gaps when there is only one window visible. If set to 1, the gaps will be reset to the default if there is only one window on the selected tag. (1/0)
!!
- speedwm.resetgaps: 1
!!
!! Workaround for when a class cannot be found. If set to 1, a workaround for when a class cannot be found will be enabled. Otherwise it will be disabled. (1/0)
!!
- speedwm.wmclass: 1
!!
!! Depth of the stair layout in pixels.
!!
- speedwm.stairpx: 20
!!
!! Direction of the stairs. If set to 0, stairs will be alligned to the left. Otherwise they will be alligned to the right. (1/0)
!!
- speedwm.stairdirection: 1
!!
!! Shrink all staired windows to the same size (1/0)
!!
- speedwm.stairsamesize: 1
!!
!! Display the amount of clients in the deck layout count. If set to 1, the client count in the deck layout will be displayed. Otherwise the layout number will be displayed. (1/0)
!!
- speedwm.deckcount: 0
- speedwm.deckformat: D %d
!!
!! Format of the deck layout count. %d means client(s).
!!
- speedwm.deckformat: [%d]
!!
!! Rounded corners. If set to 1, rounded corners will be drawn. Otherwise sharp corners will be used instead. (1/0)
!! Note that this requires border size (borderpx) to be set to 0, otherwise rounded corners will automatically be disabled.
!!
- speedwm.roundedcorners: 0
!!
!! Corner radius of rounded corners, lower is sharper.
!!
- speedwm.cornerradius: 3
!!
!! Window swallowing. If set to 1, your terminal can be hidden, keeping your GUI application in the front. This gives the illusion of, let's say watching videos in your terminal. (1/0)
!!
- speedwm.swallowclients: 1
!!
!! Enable window swallowing for floating clients. If set to 1, floating clients can also be swallowed. Otherwise floating clients will be ignored. (1/0)
!!
- speedwm.swallowfloating: 1
!!
!! Allow moving fullscreen windows to another monitor. If set to 1, fullscreen windows can be moved to another monitor. Otherwise it will be disabled. (1/0)
!!
- speedwm.movefullscreenmon: 0
!!
!! Lock focus when in fullscreen. If set to 1, fullscreen windows will always be focused no matter what. Otherwise any window can be focused while in fullscreen. (1/0)
!!
- speedwm.lockfullscreen: 1
!!
!! Hide the bar in fullscreen mode. If set to 1, the bar will be hidden when in fullscreen. Otherwise it will be shown. (1/0)
!!
- speedwm.fullscreenhidebar: 1
!!
!! Underline tags. If set to 1, tags in the bar will be underlined which can look nice. Otherwise the underline will not be drawn. (1/0)
!!
- speedwm.underline: 0
!!
!! Underline all tags. If set to 1, all tags in the bar will be underlined. Otherwise only the selected tag will be underlined. (1/0)
!!
- speedwm.underlineall: 0
!!
!! Horizontal padding between the underline and tag in pixels
!!
- speedwm.underlinepad: 5
!!
!! Height of the underline in pixels
!!
- speedwm.underlinestroke: 2
!!
!! Vertical padding for the underline in pixels. If set to 0, there will be no padding.
!!
- speedwm.underlinevoffset: 0
!!
!! Force two windows to always split vertically in the dynamic grid layout. If set to 1, this will be forced. Otherwise, it will not. (1/0)
!!
- speedwm.forcevsplit: 1
!!
!! Automatically set scratchpad windows to floating mode. If set to 1, scratchpad windows will automatically be set to floating mode when shown. Otherwise they will stay tiled in the current layout. (1/0)
!!
- speedwm.floatscratchpad: 0
!!
!! Number of master windows to start with.
!!
- speedwm.nmaster: 1
!!
!!
!! You've reached the end of the speedwm configuration file.
!! The rest of the options can be found in the ~/.config/speedwm-de/* directories.

View file

@ -1,369 +0,0 @@
/* speedwm
*
* speedwm is a fork of suckless.org's dwm, a window manager for X.
* Unlike the original 'dwm' window manager, speedwm tries to be minimal, just like dwm but also has functionality and aesthetics as a goal.
* speedwm has a bigger codebase than suckless.org's dwm, however is still much more minimal than other tiling window managers such as i3-gaps while providing more features for the user.
*
* Keep in mind that speedwm is a personal window manager and therefore comes with keybinds for software I use and find appealing.
* If you do not like these keybinds or other features, speedwm has a patch feature in the makefile so consider:
* - make patch | This creates patches with your changes compared to what it looked like when you first installed it. (Same as diff -up)
* - make patch_install | This installs your patches from the source code. (Same as patch <)
* - make patch_remove | This removes your patches from the source code. (Same as patch -R)
* - make patch_clean | This removes your patches completely (Same as rm *.patch)
* Otherwise you may maintain your own fork of speedwm if you prefer.
*
* In addition to this, if speedwm doesn't have a feature you want, there's nothing stopping you from adding it as it still follows the suckless philosophy somewhat.
* Below is a configuration file. Read the instructions below for information about how to configure it.
*
* To use speedwm, you must first install all the dependencies. See 'speedwm-help -a' for a list of dependencies.
* Then, you need to run 'speedwm_run' after X has started. This can usually be done by adding 'speedwm_run' to ~/.xinitrc and running 'startx'.
* If you use a display manger/login manager like sddm, lightdm or something that uses entries, the entry should be created after installation.
*
* The header you are currently reading is for changing what software you want to use.
*
* Because this build of speedwm auto-starts software such as your compositor, you may want to change this by changing '#define COMPOSITOR'. Same goes for other software.
*
* If you aren't aware of this, do not add anything to your .xinitrc if it is listed in autostart.h
*
* - If you were looking for the keybinds, they can be found in keybinds.h
* - If you use another operating system such as OpenBSD, FreeBSD or Solaris (Not GNU/Linux), edit options.mk
* - If you're looking to disable a feature, see toggle.h (Disabling features) and toggle.mk (Disabling libraries the features depend on)
*
* This build comes with defines for common software such as your web browser or terminal.
* If you wish to use a different browser for example, simply change the values.
*
* You do not need to edit 'keybinds.h' or 'rules.h' because that's where these are used.
* Once you're done with your edits, run 'make clean install'.
*
* Alternatively, you can change some of these in ~/.config/speedwm-de/speedwmrc.
* Software options must be changed in this file though.
******************************************************/
/* Software options
* Note that any software named "speedwm-*" is bundled with this build and does not need to be replaced unless you want to.
*/
#define TERMINAL "st -e " /* Terminal to use */
#define BROWSER "firefox" /* Web browser to use */
#define SYSTEMSTAT "htop" /* System stat viewer to use */
#define RSS "newsboat" /* RSS reader to use */
#define PDF "zathura" /* PDF reader to use */
#define MUSIC "cmus" /* Music player to use */
#define VISUALIZER "~/.local/bin/vis || vis" /* Music visualizer to use */
#define EMAIL "aerc" /* Email client to use */
#define EDITOR "nvim" /* Text editor to use */
#define RUN "dmenu_run -l 0 -p 'Run:' -h 19" /* Run launcher */
#define SCREENSHOT "speedwm-screenshotutil -s" /* How to take screenshots (Selection) */
#define SCREENSHOT_FULL "speedwm-screenshotutil -f" /* How to take screenshots (Full screen) */
#define FILEMANAGER "vifmrun || vifm" /* File manager that will be used */
#define LOCKER "slock" /* Screen locker that will be used */
#define OPENPDF "speedwm-pdfopen ~/Documents zathura || ~/Scripts/speedwm-pdfopen ~/Documents zathura" /* Command to run when listing and opening PDFs. */
#define KILLMUSIC "pkill cmus" /* Command to run when killing the music player */
#define NEXTMUSIC "cmus-remote --next" /* Command to run when skipping to the next track */
#define PREVMUSIC "cmus-remote --prev" /* Command to run when moving back to the previous track */
/* Software classes */
#define TERMINAL_CLASS "St" /* Terminal to use for rules */
#define BROWSER_CLASS "firefox" /* Web browser to use for rules */
#define PDF_CLASS "Zathura" /* PDF reader to use for rules */
#define FILEMANAGER_CLASS "vifmrun" /* File manager that will be used for rules */
/* Audio options */
#define MIXER "speedwm-audioctrl -runmixer" /* Audio mixer to use */
#define VOL_DOWN "speedwm-audioctrl -lower" /* Command to run when decreasing volume */
#define VOL_UP "speedwm-audioctrl -raise" /* Command to run when increasing volume */
#define VOL_MUTE "speedwm-audioctrl -mute" /* Command to run when muting volume */
#define VOL_OUTPUT_SPEAKER "speedwm-audioctrl -switch" /* Command to run when enabling speakers */
/* Modifier keys
* Mod4Mask | Super (Windows/command) key
* Mod1Mask | Alt key
*/
#define MODIFIER1 Mod4Mask
#define MODIFIER2 Mod1Mask
/* Managers */
#define CLIPBOARD "xclip" /* Clipboard to use */
#define COMPOSITOR "picom --experimental-backends" /* Compositor to use */
#define NETWORK "speedwm-netctrl" /* Network manager to use */
#define BLUETOOTH "speedwm-btctrl" /* Bluetooth manager to use */
#define NOTIFICATION "dunst" /* Notification daemon to use */
/* Paths */
#define SESSION_FILE "/tmp/speedwm-session" /* Session file. This file may be used as a list of windows and their tagnum */
/* Misc */
#define TAGKEYS(CHAIN,KEY,TAG) { MODIFIER1, CHAIN, KEY, view, {.ui = 1 << TAG} }, \
{ MODIFIER1|ShiftMask, CHAIN, KEY, previewtag, {.ui = TAG} }, \
/* Options
*
* If xrdb is installed, you can simply edit ~/.config/speedwm-de/speedwmrc instead of recompiling.
* Once you're done with your edits, run 'make clean install'.
*/
/* Window alignment options */
static unsigned int borderpx = 1; /* How big your border is in pixels */
static unsigned int snap = 20; /* Snap pixel */
static int nmaster = 1; /* Number of masters */
static int resizehints = 0;
static int decorhints = 1; /* Respect decoration hints */
static int savefloat = 1; /* Save position of floating windows */
static int refreshrules = 1; /* Refresh rules when a CLASS or TITLE changes */
static int i3nmaster = 0; /* Enable i3-gaps like nmaster (1/0) */
static int mousemfact = 1; /* Enable adjusting mfact using the mouse (1/0) */
static float mfact = 0.50; /* Default mfact value. 0.50 = each gets half the available space */
/* Window gap options */
static int enablegaps = 1; /* Enable gaps */
static unsigned int gappih = 10; /* horiz inner gap between windows */
static unsigned int gappiv = 10; /* vert inner gap between windows */
static unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
static unsigned int gappov = 10; /* vert outer gap between windows and screen edge */
static unsigned int smartgapsize = 0; /* Gaps for smartgaps. If set to zero, gaps will be disabled. */
static int smartgaps = 0; /* 1 means use different gap size when there is only one window */
/* Window aesthetic options */
#if USEFADE
static int fadeinactive = 1; /* Fade inactive windows */
static double activeopacity = 1.0f; /* Window opacity when it's focused (0 <= opacity <= 1) */
static double inactiveopacity = 0.875f; /* Window opacity when it's inactive (0 <= opacity <= 1) */
static Bool bUseOpacity = True; /* Starts with opacity on any unfocused windows */
#endif
/* Rounded corners
* In order to use:
* - borderpx must also be set to 0 or else rounded corners will be disabled.
*/
static int roundedcorners = 0; /* Enable (1) rounded corners or disable (0) rounded corners. */
static int cornerradius = 3; /* Radius of rounded corners, 10 is the default. */
/* Tag preview options */
#if USETAGPREVIEW
static int tagpreview = 1; /* Enable tag previews */
static int tagpreviewpaddingv = 0; /* Vertical tag padding */
static int tagpreviewpaddingh = 0; /* Horizontal tag padding */
static int mousepreview = 1; /* Display tag previews if hovering over a tag */
static int barpreview = 0; /* Display the bar in the preview */
static int scalepreview = 4; /* Size of tag preview. Lower is bigger, higher is smaller. */
#endif
/* Window spawning options */
static int attachdirection = 3; /* 0 default, 1 above, 2 aside, 3 below, 4 bottom, 5 top */
static int swallowclients = 1; /* Swallow windows or not */
static int swallowfloating = 1; /* Swallow floating windows by default */
static int centerfloating = 1; /* Center floating windows by default */
static int startontag = 1; /* Start on a tag or not? */
static int floatscratchpad = 0; /* Float the scratchpad window on hide (1/0) */
static int focusspawn = 0; /* Automatically focus the next spawned window. If warp is enabled, this is useless and will be disabled. (1/0) */
/* Font options */
static char font[] = { "fontawesome:size=8" }; /* What font should we use? */
static char font2[] = { "NotoSans-Regular:size=8:antialiasing=true" }; /* Second font */
static char font3[] = { "Noto Emoji:size=8" }; /* Third font */
static const char *fonts[] = { font, font2, font3 };
static char defaultname[] = ""; /* What to print when a status bar is not running */
/* Bar options */
static char status[] = "status"; /* Status bar to use, stellar for stellar, dwmblocks for dwmblocks, slstatus for slstatus, etc. */
/* Alternate bar
*
* Some users may prefer to use a different bar than what speedwm provides.
* Polybar users for example might want to use their bspwm bar in speedwm.
* If so, follow these instructions:
* - Use xprop to find the class (WM_CLASS) and add that to altbarclass
* - Set altbarcmd to the bar you want to use.
* - Set altbar to 1 (0 will disable it).
* - Recompile speedwm and restart it using 'speedwm_run -r'
*
* If you didn't do any changes to the source code, just run speedwm_run -r'
* If you use Polybar, the default settings here will work, just set altbar to 1 and set altbarcmd to 'polybar &'.
*/
static char *altbarcmd = "";
static int altbar = 0; /* 1 means use non-speedwm status bar */
static char *altbarclass = "Polybar"; /* Alternate bar class name */
static char *alttrayname = "tray"; /* Polybar tray instance name */
/* Misc */
static char shell[] = "/bin/sh"; /* Shell to use */
static char *scratchpadcmd[] = {"s", TERMINAL, "-t", "scratchpad", NULL};
static int warpcursor = 1; /* Warp cursor when switching client/monitor */
static int pertag = 1; /* Use different mfact and layout for each layout */
static int wmclass = 1; /* Enable (1) workaround for when a class cannot be grabbed */
static int clicktofocus = 0; /* Click to focus, or focus when the mouse moves to another window */
/* Full screen options */
static int movefullscreenmon = 1; /* Move fullscreen windows to another monitor */
static int fullscreenhidebar = 1; /* Hide the bar when full screen */
static int lockfullscreen = 1;
/* Window icon options */
#if USEWINICON
static int sizeicon = 10; /* size of the icon */
static int spacingicon = 5; /* spacing between the title and icon */
#endif
/* Bar options */
static int barheight = 5; /* Bar height in px, 0 = calculate automatically */
static int barposition = 1; /* Bar position. Top: 0, Bottom: 1 */
static int barpaddingv = 5; /* How much padding to have vertically in pixels */
static int barpaddingh = 5; /* How much padding to have horizontally in pixels */
static int leftlayout = 1; /* Layout indicator on the left (1) or on the right (0) */
/* Tag text options */
static int underline = 0; /* Underline tags (1) or not (0) */
static int underlineall = 0; /* 1 to show underline on all tags, 0 for just the active ones */
static int underlinepad = 5; /* Horizontal padding between the underline and tag */
static int underlinestroke = 2; /* Height of the underline */
static int underlinevoffset = 0; /* How far above the bottom of the bar the line should appear */
/* Bar item options */
static int showbar = 1; /* Show the bar or not? */
static int hidelayout = 0; /* Hide layout indicator (1) or show (0) */
static int hidetitle = 0; /* Hide title (1) or show (0) */
static int hideicon = 0; /* Hide icon (1) or show (0) */
static int hidestatus = 0; /* Hide status bar (1) or show (0) */
static int hidetags = 0; /* Hide status bar (1) or show (0) */
static int hideemptytags = 1; /* Hide empty tags (1) or show (0) */
static int hidefloating = 0; /* Hide floating indicator (1) or show (0) */
static int hidesticky = 0; /* Hide sticky indicator (1) or show (0) */
/* Status options */
static int statusallmons = 1; /* Draw status bar on all monitors */
/* Layout options */
#if LAYOUT_MONOCLE
static unsigned int monocleclientcount = 0; /* Display client count in the Monocle layout */
static unsigned int monoclecount = 0; /* Display focused client and number of total clients in the Monocle layout */
static char monocleformat[] = "[%d/%d]"; /* Format of the monocle count. Unsigned integer monoclecount must be set to 1 for this to be used. */
#endif
#if LAYOUT_DECK
static unsigned int deckcount = 0; /* Display deck count in the deck layout */
static char deckformat[] = "D %d"; /* Format of the deck count. deckcount must be set to 1 for this to be used. */
#endif
#if LAYOUT_STAIRS
static unsigned int stairpx = 20; /* depth of the stairs layout */
static int stairdirection = 1; /* 0: left-aligned, 1: right-aligned */
static int stairsamesize = 1; /* 1 means shrink all the staired windows to the same size */
#endif
static int defaultlayout = 1; /* Reset layout when there is only one client visible */
#if LAYOUT_DGRID
static int forcevsplit = 1; /* Force two clients to always split vertically in the dynamic grid layout */
#endif
/* Bar colors */
static char col_background[] = "#222222"; /* speedwm dark bg & slstatus bg */
static char col_backgroundmid[] = "#222222"; /* speedwm middle background */
/* General text colors */
static char col_textnorm[] = "#bbbbbb"; /* application title bar/font for norm */
static char col_textsel[] = "#eeeeee"; /* speedwm text/font for selected */
/* Window border colors */
static char col_windowbordernorm[] = "#000000"; /* speedwm norm window border */
static char col_windowbordersel[] = "#eeeeee"; /* speedwm sel window border */
/* Tag text/background colors */
static char col_tag1[] = "#333333"; /* tag 1 background */
static char col_tag1_text[] = "#eeeeee"; /* tag 1 text (fg) */
static char col_tag2[] = "#333333"; /* tag 2 background */
static char col_tag2_text[] = "#eeeeee"; /* tag 2 text (fg) */
static char col_tag3[] = "#333333"; /* tag 3 background */
static char col_tag3_text[] = "#eeeeee"; /* tag 3 text (fg) */
static char col_tag4[] = "#333333"; /* tag 4 background */
static char col_tag4_text[] = "#eeeeee"; /* tag 4 text (fg) */
static char col_tag5[] = "#333333"; /* tag 5 background */
static char col_tag5_text[] = "#eeeeee"; /* tag 5 text (fg) */
static char col_tag6[] = "#333333"; /* tag 6 background */
static char col_tag6_text[] = "#eeeeee"; /* tag 6 text (fg) */
static char col_tag7[] = "#333333"; /* tag 7 background */
static char col_tag7_text[] = "#eeeeee"; /* tag 7 text (fg) */
static char col_tag8[] = "#333333"; /* tag 8 background */
static char col_tag8_text[] = "#eeeeee"; /* tag 8 text (fg) */
static char col_tag9[] = "#333333"; /* tag 9 background */
static char col_tag9_text[] = "#eeeeee"; /* tag 9 text (fg) */
/* Layout indicator colors */
static char col_layouttext[] = "#000000"; /* Layout indicator text (fg) */
static char col_layoutbgnorm[] = "#222222"; /* Layout indicator background (norm) */
static char col_layoutbgsel[] = "#bbbbbb"; /* Layout indicator background (norm) */
/* status2d colors */
static char col_status0[] = "#131210";
static char col_status1[] = "#bf616a";
static char col_status2[] = "#A16F9D";
static char col_status3[] = "#68ABAA";
static char col_status4[] = "#A89F93";
static char col_status5[] = "#D3A99B";
static char col_status6[] = "#AFC9AC";
static char col_status7[] = "#eae1cb";
static char col_status8[] = "#a39d8e";
static char col_status9[] = "#6D5E8E";
static char col_status10[] = "#A16F9D";
static char col_status11[] = "#D3A99B";
static char col_status12[] = "#AFC9AC";
static char col_status13[] = "#eae1cb";
static char col_status14[] = "#6D5E8E";
static char col_status15[] = "#ffffff";
/* Opacity settings
* These options set the opacity of the status bar modules.
* They can be anything from 0 (fully transparent) to 255 (fully opaque).
*
* You can also set OPAQUE and TRANSPARENT which are the same as 0 and 255 respectively.
* To completely disable alpha, disable it in toggle.h.
*/
static const unsigned int baropacity = 160; /* Opacity for the overall bar */
static const unsigned int layoutopacity = 160; /* Opacity for the layout indicator */
static const unsigned int tagnormopacity = OPAQUE; /* Opacity for other tags */
static const unsigned int tagselopacity = OPAQUE; /* Opacity for the selected tag */
static const unsigned int normtitleopacity = 160; /* Opacity for all other windows in the speedwm bar */
static const unsigned int seltitleopacity = 160; /* Opacity for the focused window in the speedwm bar */
static const unsigned int hiddenopacity = 0; /* Opacity for hidden/minimized windows */
static const unsigned int statusopacity = 180; /* Opacity for speedwm status bar */
/* Tag text options
*
* These two variables allow you to change the tag text/icons.
* tags is the text/icons for empty tags, as in tags without any open windows.
* usedtags is the text/icons for occupied tags, as in tags with open windows.
*
* Do note that usedtags are not going to be used if tag labels are enabled.
*
*/
static char *tags[] = { "1", /* Tag 1 text (empty) */
"2", /* Tag 2 text (empty) */
"3", /* Tag 3 text (empty) */
"4", /* Tag 4 text (empty) */
"5", /* Tag 5 text (empty) */
"6", /* Tag 6 text (empty) */
"7", /* Tag 7 text (empty) */
"8", /* Tag 8 text (empty) */
"9", /* Tag 9 text (empty) */
};
static char *usedtags[] = { "[1]", /* Tag 1 text (occupied) */
"[2]", /* Tag 2 text (occupied) */
"[3]", /* Tag 3 text (occupied) */
"[4]", /* Tag 4 text (occupied) */
"[5]", /* Tag 5 text (occupied) */
"[6]", /* Tag 6 text (occupied) */
"[7]", /* Tag 7 text (occupied) */
"[8]", /* Tag 8 text (occupied) */
"[9]", /* Tag 9 text (occupied) */
};
/* Icon misc */
static XPoint stickyicon[] = { {0,0}, /* represents the icon as an array of vertices */
{4,0},
{4,8},
{2,6},
{0,8},
{0,0},
};
static XPoint stickyiconbb = {4,8}; /* defines the bottom right corner of the polygon's bounding box (speeds up scaling) */
/* You have reached the end of the configuration file.
* For keybinds, see 'keybinds.h'
* For feature toggles, see 'toggle.h'
*/

View file

@ -1,49 +0,0 @@
# speedwm compilation options
#
# Depending on your configuration, you may need to uncomment some lines here.
# OpenBSD support
# If you use OpenBSD, uncomment this line. (remove the # at the start of the line below)
#FREETYPEINC = ${X11INC}/freetype2
# Solaris support
# If you use Solaris, uncomment this line. (remove the # at the start of the line below)
#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
#LDFLAGS = ${LIBS}
###################################################################################
# Compiling with -Ofast. If you're having issues (such as dwm crashing, change it to -O2. (That's not a zero)
# Using -O2 is not recommended due to the usage of Imlib2.
# If these features are used, they will be slow with the use of -O2.
CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Ofast ${INCS} ${CPPFLAGS}
LDFLAGS = ${LIBS}
# Compiler and linker.
# You can swap this out if you know what you're doing.
CC = cc
# Paths
# These should be fine for most users but if you use a distribution of GNU/Linux like NixOS or GNU Guix, consider changing this to fit your use case.
# HTMLDIR is only useful if you are using 'make release'.
PREFIX = /usr
HTMLDIR = "/home/anon/Projects/spdgmr.github.io/"
###################################################################################
# speedwm version
VERSION = 0.1
X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib
# freetype
FREETYPELIBS = -lfontconfig -lXft
FREETYPEINC = /usr/include/freetype2
# includes and libs
INCS = -I${X11INC} -I${FREETYPEINC} -I${YAJLINC}
LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS} -lXrender ${IMLIB2LIBS} -lX11-xcb -lxcb -lxcb-res -lXext ${YAJLLIBS}
# flags
CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=200809L -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}

View file

@ -1,51 +0,0 @@
/* Toggle patches
* This header allows you to enable/disable patches that can break compability or decrease performance with certain OSes or configurations.
* If it's disabled (set to 0), it will not be compiled in with speedwm. This keeps the binary small and may make the experience better.
*/
/* IPC */
#define USEIPC 1 /* Whether or not to use IPC. If you set this to 1, set USEIPC to true in toggle.mk and comment the YAJLLIBS and YAJLINC lines in config.mk. Not compatible with BSDs so for those, set this to 0. */
/* Alpha related patches
*
* These do not have any dependencies but can slow down older computers.
* Because of this, you can easily toggle them on/off.
*/
#define USEALPHA 1 /* Whether or not to use transparency for the bar */
#define USEFADE 1 /* Whether or not to use fading windows */
#define USEMEDIA 1 /* Whether or not to use media keys */
#define USEMOUSE 1 /* Whether or not to use mouse binds */
/* Image related patches
*
* These can slow down speedwm slightly but if you use modern computers, it's not noticeable.
* If you wish to disable them though, set them to 0.
*/
#define USEIMLIB2 1 /* Whether or not to use imlib2. Required by USEWINICON and USETAGPREVIEW. */
#define USEWINICON 1 /* Whether or not to use window icons. Requires imlib to be enabled in toggle.mk and it must be installed. */
#define USETAGPREVIEW 1 /* Whether or not to use tag previews. Requires imlib to be enabled in toggle.mk and it must be installed. */
#define USETAGPREVIEWFIX 0 /* Experimental fix for tag previews showing up in the tag preview when a window animations are enabled. Using this is not recommended and if you use the mouse to switch tags, it will not work. */
/* Layouts
* If you don't use a layout, you can remove it to keep the speedwm binary small.
*/
#define LAYOUT_TILE 1 /* Whether or not to include the tiling layout */
#define LAYOUT_TILE54 1 /* Whether or not to include hte 5:4 tiling layout */
#define LAYOUT_MONOCLE 1 /* Whether or not to include the monocle layout */
#define LAYOUT_GRID 1 /* Whether or not to include the grid layout */
#define LAYOUT_GLGRID 1 /* Whether or not to include the gapless grid layout */
#define LAYOUT_FIBO 1 /* Whether or not to include the fibonacci layout */
#define LAYOUT_DWINDLE 1 /* Whether or not to include the dwindle layout */
#define LAYOUT_SPIRAL 1 /* Whether or not to include the spiral layout */
#define LAYOUT_TCL 1 /* Whether or not to include the three column layout */
#define LAYOUT_BSTACK 1 /* Whether or not to include the bottom stack layout */
#define LAYOUT_BSTACKH 1 /* Whether or not to include the horizontal bottom stack layout */
#define LAYOUT_HGRID 1 /* Whether or not to include the horizontal grid layout */
#define LAYOUT_DGRID 1 /* Whether or not to include the dynamic grid layout */
#define LAYOUT_TATAMI 1 /* Whether or not to include the tatami layout */
#define LAYOUT_TW 1 /* Whether or not to include the wide tiling layout */
#define LAYOUT_CM 1 /* Whether or not to include the centered master layout */
#define LAYOUT_CFM 1 /* Whether or not to include the centered floating master layout */
#define LAYOUT_DECK 1 /* Whether or not to include the deck layout */
#define LAYOUT_COL 1 /* Whether or not to include the column layout */
#define LAYOUT_STAIRS 1 /* Whether or not to include the stairs layout */

View file

@ -1,22 +0,0 @@
# speedwm compilation options
#
# Depending on your configuration, you may need to uncomment some lines here.
# IPC
# Whether or not to compile in IPC support.
# If you use OpenBSD or FreeBSD, this is not supported. In that case comment out these three lines and set USEIPC in toggle.h to 0.
USEIPC = true # Comment if you don't use IPC
YAJLLIBS = -lyajl # Comment if you don't use IPC
YAJLINC = /usr/include/yajl # Comment if you don't use IPC
# Tag previews and window icons
# If you use tag previews or window icons (enabled by default), these must be uncommented.
# If you do not use them, disable them in toggle.h and comment these lines.
IMLIB2LIBS = -lImlib2
# Multimonitor support
# If you use multiple monitors (enabled by default), these must be uncommented.
# This also requires libXinerama.
# If you do not use them, comment these lines.
XINERAMALIBS = -lXinerama
XINERAMAFLAGS = -DXINERAMA

View file

@ -103,6 +103,8 @@
*
* If xrdb is installed, you can simply edit ~/.config/speedwm-de/speedwmrc instead of recompiling.
* Once you're done with your edits, run 'make clean install'.
*
* It should be noted that options in speedwmrc will override the options in here. This means if an option does nothing here, it's likely different in the config file.
*/
/* Window alignment options */
@ -161,11 +163,11 @@ static int floatscratchpad = 0; /* Float the scratchpad windo
static int focusspawn = 0; /* Automatically focus the next spawned window. If warp is enabled, this is useless and will be disabled. (1/0) */
/* Font options */
static char font[] = { "fontawesome:size=8" }; /* What font should we use? */
static char font2[] = { "NotoSans-Regular:size=8:antialiasing=true" }; /* Second font */
static char font3[] = { "Noto Emoji:size=8" }; /* Third font */
static const char *fonts[] = { font, font2, font3 };
static char defaultname[] = ""; /* What to print when a status bar is not running */
static char font[] = { "NotoSans-Regular:size=8:antialiasing=true" }; /* What font should we use? */
static char font2[] = { "fontawesome:size=8" }; /* Second font */
static char font3[] = { "Noto Color Emoji:size=8" }; /* Third font */
static const char *fonts[] = { font, font2, font3 }; /* All fonts */
static char defaultstatus[] = ""; /* What to print when a status bar is not running */
/* Bar options */
static char status[] = "status"; /* Status bar to use, stellar for stellar, dwmblocks for dwmblocks, slstatus for slstatus, etc. */
@ -226,8 +228,9 @@ static int showbar = 1; /* Show the bar or not? */
static int hidelayout = 0; /* Hide layout indicator (1) or show (0) */
static int hidetitle = 0; /* Hide title (1) or show (0) */
static int hidetitletext = 0; /* Hide title text (1) or show (0) */
static int hideicon = 0; /* Hide icon (1) or show (0) */
static int hidestatus = 0; /* Hide status bar (1) or show (0) */
static int hidestatustext = 0; /* Hide status bar text (1) or show (0) */
static int hideicon = 0; /* Hide icon (1) or show (0) */
static int hidetags = 0; /* Hide status bar (1) or show (0) */
static int hideemptytags = 1; /* Hide empty tags (1) or show (0) */
static int hidefloating = 0; /* Hide floating indicator (1) or show (0) */
@ -244,11 +247,11 @@ static char monocleformat[] = "[%d/%d]"; /* Format of the mono
#endif
#if LAYOUT_DECK
static unsigned int deckcount = 0; /* Display deck count in the deck layout */
static char deckformat[] = "D %d"; /* Format of the deck count. deckcount must be set to 1 for this to be used. */
static char deckformat[] = "[%d]"; /* Format of the deck count. deckcount must be set to 1 for this to be used. */
#endif
#if LAYOUT_STAIRS
static unsigned int stairpx = 20; /* depth of the stairs layout */
static int stairdirection = 1; /* 0: left-aligned, 1: right-aligned */
static unsigned int stairpx = 20; /* Depth of the stairs layout */
static int stairdirection = 1; /* 0: Left-aligned, 1: Right-aligned */
static int stairsamesize = 1; /* 1 means shrink all the staired windows to the same size */
#endif
static int resetlayout = 1; /* Reset layout when there is only one client visible */
@ -259,8 +262,8 @@ static int forcevsplit = 1; /* Force two clients to alway
#endif
/* Bar colors */
static char col_background[] = "#222222"; /* speedwm dark bg & slstatus bg */
static char col_backgroundmid[] = "#222222"; /* speedwm middle background */
static char col_background[] = "#222222"; /* speedwm bar background and status background color */
static char col_title[] = "#222222"; /* speedwm taskbar background color */
/* General text colors */
static char col_textnorm[] = "#bbbbbb"; /* application title bar/font for norm */

View file

@ -48,7 +48,7 @@ case "$VIEWER" in
"-o") VIEWER="cat" ;;
esac
echo "${0}. Run '$0 -h' to see a list of arguments or to jump to a specific section.\n$(cat $DOCDIR/${PREFIX}about $DOCDIR/${PREFIX}$ABOUT2 $DOCDIR/${PREFIX}bindlist $DOCDIR/${PREFIX}deplist $DOCDIR/${PREFIX}$ABOUT3 $DOCDIR/${PREFIX}$XRESOURCES $DOCDIR/${PREFIX}$ABOUT4 $DOCDIR/${PREFIX}$FSIGNAL $DOCDIR/${PREFIX}$ABOUT5 | sed 's|xsetroot -name "fsignal:||g' | sed 's|"||g')" > /tmp/${PREFIX}doc
printf "${0}. Run '$0 -h' to see a list of arguments or to jump to a specific section.\n$(cat $DOCDIR/${PREFIX}about $DOCDIR/${PREFIX}$ABOUT2 $DOCDIR/${PREFIX}bindlist $DOCDIR/${PREFIX}deplist $DOCDIR/${PREFIX}$ABOUT3 $DOCDIR/${PREFIX}$XRESOURCES $DOCDIR/${PREFIX}$ABOUT4 $DOCDIR/${PREFIX}$FSIGNAL $DOCDIR/${PREFIX}$ABOUT5 | sed 's|xsetroot -name "fsignal:||g' | sed 's|"||g' | grep -v "!!")" > /tmp/${PREFIX}doc
case "$ARG1" in
"-w") tail -n $(expr $(cat /tmp/${PREFIX}doc | wc -l) "-" 1) /tmp/${PREFIX}doc > ../readme ;;
@ -103,7 +103,7 @@ case "$ARG1" in
"-1") sed "s|--|${COL2}--${COL1}|g" $DOCDIR/${PREFIX}about | head -n 10 > /tmp/stdout ; $VIEWER /tmp/stdout ;;
"-2") cat $DOCDIR/${PREFIX}$ABOUT2 $DOCDIR/${PREFIX}bindlist | sed "s|--|${COL2}--${COL1}|g" > /tmp/stdout ; $VIEWER /tmp/stdout ;;
"-3") sed "s|--|${COL2}--${COL1}|g" $DOCDIR/${PREFIX}deplist > /tmp/stdout ; $VIEWER /tmp/stdout ;;
"-4") cat $DOCDIR/${PREFIX}$ABOUT3 $DOCDIR/${PREFIX}$XRESOURCES | tail -n 59 | sed "s|--|${COL2}--${COL1}|g" > /tmp/stdout ; $VIEWER /tmp/stdout ;;
"-4") cat $DOCDIR/${PREFIX}$ABOUT3 $DOCDIR/${PREFIX}$XRESOURCES | tail -n 59 | sed "s|--|${COL2}--${COL1}|g" | grep -v "!!" | grep -v "!!" > /tmp/stdout ; $VIEWER /tmp/stdout ;;
"-5") cat $DOCDIR/${PREFIX}$ABOUT4 $DOCDIR/${PREFIX}$FSIGNAL | sed "s|--|${COL2}--${COL1}|g" | sed 's|xsetroot -name "$FSIGNAL:||g' | sed 's|"||g' > /tmp/stdout ; $VIEWER /tmp/stdout ;;
"-6") sed "s|--|${COL2}--${COL1}|g" $DOCDIR/${PREFIX}$ABOUT5 > /tmp/stdout ; $VIEWER /tmp/stdout ;;
"-7") sed "s|--|${COL2}--${COL1}|g" $DOCDIR/${PREFIX}about | head -n 22 | tail -n 11 > /tmp/stdout ; $VIEWER /tmp/stdout ;;

View file

@ -4950,7 +4950,12 @@ updatestatus(void)
{
Monitor* m;
if (!gettextprop(root, XA_WM_NAME, rawstext, sizeof(rawstext)) && !hidestatus) {
strcpy(stext, defaultname);
strcpy(stext, defaultstatus);
// Hide status text
if (hidestatustext)
strcpy(stext, defaultstatus);
statusw = TEXTW(stext) - lrpad + 2;
} else {
if (!hidestatus) {

View file

@ -11,7 +11,7 @@ ResourcePref resources[] = {
{ "font2", STRING, &font2 },
{ "font3", STRING, &font3 },
{ "col_background", STRING, &col_background },
{ "col_backgroundmid", STRING, &col_backgroundmid },
{ "col_title", STRING, &col_title },
{ "col_windowbordersel", STRING, &col_windowbordersel },
{ "col_windowbordernorm", STRING, &col_windowbordernorm },
{ "col_layoutbgsel", STRING, &col_layoutbgsel },
@ -56,7 +56,7 @@ ResourcePref resources[] = {
/* pywal support */
{ "color0", STRING, &col_background },
{ "color4", STRING, &col_backgroundmid },
{ "color4", STRING, &col_title },
{ "color8", STRING, &col_windowbordersel },
{ "color0", STRING, &col_windowbordernorm },
{ "color4", STRING, &col_textnorm },
@ -101,7 +101,7 @@ ResourcePref resources[] = {
{ "shell", STRING, &shell },
{ "status", STRING, &status },
{ "defaultname", STRING, &defaultname },
{ "defaultstatus", STRING, &defaultstatus },
#if LAYOUT_MONOCLE
{ "monocleformat", STRING, &monocleformat },
{ "monocleclientcount", INTEGER, &monocleclientcount },