# PLEASE READ THE MAN PAGE BEFORE EDITING THIS FILE!
# https://htmlpreview.github.io/?https://github.com/conformal/spectrwm/blob/master/spectrwm.html
# NOTE: all rgb color values in this file are in hex! see XQueryColor for examples

workspace_limit	        = 9
focus_mode	        	= follow
focus_close	        	= last
focus_close_wrap    	= 1
focus_default		    = first
spawn_position	     	= next
workspace_clamp	        = 0
warp_focus		        = 1
warp_pointer		    = 1

# Window Decoration
border_width		    = 1
color_focus		        = rgb:bb/c5/ff
color_focus_maximized   = yellow
color_unfocus		    = rgb:88/88/88
color_unfocus_maximized	= rgb:88/88/00
region_padding      	= 6 
tile_gap		        = 6

# Region containment
# Distance window must be dragged/resized beyond the region edge before it is
# allowed outside the region.
# boundary_width 		= 50

# Remove window border when bar is disabled and there is only one window in workspace
# disable_border		= 1

# Bar Settings
bar_action              = /home/dt/baraction.sh
bar_action_expand       = 1
bar_enabled	        	= 1
bar_border_width	    = 1
bar_border[1]	    	= rgb:28/2a/36
bar_border_unfocus[1]	= rgb:28/2a/36
bar_color[1]	    	= rgb:28/2a/36, rgb:00/80/80
bar_color_selected[1]	= rgb:00/80/80
bar_delay               = 5
bar_font_color[1]   	= rgb:bb/c5/ff, rgb:e1/ac/ff, rgb:dd/ff/a7, rgb:ff/8b/92, rgb:ff/e5/85, rgb:89/dd/ff
bar_font_color_selected	= black
bar_font	        	= Mononoki Nerd Font:size=9, JoyPixels:size=9
bar_justify	        	= center
bar_format	        	= +|L+1<+N:+I +S (+D) +W +|R+A+1<+@fg=5; %a %b %d [%R] 
workspace_indicator 	= listcurrent,listactive,markcurrent,printnames
bar_at_bottom	     	= 0
stack_enabled	    	= 1
clock_enabled	    	= 1
clock_format	    	= %a %b %d %R %Z %Y
iconic_enabled      	= 0
maximize_hide_bar	    = 0
window_class_enabled	= 1
window_instance_enabled	= 1
window_name_enabled 	= 1
verbose_layout	    	= 1
urgent_enabled	    	= 1

# Dialog box size ratio when using TRANSSZ quirk; 0.3 < dialog_ratio <= 1.0
# dialog_ratio		= 0.6

# Split a non-RandR dual head setup into one region per monitor
# (non-standard driver-based multihead is not seen by spectrwm)
# region		= screen[1]:1280x1024+0+0
# region		= screen[1]:1280x1024+1280+0

# Launch applications in a workspace of choice
# autorun		= ws[1]:xterm
# autorun		= ws[2]:xombrero http://www.openbsd.org
autorun = ws[1]:nitrogen --restore
autorun = ws[1]:picom

# Customize workspace layout at start
# layout		= ws[1]:4:0:0:0:vertical
# layout		= ws[2]:0:0:0:0:horizontal
# layout		= ws[3]:0:0:0:0:fullscreen
# layout		= ws[4]:4:0:0:0:vertical_flip
# layout		= ws[5]:0:0:0:0:horizontal_flip

# Set workspace name at start
name			= ws[1]:dev
name			= ws[2]:www
name			= ws[3]:sys
name			= ws[4]:doc
name			= ws[5]:vbox
name			= ws[6]:chat
name			= ws[7]:mus
name			= ws[8]:vid
name			= ws[9]:gfx

# Mod key, (Windows key is Mod4) (Apple key on OSX is Mod2)
modkey = Mod4

# This allows you to include pre-defined key bindings for your keyboard layout.
# keyboard_mapping = ~/.spectrwm_us.conf

# PROGRAMS

# Validated default programs:
# program[lock]		= xlock
# program[term]		= xterm
# program[menu]		= dmenu_run $dmenu_bottom -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_color_selected -sf $bar_font_color_selected
# program[search]	= dmenu $dmenu_bottom -i -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_color_selected -sf $bar_font_color_selected
# program[name_workspace]	= dmenu $dmenu_bottom -p Workspace -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_color_selected -sf $bar_font_color_selected

# To disable validation of the above, free the respective binding(s):
# bind[]		= MOD+Shift+Delete	# disable lock
# bind[]		= MOD+Shift+Return	# disable term
# bind[]		= MOD+p			# disable menu

# Optional default programs that will only be validated if you override:
# program[screenshot_all]	= screenshot.sh full	# optional
# program[screenshot_wind]	= screenshot.sh window	# optional
# program[initscr]	= initscreen.sh			# optional

