; wmderland configuration file
;
; To describe a window, run `xprop` and click on the target window, and
; you will get something like this as output:
;
; WM_CLASS(STRING) = (2)"urxvt", (1)"URxvt"
; _NET_WM_NAME(UTF8_STRING) = (3)"urxvt"
;
; To make urxvt floating by default, write in this order:
; (1) res_class (2) res_name (3) _NET_WM_NAME. (1) is always required,
; (2) and (3) are optional.
; example: float URxvt,urxvt,urxvt true


; [Global Variables]
; `set <Key> = <Value>` to set a builtin varaible
; `set $<Variable> = <Value>` to define your own variable
; -----------------------------------------------------------------------
set gap_width = 10
set border_width = 3
set min_window_width = 100
set min_window_height = 100
set float_move_step = 10
set float_resize_step = 10
set focused_color = ff596e84
set unfocused_color = ff394859
set focus_follows_mouse = true

set $Alt = Mod1
set $Cmd = Mod4
set $Mod = $Cmd


; [Spawning Rules]
; Assign an application to a specific workspace
; -----------------------------------------------------------------------
assign URxvt 1
assign jetbrains-idea 2
assign Google-chrome 3
assign Firefox 3
assign dolphin 4
assign ark 4
assign Et 5
assign Wps 5
assign Wpp 5
assign vlc 6
assign Popcorn-Time 6
assign krita 7
assign tiled 7
assign Steam 8
assign PCSX2 8
assign PPSSPPQt 8
assign Minecraft Launcher 8
assign antimicro 9
assign VirtualBox Manager 9
assign Transmission 9


; [Floating Rules]
; Applications that should be floating by default
; -----------------------------------------------------------------------
floating plasmashell true
floating krunner true
floating kcalc true
floating systemsettings true
floating SimpleScreenRecorder true
floating Sxiv true
floating feh true
floating mpv true
floating Peek true
floating Gcolor2 true
floating Steam true
floating PCSX2 true
floating Wine true
floating VirtualBox Machine true
floating Vigilante true
floating xfreerdp true
floating steam_app_72850 true
floating steam_app_105600 true
floating com.hacklympics.main.Main true
floating pyRollCall true


; [Fullscreen Rules]
; Applications that should be fullscreen by default
; -----------------------------------------------------------------------
fullscreen Wine,maplelegendswindowed.exe true
fullscreen insurgency_linux true
fullscreen steam_app_72850 tesv_original.exe true
fullscreen postal2-bin true


; [Prohibit Rules]
; Applications that should be prohibited from being launched
; -----------------------------------------------------------------------
prohibit plasmashell,plasmashell,Desktop — Plasma true
prohibit Wine,Wine System Tray true


; [Keybind]
; `bindsym <Modifier>+<Key> action1; action2; action3; ...` where
; an action can be either a built-in action or a shell command to execute
; -----------------------------------------------------------------------
bindsym $Mod+1 goto_workspace 1
bindsym $Mod+2 goto_workspace 2
bindsym $Mod+3 goto_workspace 3
bindsym $Mod+4 goto_workspace 4
bindsym $Mod+5 goto_workspace 5
bindsym $Mod+6 goto_workspace 6
bindsym $Mod+7 goto_workspace 7
bindsym $Mod+8 goto_workspace 8
bindsym $Mod+9 goto_workspace 9

bindsym $Mod+Shift+j workspace -1
bindsym $Mod+Shift+k workspace +1

bindsym $Mod+Shift+1 move_window_to_workspace 1
bindsym $Mod+Shift+2 move_window_to_workspace 2
bindsym $Mod+Shift+3 move_window_to_workspace 3
bindsym $Mod+Shift+4 move_window_to_workspace 4
bindsym $Mod+Shift+5 move_window_to_workspace 5
bindsym $Mod+Shift+6 move_window_to_workspace 6
bindsym $Mod+Shift+7 move_window_to_workspace 7
bindsym $Mod+Shift+8 move_window_to_workspace 8
bindsym $Mod+Shift+9 move_window_to_workspace 9

bindsym $Mod+h navigate_left
bindsym $Mod+l navigate_right
bindsym $Mod+k navigate_up
bindsym $Mod+j navigate_down
bindsym $Mod+$Alt+Shift+h float_move_left
bindsym $Mod+$Alt+Shift+l float_move_right
bindsym $Mod+$Alt+Shift+k float_move_up
bindsym $Mod+$Alt+Shift+j float_move_down
bindsym $Mod+$Alt+h resize_width -3
bindsym $Mod+$Alt+l resize_width +3
bindsym $Mod+$Alt+k resize_height -3
bindsym $Mod+$Alt+j resize_height +3
bindsym $Mod+g tile_h
bindsym $Mod+v tile_v
bindsym $Mod+Shift+space toggle_floating
bindsym $Mod+f toggle_fullscreen
bindsym $Mod+Shift+q kill
bindsym $Mod+Shift+Escape exit
bindsym $Mod+Shift+r reload

bindsym $Mod+$Alt+1 resize_set_ratio 10
bindsym $Mod+$Alt+2 resize_set_ratio 20
bindsym $Mod+$Alt+3 resize_set_ratio 30
bindsym $Mod+$Alt+4 resize_set_ratio 40
bindsym $Mod+$Alt+5 resize_set_ratio 50
bindsym $Mod+$Alt+6 resize_set_ratio 60
bindsym $Mod+$Alt+7 resize_set_ratio 70
bindsym $Mod+$Alt+8 resize_set_ratio 80
bindsym $Mod+$Alt+9 resize_set_ratio 90
bindsym $Mod+$Alt+equal resize_reset_ratios

bindsym XF86MonBrightnessUp exec light -A 10
bindsym XF86MonBrightnessDown exec light -U 10
bindsym XF86KbdBrightnessUp exec kbdlight up 10
bindsym XF86KbdBrightnessDown exec kbdlight down 10
bindsym XF86LaunchA exec rofi -show window
bindsym XF86LaunchB exec rofi -show drun
bindsym XF86AudioPrev exec mpc prev
bindsym XF86AudioNext exec mpc next
bindsym XF86AudioPlay exec mpc toggle
bindsym XF86AudioMute exec amixer -q -D pulse set Master toggle
bindsym XF86AudioRaiseVolume exec amixer -q -D pulse set Master 5%+ unmute
bindsym XF86AudioLowerVolume exec amixer -q -D pulse set Master 5%- unmute
bindsym XF86PowerOff exec qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout -1 -1 -1
bindsym $Mod+Escape exec toggle_screen.sh

bindsym Control+Shift+3 exec scrotutl -f
bindsym Control+Shift+4 exec scrotutl -s
bindsym Control+Shift+space+4 exec

bindsym $Mod+d exec rofi -show drun
bindsym $Mod+Return goto_workspace 1; exec urxvt


; [Autostart]
; Applications to execute when WM starts up (DON'T append '&' at the end)
; -----------------------------------------------------------------------
exec pulseaudio --start --log-target=syslog
exec_on_reload ~/.config/mpd/launch.sh
exec dunst
exec dispad
exec displayctl
exec klipper
exec killall krunner
exec compton --config ~/.config/compton/compton.conf
exec_on_reload ~/.config/polybar/launch.sh
