
# -- Meta

# Reload i3's configuration file
bindsym $mod+Escape reload

# Restart i3 in-place (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+Escape restart

# Exit i3 (log out)
bindsym $mod+Shift+space exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"

# -- Media

# Raise volume
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status

# Lower volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status

# Mute audio
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status

# Mute mic
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status

# -- Applications

# Open terminal
bindsym $mod+Return exec xfce4-terminal

# Open application launcher
bindsym $mod+space exec rofi -show drun -show-icons

# Qutesearch
bindsym $mod+o exec qutesearch

bindsym $mod+p exec flameshot gui

# -- Window management

# Close application
bindsym $mod+w kill

# Toggle floating
bindsym $mod+c floating toggle

# Toggle fullscreen
bindsym $mod+f fullscreen toggle

# Horizontal Split
bindsym $mod+b split h

# Vertical Split
bindsym $mod+v split v

# Rotate (toggle split)
bindsym $mod+e layout toggle split

# Toggle container stacking
bindsym $mod+s layout stacking 

# Focus left
bindsym $mod+h focus left
bindsym $mod+Left focus left
# Focus down
bindsym $mod+j focus down
bindsym $mod+Down focus down
bindsym $mod+x focus down
# Focus up
bindsym $mod+k focus up
bindsym $mod+z focus up
bindsym $mod+Up focus up
# Focus right
bindsym $mod+l focus right
bindsym $mod+Right focus right

# Move left
bindsym $mod+Shift+h move left
bindsym $mod+Shift+Left move left
# Move down
bindsym $mod+Shift+j move down
bindsym $mod+Shift+Down move down
# Move up
bindsym $mod+Shift+k move up
bindsym $mod+Shift+Up move up
# Move right
bindsym $mod+Shift+l move right
bindsym $mod+Shift+Right move right

# -- Workspaces

# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"

# Switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5

# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
