# sample config for khd

# set border color for different modes
khd mode default  on_enter chunkc border::color 0xddbdd322
khd mode switcher on_enter chunkc border::color 0xddd5c4a1
khd mode ytd      on_enter chunkc border::color 0xddd75f5f
khd mode swap     on_enter chunkc border::color 0xdd458588
khd mode tree     on_enter chunkc border::color 0xddfabd2f
khd mode space    on_enter chunkc border::color 0xddb16286
khd mode info     on_enter chunkc border::color 0xddcd950c


# 0x2A is \
# toggle between modes
ctrl - 0x2A             :   khd -e "mode activate switcher"
switcher + ctrl - 0x2A  :   khd -e "mode activate default"
ytd + ctrl - 0x2A       :   khd -e "mode activate default"
swap + ctrl - 0x2A      :   khd -e "mode activate default"
space + ctrl - 0x2A     :   khd -e "mode activate default"
tree + ctrl - 0x2A      :   khd -e "mode activate default"
info + ctrl - 0x2A      :   khd -e "mode activate default"

switcher - y            :   khd -e "mode activate ytd"
switcher - m            :   khd -e "mode activate swap"
switcher - s            :   khd -e "mode activate space"
switcher - t            :   khd -e "mode activate tree"
switcher - i            :   khd -e "mode activate info"



# switcher mode
switcher - r            :   khd -e "reload" # reload config

#switcher - return       :   open -na /Applications/Hyper.app;\
#                            khd -e "mode activate default"

cmd - return            :   osascript /Users/hunner/local/bin/terminal.scpt
#cmd - return            :   osascript /Users/hunner/local/bin/iterm_window.scpt
cmd + ctrl + alt - 9    :   osascript /Users/hunner/local/bin/grayscale.scpt

cmd + alt - h           :   chunkc tiling::window --focus west
cmd + alt - j           :   chunkc tiling::window --focus south
cmd + alt - k           :   chunkc tiling::window --focus north
cmd + alt - l           :   chunkc tiling::window --focus east

ctrl + shift - 1        :   chunkc tiling::window --send-to-desktop 1
ctrl + shift - 2        :   chunkc tiling::window --send-to-desktop 2
ctrl + shift - 3        :   chunkc tiling::window --send-to-desktop 3
ctrl + shift - 4        :   chunkc tiling::window --send-to-desktop 4
ctrl + shift - 5        :   chunkc tiling::window --send-to-desktop 5
ctrl + shift - 6        :   chunkc tiling::window --send-to-desktop 6
ctrl + shift - 7        :   chunkc tiling::window --send-to-desktop 7
ctrl + shift - 8        :   chunkc tiling::window --send-to-desktop 8
ctrl + shift - 9        :   chunkc tiling::window --send-to-desktop 9
ctrl + shift - 0        :   chunkc tiling::window --send-to-desktop 10
ctrl + shift + alt - 1  :   chunkc tiling::window --send-to-desktop 11
ctrl + shift + alt - 2  :   chunkc tiling::window --send-to-desktop 12
ctrl + shift + alt - 3  :   chunkc tiling::window --send-to-desktop 13
ctrl + shift + alt - 4  :   chunkc tiling::window --send-to-desktop 14
ctrl + shift + alt - 5  :   chunkc tiling::window --send-to-desktop 15
ctrl + shift + alt - 6  :   chunkc tiling::window --send-to-desktop 16

# Focus display
switcher - 1    :   chunkc tiling::monitor -f 1 ; khd -e "mode activate default"
switcher - 2    :   chunkc tiling::monitor -f 2 ; khd -e "mode activate default"
switcher - 3    :   chunkc tiling::monitor -f 3 ; khd -e "mode activate default"

# Move window to display
swap + shift - 1        :   chunkc tiling::window --send-to-monitor 1 ; khd -e "mode activate default"
swap + shift - 2        :   chunkc tiling::window --send-to-monitor 2 ; khd -e "mode activate default"
swap + shift - 3        :   chunkc tiling::window --send-to-monitor 3 ; khd -e "mode activate default"

