# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!

set $mod Mod4

font pango:monospace 10

set $wallpaper ~/Pictures/backgrounds/clair-obscur-expedition-33-4k-p8.png
set $lockscreen ~/Pictures/backgrounds/co-lockscreen.png

exec --no-startup-id numlockx
exec --no-startup-id feh --bg-scale $wallpaper

# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex --autostart --environment i3

# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status

# Workspace config
include ./workspace.conf

# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod

# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
tiling_drag modifier titlebar

# start kitty
bindsym $mod+Return exec kitty

# kill focused window
bindsym $mod+q kill

# start rofi
bindsym $mod+r exec --no-startup-id rofi -show drun
# rofi spotify
bindsym $mod+m exec --no-startup-id /home/womax/.config/scripts/rofi_spotify.sh

# change focus
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+h focus left
bindsym $mod+l focus right

bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Left focus left
bindsym $mod+Right focus right

# move focused window
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+h move left
bindsym $mod+Shift+l move right

bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Right move right

# split in horizontal orientation
bindsym $mod+g split h

# split in vertical orientation
bindsym $mod+v split v

# change container layout (stacked/tabbed/toggle split)
workspace_layout tabbed

bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

# hides border
hide_edge_borders smart

# toggle tiling / floating
bindsym $mod+Shift+space floating toggle

# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle

# reload configuration file
bindsym $mod+Shift+c reload

# restart i3 inplace
bindsym $mod+Shift+x restart

# lock screen
bindsym $mod+Control+l exec --no-startup-id "i3lock -kti $lockscreen && sleep 1"

# exit i3 (logout)
bindsym $mod+Shift+e exec --no-startup-id i3-msg exit

# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
    status_command i3status
}

exec --no-startup-id /usr/bin/dunst

exec kitty
exec emacs
exec firefox
exec discord
exec spotify-launcher