# EXAMPLE: Define 'firefox' action and bind to key.
# program[firefox]	= firefox http://spectrwm.org/
# bind[firefox]		= MOD+Shift+b

# QUIRKS
# Default quirks, remove with: quirk[class:name] = NONE
# quirk[MPlayer:xv]			= FLOAT + FULLSCREEN + FOCUSPREV
# quirk[OpenOffice.org 2.4:VCLSalFrame]	= FLOAT
# quirk[OpenOffice.org 3.0:VCLSalFrame]	= FLOAT
# quirk[OpenOffice.org 3.1:VCLSalFrame]	= FLOAT
# quirk[Firefox-bin:firefox-bin]		= TRANSSZ
# quirk[Firefox:Dialog]			= FLOAT
# quirk[Gimp:gimp]			= FLOAT + ANYWHERE
# quirk[XTerm:xterm]			= XTERM_FONTADJ
# quirk[xine:Xine Window]			= FLOAT + ANYWHERE
# quirk[Xitk:Xitk Combo]			= FLOAT + ANYWHERE
# quirk[xine:xine Panel]			= FLOAT + ANYWHERE
# quirk[Xitk:Xine Window]			= FLOAT + ANYWHERE
# quirk[xine:xine Video Fullscreen Window] = FULLSCREEN + FLOAT
# quirk[pcb:pcb]				= FLOAT

# Key bindings for United States (us) keyboards
# unbind with: bind[] = <keys>
bind[bar_toggle]	= MOD+b
bind[bar_toggle_ws]	= MOD+Shift+b
bind[button2]		= MOD+v
bind[cycle_layout]	= MOD+space
bind[flip_layout]	= MOD+Shift+backslash
bind[float_toggle]	= MOD+t
bind[focus_main]	= MOD+m
bind[focus_next]	= MOD+j
bind[focus_next]	= MOD+Tab
bind[focus_prev]	= MOD+k
bind[focus_prev]	= MOD+Shift+Tab
bind[focus_urgent]	= MOD+u
bind[height_grow]	= MOD+Shift+equal
bind[height_shrink]	= MOD+Shift+minus
bind[iconify]		= MOD+w
bind[initscr]		= MOD+Shift+i
bind[lock]		= MOD+Shift+Delete
bind[master_add]	= MOD+Shift+comma
bind[master_del]	= MOD+Shift+period
bind[master_grow]	= MOD+l
bind[master_shrink]	= MOD+h
bind[maximize_toggle]	= MOD+e
bind[move_down]		= MOD+Shift+bracketright
bind[move_left]		= MOD+bracketleft
bind[move_right]	= MOD+bracketright
bind[move_up]		= MOD+Shift+bracketleft
bind[mvrg_1]		= MOD+Shift+KP_End
bind[mvrg_2]		= MOD+Shift+KP_Down
bind[mvrg_3]		= MOD+Shift+KP_Next
bind[mvrg_4]		= MOD+Shift+KP_Left
bind[mvrg_5]		= MOD+Shift+KP_Begin
bind[mvrg_6]		= MOD+Shift+KP_Right
bind[mvrg_7]		= MOD+Shift+KP_Home
bind[mvrg_8]		= MOD+Shift+KP_Up
bind[mvrg_9]		= MOD+Shift+KP_Prior
bind[mvws_1]		= MOD+Shift+1
bind[mvws_2]		= MOD+Shift+2
bind[mvws_3]		= MOD+Shift+3
bind[mvws_4]		= MOD+Shift+4
bind[mvws_5]		= MOD+Shift+5
bind[mvws_6]		= MOD+Shift+6
bind[mvws_7]		= MOD+Shift+7
bind[mvws_8]		= MOD+Shift+8
bind[mvws_9]		= MOD+Shift+9
bind[mvws_10]		= MOD+Shift+0
bind[mvws_11]		= MOD+Shift+F1
bind[mvws_12]		= MOD+Shift+F2
bind[mvws_13]		= MOD+Shift+F3
bind[mvws_14]		= MOD+Shift+F4
bind[mvws_15]		= MOD+Shift+F5
bind[mvws_16]		= MOD+Shift+F6
bind[mvws_17]		= MOD+Shift+F7
bind[mvws_18]		= MOD+Shift+F8
bind[mvws_19]		= MOD+Shift+F9
bind[mvws_20]		= MOD+Shift+F10
bind[mvws_21]		= MOD+Shift+F11
bind[mvws_22]		= MOD+Shift+F12
bind[name_workspace]	= MOD+Shift+slash
bind[quit]		= MOD+Shift+q
bind[raise_toggle]	= MOD+Control+r
bind[restart]		= MOD+Shift+r
bind[rg_1]		= MOD+KP_End
bind[rg_2]		= MOD+KP_Down
bind[rg_3]		= MOD+KP_Next
bind[rg_4]		= MOD+KP_Left
bind[rg_5]		= MOD+KP_Begin
bind[rg_6]		= MOD+KP_Right
bind[rg_7]		= MOD+KP_Home
bind[rg_8]		= MOD+KP_Up
bind[rg_9]		= MOD+KP_Prior
bind[rg_next]		= MOD+period
bind[rg_prev]		= MOD+comma
bind[screenshot_all]	= MOD+s
bind[screenshot_wind]	= MOD+Shift+s
bind[search_win]	= MOD+f
bind[search_workspace]	= MOD+slash
bind[stack_dec]		= MOD+Shift+period
bind[stack_inc]		= MOD+Shift+comma
bind[stack_reset]	= MOD+Shift+space
# bind[swap_main]		= MOD+Return
bind[swap_next]		= MOD+Shift+j
bind[swap_prev]		= MOD+Shift+k
bind[uniconify]		= MOD+Shift+w
bind[version]		= MOD+Shift+v
bind[width_grow]	= MOD+equal
bind[width_shrink]	= MOD+minus
bind[wind_del]		= MOD+Shift+c
bind[wind_kill]		= MOD+Shift+x
bind[ws_1]		= MOD+1
bind[ws_2]		= MOD+2
bind[ws_3]		= MOD+3
bind[ws_4]		= MOD+4
bind[ws_5]		= MOD+5
bind[ws_6]		= MOD+6
bind[ws_7]		= MOD+7
bind[ws_8]		= MOD+8
bind[ws_9]		= MOD+9
bind[ws_10]		= MOD+0
bind[ws_11]		= MOD+F1
bind[ws_12]		= MOD+F2
bind[ws_13]		= MOD+F3
bind[ws_14]		= MOD+F4
bind[ws_15]		= MOD+F5
bind[ws_16]		= MOD+F6
bind[ws_17]		= MOD+F7
bind[ws_18]		= MOD+F8
bind[ws_19]		= MOD+F9
bind[ws_20]		= MOD+F10
bind[ws_21]		= MOD+F11
bind[ws_22]		= MOD+F12
bind[ws_next]		= MOD+Right
bind[ws_next_all]	= MOD+Up
bind[ws_next_move]	= MOD+Shift+Up
bind[ws_prev]		= MOD+Left
bind[ws_prev_all]	= MOD+Down
bind[ws_prev_move]	= MOD+Shift+Down
bind[ws_prior]		= MOD+a


