# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout somewhen, delete
# this file and re-run i3-config-wizard(1).
#

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

set $mod Mod4

default_border pixel 0
gaps inner 6
#hide_edge_borders both
focus_follows_mouse yes
workspace_auto_back_and_forth yes
force_display_urgency_hint 500 ms

# color
client.focused          #4c94af #4c94af #191919 #4c94af
client.focused_inactive #333333 #5f676a #ffffff #484e50
client.unfocused        #333333 #222222 #888888 #292d2e
client.urgent           #DD1111 #DD1111 #191919 #DD1111

# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below. ISO 10646 = Unicode
#font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
font pango:Iosevka Term Regular 10
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, if you need a lot of unicode glyphs or
# right-to-left text rendering, you should instead use pango for rendering and
# chose a FreeType font, such as:
# font pango:DejaVu Sans Mono 10

# windows rules
for_window [class="org.remmina.Remmina"] floating enable
for_window [class="feh"] floating enable
for_window [class="Pavucontrol"] floating enable
for_window [class="Slack"] floating enable
for_window [class="discord"] floating enable
for_window [all] border pixel 0

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

# start a terminal
bindsym $mod+Return exec ghostty

# kill focused window
bindsym $mod+Shift+q kill

# Make the currently focused window a scratchpad
bindsym $mod+Shift+minus move scratchpad

# Show the first scratchpad window
bindsym $mod+minus scratchpad show

# start dmenu (a program launcher)
bindsym $mod+r exec "bemenu-run -b --nb '#191919' --sb '#191919' --nf '#4c94af' --sf '#4E9A06' --fn 'Iosevka Term 11'"

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

# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
bindsym Mod1+Tab focus right
bindsym Mod1+Shift+Tab focus left

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

# alternatively, you can use the cursor keys:
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+Tab move scratchpad
#bindsym $mod+Shift+Tab scratchpad show

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

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

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

# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

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

# change focus between tiling / floating windows
bindsym $mod+Tab focus mode_toggle

# focus the parent container
bindsym $mod+a focus parent

# focus the child container
#bindsym $mod+d focus child

# switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+u workspace prev_on_output
bindsym $mod+o workspace next_on_output

# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9

# move focused workspace to screen
bindsym $mod+Shift+i move workspace to output down
bindsym $mod+Shift+k move workspace to output up
bindsym $mod+Shift+u move workspace to output left
bindsym $mod+Shift+o move workspace to output right

# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+x 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'"

# Pressing left will shrink the window’s width.
# Pressing right will grow the window’s width.
# Pressing up will shrink the window’s height.
# Pressing down will grow the window’s height.
bindsym $mod+Ctrl+j resize shrink width 10 px or 10 ppt
bindsym $mod+Ctrl+i resize grow height 10 px or 10 ppt
bindsym $mod+Ctrl+k resize shrink height 10 px or 10 ppt
bindsym $mod+Ctrl+l resize grow width 10 px or 10 ppt

# Keybindings for Background
#bindsym $mod+Shift+n exec "~/.config/feh/random"
bindsym $mod+Shift+n exec "~/.config/feh/$(hostname)-random"

# Lockscreen
bindsym $mod+Shift+l exec "~/.config/displays/lock"
bindsym $mod+Shift+s exec "systemctl suspend; ~/.config/displays/lock"

# Pass Passmenu
bindsym $mod+p exec "~/.local/bin/passmenu-user -b"
bindsym $mod+Shift+p exec "~/.local/bin/passmenu -b"

# Screenshot
bindsym $mod+XF86WakeUp exec "scrot '%Y-%m-%d_%T.png' -e 'mv $f ~/pictures/screenshots'"

# Screens
bindsym XF86Display exec "~/.config/displays/$(hostname)-setup single"
bindsym Mod1+$mod+1 exec "~/.config/displays/$(hostname)-setup single"
bindsym Mod1+$mod+2 exec "~/.config/displays/$(hostname)-setup home"
bindsym Mod1+$mod+3 exec "~/.config/displays/$(hostname)-setup home-single"
bindsym Control+Mod1+End exec "ddcutil --display 2 setvcp 0x60 0x0f"
bindsym Control+Mod1+Home exec "ddcutil --display 1 setvcp 0x60 0x0f"

# Brightness
bindsym XF86MonBrightnessDown exec "light -U 10"
bindsym XF86MonBrightnessUp exec "light -A 10"

# Sound
bindsym XF86AudioRaiseVolume exec "$HOME/.local/bin/pulseaudio increase"
bindsym XF86AudioLowerVolume exec "$HOME/.local/bin/pulseaudio decrease"
bindsym XF86AudioMute exec "$HOME/.local/bin/pulseaudio mute"

exec_always --no-startup-id "systemctl --user start polybar@main"


# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
#bar {
#        status_command ~/.i3/conky.sh
#        position top
#        tray_output primary
#        mode dock
#        font pango:Andale Mono 8
#        colors {
#            background #191919
#            statusline #D4D4D4
#            separator  #191919
#            focused_workspace  #4c94af #191919 #4c94af
#            active_workspace   #222222 #191919 #4c94af
#            inactive_workspace #222222 #191919 #4c94af
#            urgent_workspace   #DD1111 #191919 #4c94af
#        }
#}
