###############################################################################
# Session Management
###############################################################################

set $send_reload_pending_tick swaymsg -t send_tick '{"status": "reload_pending"}'
exec_always swaymsg -t send_tick '{"status": "reload_done"}'

## Session // Exit App // <><Shift> q ##
set_from_resource $wm.binding.exit_app wm.binding.exit_app Shift+q
bindsym $mod+$wm.binding.exit_app [con_id="__focused__"] kill

## Session // Terminate App // <><Alt> q ##
set_from_resource $wm.binding.kill_app wm.binding.kill_app q
bindsym $mod+$alt+$wm.binding.kill_app [con_id="__focused__"] exec --no-startup-id kill -9 $(xdotool getwindowfocus getwindowpid)

## Session // Reload Sway Config // <><Shift> c ##
set_from_resource $wm.binding.reload wm.binding.reload Shift+c
bindsym $mod+$wm.binding.reload exec $send_reload_pending_tick && swaymsg reload

## Session // Refresh Session // <><Shift> r ##
set_from_resource $wm.binding.refresh wm.binding.refresh Shift+r
set_from_resource $wm.program.refresh_ui wm.program.refresh_ui /usr/bin/regolith-look refresh
bindsym $mod+$wm.binding.refresh exec $wm.program.refresh_ui

## Session // Logout // <><Shift> e ##
set_from_resource $wm.binding.logout wm.binding.logout Shift+e
set_from_resource $wm.program.logout wm.program.logout /usr/bin/gnome-session-quit --logout --no-prompt && swaymsg exit
set_from_resource $sway.prompt.logout sway.prompt.logout "swaynag -t warning -m 'Do you really want to logout?' -b 'Logout' '$wm.program.logout'"
bindsym $mod+$wm.binding.logout exec $sway.prompt.logout 

## Session // Reboot // <><Shift> b ##
set_from_resource $wm.binding.reboot wm.binding.reboot Shift+b
set_from_resource $wm.program.reboot wm.program.reboot /usr/bin/gnome-session-quit --reboot --no-prompt
set_from_resource $sway.prompt.reboot sway.prompt.reboot "swaynag -t warning -m 'Do you really want to reboot your system?' -b 'Reboot' '$wm.program.reboot'"
bindsym $mod+$wm.binding.reboot exec $sway.prompt.reboot 

## Session // Power Down // <><Shift> p ##
set_from_resource $wm.binding.shutdown wm.binding.shutdown Shift+p
set_from_resource $wm.program.shutdown wm.program.shutdown /usr/bin/gnome-session-quit --power-off --no-prompt
set_from_resource $sway.prompt.shutdown sway.prompt.shutdown "swaynag -t warning -m 'Do you really want to shutdown' -b 'Shutdown' '$wm.program.shutdown'"
bindsym $mod+$wm.binding.shutdown exec $sway.prompt.shutdown 

## Session // Sleep // <><Shift> s ##
set_from_resource $wm.binding.sleep wm.binding.sleep Shift+s
set_from_resource $wm.program.sleep wm.program.sleep systemctl suspend
bindsym --locked $mod+$wm.binding.sleep exec $wm.program.sleep
