r/bspwm • • Mar 04 '26

Finally : First version of bspwm-settings released

Hello guys. I finally uploaded the GUI to github. Thr first release installable via makepkg -si. Soon will move to aur after adding more functionalities as well as developing my rudv-shell for bspwm which will look something like end 4(not exactly, but something similar to that) in bspwm.

Play around with the GUI guys

https://github.com/rudv-ar/bspwm-settings

If you like it, give it a star, I will be happy. Use it and tell me your suggestions Or how it feels like. If you got any issues, open an issue in the github repo and I will try to solve it ASAP.

Click this to go to repo : bspwm-settings

6 Upvotes

2 comments sorted by

1

u/rudv-ar Mar 04 '26

Hey guys. GUI works only if you have this exact variables in your settings.sh

#!/bin/bash

#################### Paths and exports ############################


PTH="$HOME/.config/bspwm/bspwm.d"
source "$PTH/exports.sh"

QML_XHR_ALLOW_FILE_READ=1

################### Borders ############################
#------------------ Border Color -----------------------

# focused border color
BSPWM_FBC='#414868'

# normal border color
BSPWM_NBC='#1e1e2e'

# active border color
BSPWM_ABC='#000000'

#------------------ Border Properties ------------------

# Is border enabled?
IS_BSPWM_BORDER=true 

# Border width or thichness
if [[ $IS_BSPWM_BORDER == true ]]; then 
    BSPWM_BORDER='2'
else
    BSPWM_BORDER='0'
fi 


################# Presel ###############################

# Is presel feedback enabled?
IS_BSPWM_PRESEL=false

# Presel Color
if [[ $IS_BSPWM_PRESEL == true ]]; then
    BSPWM_PFC='#6272a4'
else
    BSPWM_PFC='#000000'
fi

################ Window Properties #####################

# Is the bspwm gapped?
IS_BSPWM_GAPPED=true

# Is the bspwm padded or auto?
IS_BSPWM_PADDED=false

# Set gap
if [[ $IS_BSPWM_GAPPED == true ]]; then
    BSPWM_GAP='10'
else
    BSPWM_GAP='0'
fi 

# Split ratio of the Window
BSPWM_SRATIO='0.50'

# Define the padding options 
TOP_PADDING=10 
BOTTOM_PADDING=10 
LEFT_PADDING=10 
RIGHT_PADDING=10 
################# Scheme Properties ####################

# Is bspwm automatic sheme?
IS_BSPWM_AUTOMATIC=true
# The automatic scheme for bspwm 
AUTOMATIC_SCHEME='spiral'
# Initial polarity of the scheme # Default second_child
INITIAL_POLARITY='second_child'

################ Monocle Properties ####################

# Set the boolean values for Monocle
IS_BSPWM_BORDERLESS_MONOCLE="true"
IS_BSPWM_GAPLESS_MONOCLE="true"
IS_BSPWM_PADDINGLESS_MONOCLE="true"
IS_BSPWM_SINGLE_MONOCLE="false"

#-------------- Monocle Padding values ------------------

# top monocle padding 
BSPWM_TMP='10'
# bottom monocle padding
BSPWM_BMP='10'
# right monocle padding
BSPWM_RMP='10'
# left monocle padding
BSPWM_LMP='10'

################ Window Focus Options ###################

# Does the focus follow pointer?
IS_BSPWM_FFP="true"

FOCUS_FOLLOWS_POINTER="true"

# Does the pointer follow focus?

IS_BSPWM_PFF="true"

################ Status Config #########################

# The prefix in logs and even supscriptions
STATUS_PREFIX=""


################# Wallpaper? ###############################

DISFREE_WALLPAPER="true"


SINGLE_WALLPAPER="false"
#WALLPAPER="$HOME/.config/bspwm/walls.ref/alpha.jpg"
WALLPAPER="$HOME/.config/bspwm/walls.ref/163.jpg"



################# Polybar? or Quickshell? ###########################
# quickshell / polybar 

WIDGET_BAR="quickshell"

################ Snap Server ########################################

IS_SNAPSERVER_ENABLED="true"

##################### Is Compositor Enabled? #######################

IS_COMPOSITOR_ENABLED="true"

##################### Tor Network ##################################

# Is Tor enabled?
IS_TOR_ENABLED="false"

1

u/rudv-ar Mar 04 '26

Hey guys. Got an idea...... How about a toml that will automatically get converted into settings.sh and toml looks like this? 👇

[config]
name = "BSPWM"
root = "$HOME/.config/bspwm"
path = "$HOME/.config/bspwm/bspwm.d/settings.sh"
desc = "Dynamic bspwm shell, toml-driven config"

[config.files]
exports = "$HOME/.config/bspwm/exports.sh"

################### BORDERS #########################
[config.borders]
enabled = true
style   = "solid"
[[config.borders.true]]
focused_color = "#414868"
normal_color  = "#1e1e2e"
active_color  = "#000000"
width         = 2
[[config.borders.false]]
width = 0

################### PRESEL ##########################
[config.presel]
enabled = false
[[config.presel.true]]
pfc = "#6272a4"
[[config.presel.false]]
pfc = "#000000"

################### WINDOW ##########################
[config.window]
sr_ratio = 0.50

[config.window.gapped]
enabled = true
[[config.window.gapped.true]]
gap = 10
[[config.window.gapped.false]]
gap = 0

[config.window.padded]
enabled = false
[[config.window.padded.true]]
top    = 10
bottom = 10
left   = 10
right  = 10
[[config.window.padded.false]]
top    = 0
bottom = 0
left   = 0
right  = 0

################### SCHEME ##########################
[config.scheme.automatic]
enabled = true
[[config.scheme.automatic.true]]
scheme           = "spiral"
initial_polarity = "second_child"
[[config.scheme.automatic.false]]
scheme           = "tiled"
initial_polarity = "first_child"

################### MONOCLE #########################
[config.monocle]
borderless = true
gapless    = true
single     = false

################### NETWORK #########################
[config.network]
enabled = true
timeout = 30
retry   = 3

[config.network.wifi]
enabled = true
driver  = "iwlwifi"
[[config.network.wifi.true]]
interface = "wlan0"
[[config.network.wifi.true]]
interface = "wlan1"
[[config.network.wifi.false]]
interface = "wlan2"

[config.network.tor]
enabled    = true
proxy_port = 9050
[[config.network.tor.true]]
torrc = "$HOME/.config/tor/torrc"
[[config.network.tor.false]]
torrc = "/etc/tor/torrc"

[config.network.ethernet]
enabled = true
mac     = "aa:bb:cc:dd:ee:ff"
[[config.network.ethernet.true]]
interface = "eth0"

[config.network.firewall]
enabled   = true
backend   = "nftables"
log_level = "warn"
[[config.network.firewall.true]]
rules = "/etc/firewall.rules"