# Read `man 5 sway` for a complete reference.

### Variables
set $mod Mod4
set $left h
set $down n
set $up p
set $right t
set $term 9term
set $menu wmenu-run

### Output configuration
output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill

### Input configuration
input * {
    dwt enabled
}
input "type:keyboard" {
    xkb_layout us
    xkb_variant dvorak
    xkb_options compose:ralt
}
input "type:touchpad" {
    natural_scroll enabled
    dwt disabled
    drag enabled
    drag_lock enabled
    middle_emulation enabled
    tap disabled  # Disable tap to prevent accidental clicks in Emacs
}
input "type:pointer" {
    natural_scroll disabled
}

# Startup applications
exec waybar &
exec swaybg -i /home/lkn/img/bg/nixos-asciiart.png
exec /usr/lib/polkit-kde-authentication-agent-1 &
exec wlr-randr --output eDP-1 --scale 1.25
exec plumber
exec plumber -n 1
exec plumber -n 2
exec plumber -n 3
exec plumber -n 4
exec plumber -n 5
exec plumber -n 6
exec plumber -n 7
exec plumber -n 8
exec plumber -n 9

# Keybindings
bindsym $mod+Return exec $term
bindsym $mod+Shift+c kill
bindsym $mod+Shift+s  exec grim -g "$(slurp)"
bindsym $mod+r exec rofi -show run | xargs swaymsg exec --
bindsym $mod+space exec rofi -show drun | xargs swaymsg exec --
bindsym $mod+Shift+l exec swaylock
bindsym $mod+Shift+q exec swaymsg exit
bindsym $mod+h focus left
bindsym $mod+t focus right
bindsym $mod+p focus up
bindsym $mod+n focus down
bindsym $mod+Shift+h move left
bindsym $mod+Shift+t move right
bindsym $mod+Shift+p move up
bindsym $mod+Shift+n move down
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+b splith
bindsym $mod+v splitv
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
bindsym $mod+f fullscreen
bindsym $mod+Shift+space floating toggle
bindsym $mod+Shift+f focus mode_toggle
bindsym $mod+a focus parent
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show
bindsym XF86MonBrightnessDown exec light -U 10
bindsym XF86MonBrightnessUp exec light -A 10
bindsym XF86TouchpadToggle input type:touchpad events toggle

# 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+d mode "resize"

# Utilities
bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
bindsym Print exec grim

floating_modifier $mod normal

include /etc/sway/config.d/*