### PROGRAM KEYBINDINGS ###

program[alacritty]  = alacritty -e fish
bind[alacritty]		= MOD+Return

program[dmenu_run]  = dmenu_run
bind[dmenu_run]		= MOD+Shift+Return

####################################################
### Dmenu scripts launched with ALT + CTRL + KEY ###
####################################################

program[dmenu-edit-configs]  = ./.dmenu/dmenu-edit-configs.sh
bind[dmenu-edit-configs]     = MOD1+Control+e

program[dmenu-sysmon]  = ./.dmenu/dmenu-sysmon.sh
bind[dmenu-sysmon]     = MOD1+Control+m

program[passmenu]  = passmenu
bind[passmenu]     = MOD1+Control+p

program[dmenu-reddio]  = ./.dmenu/dmenu-reddio.sh
bind[dmenu-reddio]     = MOD1+Control+r

program[dmenu-surfraw]  = ./.dmenu/dmenu-surfraw.sh
bind[dmenu-surfraw]     = MOD1+Control+s

program[dmenu-scrot]  = ./.dmenu/dmenu-scrot.sh
bind[dmenu-scrot]     = MOD1+Control+i

####################################################
### TUI programs launched with SUPER + ALT + KEY ###
####################################################

program[lynx]  = alacritty -e lynx gopher://distro.tube
bind[lynx]     = MOD+MOD1+l

program[newsboat]  = alacritty -e newsboat
bind[newsboat]     = MOD+MOD1+n

program[rtv]  = alacritty -e rtv
bind[rtv]     = MOD+MOD1+r

program[neomutt]  = alacritty -e neomutt
bind[neomutt]     = MOD+MOD1+e

program[toot]  = alacritty -e sh ./scripts/toot.sh
bind[toot]     = MOD+MOD1+m

program[tig]  = alacritty -e sh ./scripts/tig-script.sh
bind[tig]     = MOD+MOD1+t

program[vifm]  = alacritty -e sh ./.config/vifm/scripts/vifmrun
bind[vifm]     = MOD+MOD1+f

program[joplin]  = alacritty -e joplin
bind[joplin]     = MOD+MOD1+j

program[cmus]  = alacritty -e cmus
bind[cmus]     = MOD+MOD1+c

program[irssi]  = alacritty -e irssi
bind[irssi]     = MOD+MOD1+i

program[ytv]  = alacritty -e youtube-viewer
bind[ytv]     = MOD+MOD1+y

program[ncpamixer]  = alacritty -e ncpamixer
bind[ncpamixer]     = MOD+MOD1+a
