# Sway config — Euri Linux dark theme
# See man 5 sway for reference

set $mod Mod4
set $left h
set $down j
set $up k
set $right l
set $term foot

font pango:JetBrains Mono Nerd Font 10

floating_modifier $mod normal

# Colors
# border  background  text  indicator  child_border
client.focused          #4A9EFF #2A3038 #E3E2E6 #00D4FF
client.unfocused        #2A3038 #20252B #676E7D #20252B
client.focused_inactive #2A3038 #2A3038 #E3E2E6 #2A3038
client.urgent           #FF5555 #20252B #E3E2E6 #FF5555

default_border pixel 2
hide_edge_borders smart
focus_follows_mouse yes

gaps inner 4
gaps outer 2
smart_gaps on
smart_borders on

# Workspaces
workspace 1 output *
workspace 2 output *
workspace 3 output *
workspace 4 output *
workspace 5 output *
workspace 6 output *
workspace 7 output *
workspace 8 output *
workspace 9 output *
workspace 10 output *

# Keybindings
bindsym $mod+Return exec $term
bindsym $mod+Shift+q kill
bindsym $mod+d exec wofi --show drun
bindsym $mod+space exec wofi --show run

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+b splith
bindsym $mod+v splitv
bindsym $mod+f fullscreen
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle
bindsym $mod+a focus parent
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show

bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10

bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10

bindsym $mod+Shift+c reload
bindsym $mod+Shift+r restart
bindsym $mod+Shift+e exec swaynag -t warning -m 'Exit sway?' -B 'Yes' 'swaymsg exit'

# Media keys
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym --locked XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym --locked XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym --locked XF86MonBrightnessUp exec brightnessctl set +5%
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym Print exec grim -g "$(slurp)"
bindsym Shift+Print exec grim

# Floating windows
for_window [app_id="pavucontrol"] floating enable
for_window [app_id="blueman-manager"] floating enable
for_window [app_id="qt5ct"] floating enable
for_window [app_id="qt6ct"] floating enable

# Resize mode
mode "resize" {
    bindsym $left resize shrink width 10px
    bindsym $down resize grow height 10px
    bindsym $up resize shrink height 10px
    bindsym $right resize grow width 10px
    bindsym Left resize shrink width 10px
    bindsym Down resize grow height 10px
    bindsym Up resize shrink height 10px
    bindsym Right resize grow width 10px
    bindsym Return mode default
    bindsym Escape mode default
}
bindsym $mod+r mode "resize"

include /etc/sway/config.d/*
include ~/.config/sway/config.d/*
