# Set variables
include "$HOME/.cache/wal/colors-sway"
set $mod Mod4
set $left h
set $down j
set $up k
set $right l
set $term kitty

# Input/output configuration
output * bg $color0 solid_color
output * bg $wallpaper fill
#exec wal -c
#exec wal -i $wallpaper
exec autotiling
exec --no-startup-id fcitx -d

include workspaces
include display
include input

set $launcher ulauncher

floating_modifier Mod1

# Window settings and layout
for_window [class=".*"] border pixel 3
for_window [app_id=".*"] border pixel 3
for_window [app_id="$term"] opacity 0.9
gaps inner 0
gaps outer 0
mouse_warping none
focus_follows_mouse no

# Idle
exec swayidle -w timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"'

# Status Bar
bar {
    swaybar_command waybar
}

# Notification daemon
exec_always ~/.config/mako/launch.sh

# Automounting
exec udiskie

# Window border colors. Transparent borders on unfocused windows
client.focused			$color0	$color0	$color0	$color4	$color4
client.focused_inactive		$color0 $color0 $color0 $color0 $color0

# Wallpaper script
include wallpaper

# General bindings
bindsym $mod+Return		exec $term
bindsym $mod+q			kill
bindsym $mod+d			exec $launcher 
bindsym $mod+Ctrl+d		exec $launcher
bindsym $mod+Shift+c		reload
bindsym $mod+f			fullscreen
bindsym $mod+e			layout toggle all
bindsym $mod+v			exec ~/.scripts/record
bindsym $mod+a			focus parent
bindsym $mod+Shift+space	floating toggle
bindsym $mod+space		focus mode_toggle
bindsym $mod+minus		scratchpad show
bindsym $mod+Shift+minus	move scratchpad
bindsym $mod+dead_grave		scratchpad show
bindsym $mod+Shift+dead_grave	move scratchpad
bindsym $mod+s			gaps inner current plus 5
bindsym $mod+Shift+s		gaps inner current minus 5
bindsym $mod+Ctrl+s		gaps outer current plus 5
bindsym $mod+Ctrl+Shift+s	gaps outer current minus 5
bindsym $mod+Shift+backspace	exec wlogout

# Application bindings
bindsym $mod+Shift+w		exec firejail firefox
bindsym $mod+Shift+Ctrl+w	exec firejail firefox -P Shinobi
bindsym $mod+Shift+e		exec steam
bindsym $mod+Shift+a		exec $term -e pulsemixer
bindsym $mod+Ctrl+Shift+a	exec $term -e cava
bindsym $mod+i			exec $term -e htop --user mark
bindsym $mod+Shift+i			exec $term -e btop
bindsym $mod+Shift+d		exec lightcord --no-sandbox
bindsym $mod+Shift+m		exec $term -e ncmpcpp
bindsym $mod+Ctrl+m		exec catia
bindsym $mod+m			exec spotify
bindsym $mod+p			exec pass clip -r
bindsym $mod+Shift+p		exec $term -e python
bindsym $mod+Shift+t		exec teams
bindsym $mod+b			exec $term -e xfreerdp ~/workspace/bonusan/bonusan.rdp /gateway-usage-method:direct

# Screenshotting
bindsym Print			exec grim -g "$(slurp)" - | wl-copy
bindsym Ctrl+Print		exec grim -g "$(slurp)" ~/screenshot.png
bindsym Shift+Ctrl+Print	exec grim ~/screenshot.png
bindsym Shift+Print		exec grim -g "$(slurp)" - | swappy -f -

# Spotify control
bindsym $mod+Ctrl+$right	exec dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
bindsym $mod+Ctrl+$left		exec dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
bindsym $mod+Ctrl+space		exec dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause

# Moving around
bindsym $mod+$left		focus left
bindsym $mod+$down		focus down
bindsym $mod+$up		focus up
bindsym $mod+$right		focus right
bindsym $mod+Shift+$left	move left
bindsym $mod+Shift+$down	move down
bindsym $mod+Shift+$up		move up
bindsym $mod+Shift+$right	move right
bindsym $mod+g			focus output left
bindsym $mod+semicolon		focus output right
bindsym $mod+Shift+g		move workspace to output left
bindsym $mod+Shift+semicolon	move workspace to output right

# App fixes
assign [class="discord"] $ws3
assign [class="lightcord"] $ws3
for_window [class="discord"] move workspace $ws3
for_window [class="lightcord"] move workspace $ws3
assign [class="Steam"] $ws4
for_window [class="Steam"] move workspace $ws4
for_window [title="Firefox — Sharing Indicator"] floating enable
for_window [title="Firefox — Sharing Indicator"] nofocus
for_window [app_id="ulauncher"] border pixel 0


include /etc/sway/config.d/*