## ytd mode
#ytd - x                 :   ytc play;\
#                            khd -e "mode activate default"
#
#ytd - s                 :   ytc mkfav;\
#                            khd -e "mode activate default"
#
## 0x32 == <
#ytd - 0x32              :   ytc fav
#ytd - z                 :   ytc prev
#ytd - c                 :   ytc next
#ytd - v                 :   ytc stop
#ytd - a                 :   ytc volup
#ytd - d                 :   ytc voldown
#ytd - right             :   ytc seekfw
#ytd - left              :   ytc seekbk

# Swap windows around
swap - h                :   chunkc tiling::window --swap west
swap - j                :   chunkc tiling::window --swap south
swap - k                :   chunkc tiling::window --swap north
swap - l                :   chunkc tiling::window --swap east

# Move windows around
swap + shift - h        :   chunkc tiling::window --warp west
swap + shift - j        :   chunkc tiling::window --warp south
swap + shift - k        :   chunkc tiling::window --warp north
swap + shift - l        :   chunkc tiling::window --warp east

# toggle window float
swap - t                :   chunkc tiling::window --toggle float

# toggle window native fullscreen
swap - f                :   chunkc tiling::window --toggle native-fullscreen

# toggle sticky, float and resize to picture-in-picture size
swap - s                :   chunkc tiling::window --toggle sticky;\
                            chunkc tiling::window --warp-floating pip-right

# Change space mode
space - a               :   chunkc tiling::desktop --layout bsp
space - s               :   chunkc tiling::desktop --layout monocle
space - d               :   chunkc tiling::desktop --layout float

# Change padding
space - p               :   chunkc tiling::desktop --padding inc
space + shift - p       :   chunkc tiling::desktop --padding dec

# Change gap
space - g               :   chunkc tiling::desktop --gap inc
space + shift - g       :   chunkc tiling::desktop --gap dec

space + shift - x       :   kwmc space -g decrease horizontal
space + shift - y       :   kwmc space -g decrease vertical

# Increase window padding
space - h               :   chunkc tiling::window --use-temporary-ratio 0.05 --adjust-window-edge west
space - j               :   chunkc tiling::window --use-temporary-ratio 0.05 --adjust-window-edge south
space - k               :   chunkc tiling::window --use-temporary-ratio 0.05 --adjust-window-edge south
space - l               :   chunkc tiling::window --use-temporary-ratio 0.05 --adjust-window-edge south

# Decrease window padding
space + shift - h       :   chunkc tiling::window --use-temporary-ratio -0.05 --adjust-window-edge west
space + shift - j       :   chunkc tiling::window --use-temporary-ratio -0.05 --adjust-window-edge south
space + shift - k       :   chunkc tiling::window --use-temporary-ratio -0.05 --adjust-window-edge south
space + shift - l       :   chunkc tiling::window --use-temporary-ratio -0.05 --adjust-window-edge south


# tree mode
tree - f                :   kwmc window -z fullscreen
tree - d                :   kwmc window -z parent
tree - w                :   kwmc window -t focused
tree - r                :   kwmc tree rotate 90

tree - s                :   kwmc window -c split - mode toggle;\
                            khd -e "mode activate default"

tree - c                :   kwmc window -c type toggle;\
                            khd -e "mode activate default"

tree - h                :   kwmc window -c expand 0.05 west
tree - j                :   kwmc window -c expand 0.05 south
tree - k                :   kwmc window -c expand 0.05 north
tree - l                :   kwmc window -c expand 0.05 east
tree + shift - h        :   kwmc window -c reduce 0.05 west
tree + shift - j        :   kwmc window -c reduce 0.05 south
tree + shift - k        :   kwmc window -c reduce 0.05 north
tree + shift - l        :   kwmc window -c reduce 0.05 east

tree - p                :   kwmc tree -pseudo create
tree + shift - p        :   kwmc tree -pseudo destroy

tree - o                :   kwmc window -s prev
tree + shift - o        :   kwmc window -s next
