exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
exec hash dbus-update-activation-environment 2>/dev/null && \
     dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK

### Variables

include colors

set $mod Mod4

set $left n
set $down e
set $up i
set $right o

set $term kitty

set $menu rofi -show drun | xargs swaymsg exec --

### Output configuration

output "AOC Q27G1WG4 0x00020A32" mode 2560x1440@143.912Hz

output "*" background $wallpaper fill

### Idle configuration

exec swayidle \
    timeout 300 'swaylock' \
    timeout 600 'swaymsg "output * dpms off"' \
        resume 'swaymsg "output * dpms on"' \
    before-sleep 'swaylock --grace 0'


### Input configuration

input type:touchpad {
    dwt enabled
    natural_scroll enabled
    middle_emulation enabled
}

input type:touch {
    map_to_output eDP-1
}

input type:tablet_tool {
    map_to_output eDP-1
}

### Key bindings

# Basics:

bindsym $mod+Return exec $term

bindsym $mod+Shift+q kill

bindsym $mod+s exec $menu

floating_modifier $mod normal

bindsym $mod+Shift+d reload

bindsym $mod+Shift+f exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'

bindsym $mod+q exec dunstctl close

# Moving around:

bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right

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+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right

# Workspaces:

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+Tab workspace next
bindsym $mod+Shift+Tab workspace prev

# Layout stuff:

bindsym $mod+h splith
bindsym $mod+v splitv

bindsym $mod+r layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+f layout toggle split

bindsym $mod+t fullscreen

bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle
bindsym $mod+a focus parent
bindsym $mod+Shift+a focus child

# Scratchpad:

bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show

# Resizing containers:

mode "resize" {
    bindsym $left resize shrink width 40px
    bindsym $down resize shrink height 40px
    bindsym $up resize grow height 40px
    bindsym $right resize grow width 40px

    bindsym Left resize shrink width 40px
    bindsym Down resize shrink height 40px
    bindsym Up resize grow height 40px
    bindsym Right resize grow width 40px

    bindsym Return mode "default"
    bindsym Escape mode "default"
}
bindsym $mod+p mode "resize"

# Media controls:

bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle

bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous

bindsym XF86MonBrightnessUp exec brightnessctl set +5%
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-

# Launchers:

bindsym $mod+b exec zen-browser
bindsym $mod+x exec xournalpp
bindsym $mod+c exec lectern open
bindsym $mod+d exec notepicker $HOME/nextcloud/escritoire/notepad
bindsym $mod+j exec kitty --app-id 'ration' bash -i ration
bindsym $mod+Shift+t exec kitty --app-id 'float'
bindsym $mod+Shift+c exec kitty --app-id 'numbat' numbat
bindsym $mod+Shift+g exec feh -Z -F -B black /home/josh/Pictures/game.png
bindsym $mod+Shift+w exec wallpicker

bindsym Print exec grim -g "$(slurp)" - | wl-copy -t image/png

### Appearance

# target                 title    bg          text        indicator border
client.focused           $color12 $color12    $background $color12  $color12
client.focused_inactive  $color0  $color0     $foreground 00000000  00000000
client.unfocused         $color0  $color0     $foreground 00000000  00000000
client.urgent            $color13 $background $color13    00000000  $color13
client.placeholder       $color8  $background $foreground 00000000  $color8
client.background        $background

font pango:Lilex Nerd Font 10

gaps inner 10px
gaps outer 0px

title_align center
default_border pixel

force_display_urgency_hint 1500

### Applications

# Configurations

for_window [app_id="float"] floating enable; resize set 50 ppt 50 ppt
for_window [app_id="numbat"] floating enable; resize set 40 ppt 35 ppt
for_window [app_id="xoppdoggin"] floating enable; resize set 90 ppt 90 ppt
for_window [app_id="wallpicker"] floating enable; resize set 90 ppt 90 ppt
for_window [app_id="ration"] floating enable; resize set 30 ppt 30 ppt
for_window [class="Inkscape"] floating enable; resize set 90 ppt 90 ppt
for_window [class="vimscape"] floating enable; resize set 30 ppt 25 ppt; move down 300; move left 550

assign [class="^feishin"] workspace number 8
assign [class="^discord"] workspace number 9
assign [class="^Slack"] workspace number 9
assign [app_id="^thunderbird"] workspace number 9
assign [app_id="keepassxc"] workspace number 10

# Launch on startup

bar swaybar_command waybar

exec --no-startup-id dex -ae sway

exec dunst
exec keepassxc
exec feishin
exec gammastep

include /etc/sway/config.d/*
