###############################################################################
# i3-gaps config file for the Regolith Desktop Environment
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
#
###############################################################################
#
# In this config file many values are taken from Xresources with the directive
# set_from_resource:
#
# set_from_resource <i3 variable name> <Xresources key> <default value>
#
# This configuration file utilizes Xresource variables to change configuration
# without having to make a copy of this config file.
# The benefit to not copying this file is easier upgrades in the future.
# To update a value in this config without making a copy, update the Xresource
# value in the file ~/.config/regolith/Xresources.
#
# For example, to change the bar position to the top of the screen this is the
# i3 config entry in this file:
# set_from_resource $i3-wm.bar.position i3-wm.bar.position bottom
#
# So add this line to ~/.config/regolith/Xresources to change it's value:
# i3-wm.bar.position: top
#
# Reload i3 after making Xresource changes.  Learn more at
# https://regolith-linux.org/docs/howto/override-xres/
#
###############################################################################
#
# This file uses a machine-parsable format for comments. The schema is:
# ## <Category> // <Action> // <Keybinding> ##
# Learn more at https://github.com/regolith-linux/remontoire
#
###############################################################################

###############################################################################
# Meta Key Mappings
# Alt key is Mod1, and Windows key is Mod4
###############################################################################

set_from_resource $mod  i3-wm.mod Mod4
set_from_resource $alt  i3-wm.alt Mod1

###############################################################################
# Workspace Names
# These are the labels which define each i3 workspace.
###############################################################################

set_from_resource $ws1  i3-wm.workspace.01.name "1"
set_from_resource $ws2  i3-wm.workspace.02.name "2"
set_from_resource $ws3  i3-wm.workspace.03.name "3"
set_from_resource $ws4  i3-wm.workspace.04.name "4"
set_from_resource $ws5  i3-wm.workspace.05.name "5"
set_from_resource $ws6  i3-wm.workspace.06.name "6"
set_from_resource $ws7  i3-wm.workspace.07.name "7"
set_from_resource $ws8  i3-wm.workspace.08.name "8"
set_from_resource $ws9  i3-wm.workspace.09.name "9"
set_from_resource $ws10 i3-wm.workspace.10.name "10"
set_from_resource $ws11 i3-wm.workspace.11.name "11"
set_from_resource $ws12 i3-wm.workspace.12.name "12"
set_from_resource $ws13 i3-wm.workspace.13.name "13"
set_from_resource $ws14 i3-wm.workspace.14.name "14"
set_from_resource $ws15 i3-wm.workspace.15.name "15"
set_from_resource $ws16 i3-wm.workspace.16.name "16"
set_from_resource $ws17 i3-wm.workspace.17.name "17"
set_from_resource $ws18 i3-wm.workspace.18.name "18"
set_from_resource $ws19 i3-wm.workspace.19.name "19"

###############################################################################
# Workspace Keys
# These are the keys which will be used while binding workspace switching
###############################################################################

set_from_resource $ws1_key  i3-wm.workspace.01.key 1
set_from_resource $ws2_key  i3-wm.workspace.02.key 2
set_from_resource $ws3_key  i3-wm.workspace.03.key 3
set_from_resource $ws4_key  i3-wm.workspace.04.key 4
set_from_resource $ws5_key  i3-wm.workspace.05.key 5
set_from_resource $ws6_key  i3-wm.workspace.06.key 6
set_from_resource $ws7_key  i3-wm.workspace.07.key 7
set_from_resource $ws8_key  i3-wm.workspace.08.key 8
set_from_resource $ws9_key  i3-wm.workspace.09.key 9
set_from_resource $ws10_key i3-wm.workspace.10.key 0

###############################################################################
# Launcher dialogs
###############################################################################

## Launch // Terminal // <> Enter ##
bindsym $mod+Return exec /usr/bin/alacritty

## Launch // Browser // <><Shift> Enter ##
bindsym $mod+Shift+Return exec firefox

set_from_resource $rofiTheme rofi.theme ~/.config/rofi/config.rasi

## Launch // Application // <> Space ##
set_from_resource $i3-wm.program.launcher.app i3-wm.program.launcher.app rofi -show drun -theme $rofiTheme
bindsym $mod+space exec $i3-wm.program.launcher.app

## Launch // Application // <> p ##
set_from_resource $i3-wm.program.launcher.pwd i3-wm.program.launcher.pwd bwmenu
bindsym $mod+p exec $i3-wm.program.launcher.pwd

## Launch // Command // <><Shift> Space ##
set_from_resource $i3-wm.program.launcher.cmd i3-wm.program.launcher.cmd rofi -show run -theme $rofiTheme
bindsym $mod+Shift+space exec $i3-wm.program.launcher.cmd

## Navigate // Window by Name // <><Ctrl> Space ##
set_from_resource $i3-wm.program.launcher.window i3-wm.program.launcher.window rofi -show window -theme $rofiTheme
bindsym $mod+Ctrl+space exec $i3-wm.program.launcher.window

## Launch // This Dialog // <><Shift> ? ##
set_from_resource $i3-wm.program.help i3-wm.program.help /usr/bin/remontoire-toggle
bindsym $mod+Shift+question exec --no-startup-id $i3-wm.program.help

## Launch // Calculator inside of rofi
bindsym $mod+equal exec ~/.config/calc/=

## Launch // Flameshot // <> s ##
bindsym $mod+Shift+s exec flameshot gui

###############################################################################
# Window and Workspace Navigation
###############################################################################

## Navigate // Relative Parent // <> a ##/
bindsym $mod+a focus parent

## Navigate // Relative Child // <> z ##/
bindsym $mod+z focus child

## Navigate // Relative Window // <> ↑ ↓ ← → ##
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

## Navigate // Relative Window // <> k j h l ##
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right

## Navigate // Workspaces 1-10 // <> 0..9 ##
bindsym $mod+$ws1_key workspace number $ws1
bindsym $mod+$ws2_key workspace number $ws2
bindsym $mod+$ws3_key workspace number $ws3
bindsym $mod+$ws4_key workspace number $ws4
bindsym $mod+$ws5_key workspace number $ws5
bindsym $mod+$ws6_key workspace number $ws6
bindsym $mod+$ws7_key workspace number $ws7
bindsym $mod+$ws8_key workspace number $ws8
bindsym $mod+$ws9_key workspace number $ws9
bindsym $mod+$ws10_key workspace number $ws10
## Navigate // Workspace 11 - 19 // <><Ctrl> 1..9 ##
bindsym $mod+Ctrl+$ws1_key workspace number $ws11
bindsym $mod+Ctrl+$ws2_key workspace number $ws12
bindsym $mod+Ctrl+$ws3_key workspace number $ws13
bindsym $mod+Ctrl+$ws4_key workspace number $ws14
bindsym $mod+Ctrl+$ws5_key workspace number $ws15
bindsym $mod+Ctrl+$ws6_key workspace number $ws16
bindsym $mod+Ctrl+$ws7_key workspace number $ws17
bindsym $mod+Ctrl+$ws8_key workspace number $ws18
bindsym $mod+Ctrl+$ws9_key workspace number $ws19

## Navigate // Next Workspace // <> Tab ##
bindsym $mod+Tab workspace next

## Navigate // Next Workspace // <><Alt> → ##
bindsym $mod+$alt+Right workspace next

## Navigate // Previous Workspace // <><Shift> Tab ##
bindsym $mod+Shift+Tab workspace prev

## Navigate // Previous Workspace // <><Alt> ← ##
bindsym $mod+$alt+Left workspace prev

## Navigate // Scratchpad // <><Ctrl> a ##
bindsym $mod+Ctrl+a scratchpad show

###############################################################################
# Window and Workspace Configuration
###############################################################################

## Modify // Window Position // <><Shift> ↑ ↓ ← → ##
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right

## Modify // Window Position // <><Shift> k j h l ##
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right

## Modify // Containing Workspace // <><Ctrl><Shift> ↑ ↓ ← → ##
bindsym $mod+Ctrl+Shift+Left move workspace to output left
bindsym $mod+Ctrl+Shift+Down move workspace to output down
bindsym $mod+Ctrl+Shift+Up move workspace to output up
bindsym $mod+Ctrl+Shift+Right move workspace to output right

## Modify // Containing Workspace // <><Ctrl><Shift> k j h l ##
bindsym $mod+Ctrl+Shift+h move workspace to output left
bindsym $mod+Ctrl+Shift+j move workspace to output down
bindsym $mod+Ctrl+Shift+k move workspace to output up
bindsym $mod+Ctrl+Shift+l move workspace to output right

## Modify // Vertical Window Orientation // <> v ##
bindsym $mod+v split vertical

## Modify // Horizontal Window Orientation // <> g ##
bindsym $mod+g split horizontal

## Modify // Toggle Window Orientation // <> Backspace ##
bindsym $mod+BackSpace split toggle

## Modify // Window Fullscreen Toggle // <> f ##
bindsym $mod+f fullscreen toggle

## Modify // Window Floating Toggle // <><Shift> f ##
bindsym $mod+Shift+f floating toggle

## Modify // Move to Scratchpad // <><Ctrl> m ##
bindsym $mod+Ctrl+m move to scratchpad

## Modify // Tile/Float Focus Toggle // <><Shift> t ##
bindsym $mod+Shift+t focus mode_toggle

## Modify // Window Layout Mode // <> t ##
bindsym $mod+t layout toggle tabbed splith splitv

## Stick window
bindsym $mod+s sticky toggle

## Modify // Move Window to Workspace 1 - 10 // <><Shift> 0..9 ##
bindsym $mod+Shift+$ws1_key move container to workspace number $ws1
bindsym $mod+Shift+$ws2_key move container to workspace number $ws2
bindsym $mod+Shift+$ws3_key move container to workspace number $ws3
bindsym $mod+Shift+$ws4_key move container to workspace number $ws4
bindsym $mod+Shift+$ws5_key move container to workspace number $ws5
bindsym $mod+Shift+$ws6_key move container to workspace number $ws6
bindsym $mod+Shift+$ws7_key move container to workspace number $ws7
bindsym $mod+Shift+$ws8_key move container to workspace number $ws8
bindsym $mod+Shift+$ws9_key move container to workspace number $ws9
bindsym $mod+Shift+$ws10_key move container to workspace number $ws10
## Modify // Move Window to Workspace 11 - 19// <><Ctrl><Shift> 1..9 ##
bindsym $mod+Shift+Ctrl+$ws1_key move container to workspace number $ws11
bindsym $mod+Shift+Ctrl+$ws2_key move container to workspace number $ws12
bindsym $mod+Shift+Ctrl+$ws3_key move container to workspace number $ws13
bindsym $mod+Shift+Ctrl+$ws4_key move container to workspace number $ws14
bindsym $mod+Shift+Ctrl+$ws5_key move container to workspace number $ws15
bindsym $mod+Shift+Ctrl+$ws6_key move container to workspace number $ws16
bindsym $mod+Shift+Ctrl+$ws7_key move container to workspace number $ws17
bindsym $mod+Shift+Ctrl+$ws8_key move container to workspace number $ws18
bindsym $mod+Shift+Ctrl+$ws9_key move container to workspace number $ws19

# move focused container to workspace, move to workspace
## Modify // Carry Window to Workspace 1 - 10// <><Alt> 0..9 ##
bindsym $mod+$alt+$ws1_key move container to workspace number $ws1; workspace number $ws1
bindsym $mod+$alt+$ws2_key move container to workspace number $ws2; workspace number $ws2
bindsym $mod+$alt+$ws3_key move container to workspace number $ws3; workspace number $ws3
bindsym $mod+$alt+$ws4_key move container to workspace number $ws4; workspace number $ws4
bindsym $mod+$alt+$ws5_key move container to workspace number $ws5; workspace number $ws5
bindsym $mod+$alt+$ws6_key move container to workspace number $ws6; workspace number $ws6
bindsym $mod+$alt+$ws7_key move container to workspace number $ws7; workspace number $ws7
bindsym $mod+$alt+$ws8_key move container to workspace number $ws8; workspace number $ws8
bindsym $mod+$alt+$ws9_key move container to workspace number $ws9; workspace number $ws9
bindsym $mod+$alt+$ws10_key move container to workspace number $ws10; workspace number $ws10
## Modify // Carry Window to Workspace 11 - 19 // <><Alt><Ctrl> 1..9 ##
bindsym $mod+$alt+Ctrl+$ws1_key move container to workspace number $ws11; workspace number $ws11
bindsym $mod+$alt+Ctrl+$ws2_key move container to workspace number $ws12; workspace number $ws12
bindsym $mod+$alt+Ctrl+$ws3_key move container to workspace number $ws13; workspace number $ws13
bindsym $mod+$alt+Ctrl+$ws4_key move container to workspace number $ws14; workspace number $ws14
bindsym $mod+$alt+Ctrl+$ws5_key move container to workspace number $ws15; workspace number $ws15
bindsym $mod+$alt+Ctrl+$ws6_key move container to workspace number $ws16; workspace number $ws16
bindsym $mod+$alt+Ctrl+$ws7_key move container to workspace number $ws17; workspace number $ws17
bindsym $mod+$alt+Ctrl+$ws8_key move container to workspace number $ws18; workspace number $ws18
bindsym $mod+$alt+Ctrl+$ws9_key move container to workspace number $ws19; workspace number $ws19

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

# Hiding borders adjacent to the screen edges.
# The "smart" setting hides borders on workspaces with only one window visible.
set_from_resource $i3-wm.hide.edge.borders i3-wm.hide.edge.borders smart
hide_edge_borders $i3-wm.hide.edge.borders

###############################################################################
# Session Management
###############################################################################

## Session // Exit App // <><Shift> q ##
bindsym $mod+Shift+q [con_id="__focused__"] kill

## Session // Terminate App // <><Alt> q ##
bindsym $mod+$alt+q [con_id="__focused__"] exec --no-startup-id kill -9 $(xdotool getwindowfocus getwindowpid)

## Session // Reload i3 Config // <><Shift> c ##
bindsym $mod+Shift+c reload

## Session // Refresh Session // <><Shift> r ##
set_from_resource $i3-wm.program.refresh_ui i3-wm.program.refresh_ui /usr/bin/regolith-look refresh
bindsym $mod+Shift+r exec --no-startup-id $i3-wm.program.refresh_ui

## Session // Restart i3 // <><Ctrl> r ##
bindsym $mod+Ctrl+r restart

## Session // Logout // <><Shift> e ##
set_from_resource $i3-wm.program.logout i3-wm.program.logout i3-msg exit
bindsym $mod+Shift+e exec $i3-wm.program.logout

## Session // Reboot // <><Shift> b ##
set_from_resource $i3-wm.program.reboot i3-wm.program.reboot /usr/bin/gnome-session-quit --reboot
bindsym $mod+Shift+b exec $i3-wm.program.reboot

## Session // Power Down // <><Shift> p ##
#set_from_resource $i3-wm.program.shutdown i3-wm.program.shutdown /usr/bin/gnome-session-quit --power-off
#bindsym $mod+Shift+p exec $i3-wm.program.shutdown

## Session // Lock Screen // <> Escape ##
set_from_resource $i3-wm.program.lock i3-wm.program.lock dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
bindsym $mod+Escape exec betterlockscreen -l dimblur

## Session // Sleep // <><Shift> s ##
# set_from_resource $i3-wm.program.sleep i3-wm.program.sleep systemctl suspend
# bindsym $mod+Shift+s exec $i3-wm.program.sleep

###############################################################################
# System Management
###############################################################################

### Modify // Settings // <> c ##
#set_from_resource $i3-wm.program.settings i3-wm.program.settings gnome-control-center --class=floating_window
#bindsym $mod+c exec $i3-wm.program.settings

## Modify // Display Settings // <> d ##
# set_from_resource $i3-wm.program.display i3-wm.program.display gnome-control-center --class=floating_window display
# bindsym $mod+d exec $i3-wm.program.display

## Display drive stat window
bindsym $mod+d exec /home/tanguy/.config/i3/scripts/dd_stats_toggle.sh

## Modify // Wifi Settings // <> w ##
set_from_resource $i3-wm.program.wifi i3-wm.program.wifi gnome-control-center --class=floating_window wifi
bindsym $mod+w exec $i3-wm.program.wifi

## Modify // Bluetooth Settings // <> b ##
set_from_resource $i3-wm.program.bluetooth i3-wm.program.bluetooth gnome-control-center --class=floating_window bluetooth
bindsym $mod+b exec $i3-wm.program.bluetooth

## Launch // File Browser // <> e ##
set_from_resource $i3-wm.program.files i3-wm.program.files /usr/bin/pcmanfm
bindsym $mod+e exec $i3-wm.program.files

## Launch // Notification Viewer // <> n ##
set_from_resource $i3-wm.program.notification_ui i3-wm.program.notification_ui /usr/bin/rofication-gui
bindsym $mod+n exec $i3-wm.program.notification_ui

###############################################################################
# Workspace Management
###############################################################################

# i3-snapshot for load/save current layout
## Modify // Save Window Layout // <> , ##
bindsym $mod+comma  exec /usr/bin/i3-snapshot -o > /tmp/i3-snapshot
## Modify // Load Window Layout // <> . ##
bindsym $mod+period exec /usr/bin/i3-snapshot -c < /tmp/i3-snapshot

# Toggle bar visibility
## Modify // Toggle Bar // <> i ##
# bindsym $mod+i bar mode toggle

# Cause Settings app to float above tiled windows
floating_maximum_size -1 x -1
for_window [class="floating_window"] floating enable

set_from_resource $i3-wm.workspace.auto_back_and_forth i3-wm.workspace.auto_back_and_forth no
workspace_auto_back_and_forth $i3-wm.workspace.auto_back_and_forth

###############################################################################
# Window Resize and Gaps
###############################################################################

## Resize // Enter Resize Mode // <> r ##
mode "Resize Mode" {
        # These bindings trigger as soon as you enter the resize mode

        ## Resize // Resize Window // ↑ ↓ ← → ##
        bindsym Left resize shrink width 6 px or 6 ppt
        bindsym Down resize grow height 6 px or 6 ppt
        bindsym Up resize shrink height 6 px or 6 ppt
        bindsym Right resize grow width 6 px or 6 ppt

        bindsym Shift+Left resize shrink width 12 px or 12 ppt
        bindsym Shift+Down resize grow height 12 px or 12 ppt
        bindsym Shift+Up resize shrink height 12 px or 12 ppt
        bindsym Shift+Right resize grow width 12 px or 12 ppt

        ## Resize // Resize Window // k j h l ##
        bindsym h resize shrink width 6 px or 6 ppt
        bindsym k resize grow height 6 px or 6 ppt
        bindsym j resize shrink height 6 px or 6 ppt
        bindsym l resize grow width 6 px or 6 ppt

        bindsym Shift+h resize shrink width 12 px or 12 ppt
        bindsym Shift+k resize grow height 12 px or 12 ppt
        bindsym Shift+j resize shrink height 12 px or 12 ppt
        bindsym Shift+l resize grow width 12 px or 12 ppt

        ## Resize // Window Gaps // + - ##
        bindsym minus gaps inner current minus 6
        bindsym plus gaps inner current plus 6
        bindsym Shift+minus gaps inner current minus 12
        bindsym Shift+plus gaps inner current plus 12

        ## Resize // Exit Resize Mode // Escape or Enter ##
        bindsym Return mode "default"
        bindsym Escape mode "default"
        bindsym $mod+r mode "default"
}
bindsym $mod+r mode "Resize Mode"

###############################################################################
# Cursor movements
###############################################################################

## Enter Cursor Mode // <> c ##
mode "Cursor Mode" {
        # These bindings trigger as soon as you enter the cursor mode

        # Move the cursor slowly
        bindsym h exec --no-startup-id xdotool mousemove_relative -- -5 0
        bindsym k exec --no-startup-id xdotool mousemove_relative -- 0 -5
        bindsym j exec --no-startup-id xdotool mousemove_relative -- 0 5
        bindsym l exec --no-startup-id xdotool mousemove_relative -- 5 0
        
        # Move the cursor quicker
        bindsym Ctrl+h exec --no-startup-id xdotool mousemove_relative -- -20 0
        bindsym Ctrl+k exec --no-startup-id xdotool mousemove_relative -- 0 -20
        bindsym Ctrl+j exec --no-startup-id xdotool mousemove_relative -- 0 20
        bindsym Ctrl+l exec --no-startup-id xdotool mousemove_relative -- 20 0

        # Left click
        bindsym space exec --no-startup-id xdotool click 1

        # Right click
        bindsym Ctrl+space exec --no-startup-id xdotool click 2

        ## Exit Cursor Mode // Escape or Enter ##
        bindsym Return mode "default"
        bindsym Escape mode "default"
        bindsym $mod+c mode "default"
}
bindsym $mod+c mode "Cursor Mode"

###############################################################################
# i3 Appearance and Behavior
###############################################################################

# Disable titlebar
set_from_resource $i3-wm.window.border.size i3-wm.window.border.size 1
set_from_resource $i3-wm.floatingwindow.border.size i3-wm.floatingwindow.border.size 1
default_border pixel $i3-wm.window.border.size
default_floating_border pixel $i3-wm.floatingwindow.border.size

# Specify the distance between windows in pixels. (i3-gaps)
set_from_resource $i3-wm.gaps.inner.size i3-wm.gaps.inner.size 6
set_from_resource $i3-wm.gaps.outer.size i3-wm.gaps.outer.size 0
gaps inner $i3-wm.gaps.inner.size
gaps outer $i3-wm.gaps.outer.size

# gaps top 26

# Only enable gaps on a workspace when there is at least one container
set_from_resource $i3-wm.gaps.smart i3-wm.gaps.smart on
#smart_gaps $i3-wm.gaps.smart

# Enable popup during fullscreen
set_from_resource $i3-wm.gaps.popup_during_fullscreen i3-wm.gaps.popup_during_fullscreen smart
popup_during_fullscreen $i3-wm.gaps.popup_during_fullscreen

# window focus follows your mouse movements as the mouse crosses window borders
set_from_resource $i3-wm.gaps.focus_follows_mouse i3-wm.gaps.focus_follows_mouse no
focus_follows_mouse $i3-wm.gaps.focus_follows_mouse

# Set border radius (roundness)

###############################################################################
# i3 Colors and Fonts
###############################################################################

# Create variables from Xresources for i3's look.
set_from_resource $focused.color.border i3-wm.client.focused.color.border "#73d0ff"
set_from_resource $focused.color.background i3-wm.client.focused.color.background "#88C0D0"
set_from_resource $focused.color.text i3-wm.client.focused.color.text "#fdf6e3"
set_from_resource $focused.color.indicator i3-wm.client.focused.color.indicator "#268bd2"
set_from_resource $focused.color.child_border color4
# set_from_resource $focused.color.child_border i3-wm.client.focused.color.child_border

set_from_resource $focused_inactive.color.border i3-wm.client.focused_inactive.color.border "#2E3440"
set_from_resource $focused_inactive.color.background i3-wm.client.focused_inactive.color.background "#2E3440"
set_from_resource $focused_inactive.color.text i3-wm.client.focused_inactive.color.text "#839496"
set_from_resource $focused_inactive.color.indicator i3-wm.client.focused_inactive.color.indicator "#2E3440"
set_from_resource $focused_inactive.color.child_border i3-wm.client.focused_inactive.color.child_border

set_from_resource $unfocused.color.border i3-wm.client.unfocused.color.border "#2E3440"
set_from_resource $unfocused.color.background i3-wm.client.unfocused.color.background "#2E3440"
set_from_resource $unfocused.color.text i3-wm.client.unfocused.color.text "#839496"
set_from_resource $unfocused.color.indicator i3-wm.client.unfocused.color.indicator "#2E3440"
set_from_resource $unfocused.color.child_border i3-wm.client.unfocused.color.child_border

set_from_resource $urgent.color.border i3-wm.client.urgent.color.border "#002b36"
set_from_resource $urgent.color.background i3-wm.client.urgent.color.background "#dc322f"
set_from_resource $urgent.color.text i3-wm.client.urgent.color.text "#fdf6e3"
set_from_resource $urgent.color.indicator i3-wm.client.urgent.color.indicator "#002b36"
set_from_resource $urgent.color.child_border i3-wm.client.urgent.color.child_border


# Window Border color
# class                 border                             background                         text                               indicator                          child_border
client.focused          $focused.color.border              $focused.color.background          $focused.color.text                $focused.color.indicator           $focused.color.child_border
client.focused_inactive $focused_inactive.color.border     $focused_inactive.color.background $focused_inactive.color.text       $focused_inactive.color.indicator  $focused_inactive.color.child_border
client.unfocused        $unfocused.color.border            $unfocused.color.background        $unfocused.color.text              $unfocused.color.indicator         $unfocused.color.child_border
client.urgent           $urgent.color.border               $urgent.color.background           $urgent.color.text                 $urgent.color.indicator            $urgent.color.child_border

# Create variables from Xresources for i3bars's look.
set_from_resource $i3-wm.bar.background.color i3-wm.bar.background.color "#002b36"
set_from_resource $i3-wm.bar.statusline.color i3-wm.bar.statusline.color "#93a1a1"
set_from_resource $i3-wm.bar.separator.color i3-wm.bar.separator.color "#268bd2"

set_from_resource $i3-wm.bar.workspace.focused.border.color i3-wm.bar.workspace.focused.border.color "#2E3440"
set_from_resource $i3-wm.bar.workspace.focused.background.color i3-wm.bar.workspace.focused.background.color "#2E3440"
set_from_resource $i3-wm.bar.workspace.focused.text.color i3-wm.bar.workspace.focused.text.color "#eee8d5"

set_from_resource $i3-wm.bar.workspace.active.border.color i3-wm.bar.workspace.active.border.color "#2E3440"
set_from_resource $i3-wm.bar.workspace.active.background.color i3-wm.bar.workspace.active.background.color "#2E3440"
set_from_resource $i3-wm.bar.workspace.active.text.color i3-wm.bar.workspace.active.text.color "#586e75"

set_from_resource $i3-wm.bar.workspace.inactive.border.color i3-wm.bar.workspace.inactive.border.color "#2E3440"
set_from_resource $i3-wm.bar.workspace.inactive.background.color i3-wm.bar.workspace.inactive.background.color "#2E3440"
set_from_resource $i3-wm.bar.workspace.inactive.text.color i3-wm.bar.workspace.inactive.text.color "#586e75"

set_from_resource $i3-wm.bar.workspace.urgent.border.color i3-wm.bar.workspace.urgent.border.color "#dc322f"
set_from_resource $i3-wm.bar.workspace.urgent.background.color i3-wm.bar.workspace.urgent.background.color "#dc322f"
set_from_resource $i3-wm.bar.workspace.urgent.text.color i3-wm.bar.workspace.urgent.text.color "#fdf6e3"

# Sets i3 font for dialogs
set_from_resource $i3-wm.font i3-wm.font pango:Source Code Pro Medium 8
font $i3-wm.font

###############################################################################
# i3 Bar
###############################################################################

# set_from_resource $i3-wm.bar.position i3-wm.bar.position bottom
# set_from_resource $i3-wm.bar.font i3-wm.bar.font pango:Source Code Pro Medium 13, Material Design Icons 13
# set_from_resource $i3-wm.bar.separator i3-wm.bar.separator " "
# set_from_resource $i3-wm.bar.trayoutput i3-wm.bar.trayoutput none
# set_from_resource $i3-wm.bar.stripworkspacenumbers i3-wm.bar.stripworkspacenumbers yes

# i3xrocks config file. Override this for a custom status bar generator.
# set_from_resource $i3-wm.bar.status_command i3-wm.bar.status_command i3xrocks -u ~/.config/regolith/i3xrocks/conf.d -d /etc/regolith/i3xrocks/conf.d
# 
# The bar configuration
# bar {
#   position $i3-wm.bar.position
#   font $i3-wm.bar.font
#   separator_symbol $i3-wm.bar.separator
#   status_command $i3-wm.bar.status_command
#   tray_output $i3-wm.bar.trayoutput
#   strip_workspace_numbers $i3-wm.bar.stripworkspacenumbers
# 
#   colors {
#       background $i3-wm.bar.background.color
#       statusline $i3-wm.bar.statusline.color
#       separator  $i3-wm.bar.separator.color

#                        BORDER  BACKGROUND TEXT
#       focused_workspace  $i3-wm.bar.workspace.focused.border.color      $i3-wm.bar.workspace.focused.background.color   $i3-wm.bar.workspace.focused.text.color
#       active_workspace   $i3-wm.bar.workspace.active.border.color       $i3-wm.bar.workspace.active.background.color    $i3-wm.bar.workspace.active.text.color
#       inactive_workspace $i3-wm.bar.workspace.inactive.border.color     $i3-wm.bar.workspace.inactive.background.color  $i3-wm.bar.workspace.inactive.text.color
#       urgent_workspace   $i3-wm.bar.workspace.urgent.border.color       $i3-wm.bar.workspace.urgent.background.color    $i3-wm.bar.workspace.urgent.text.color
#   }
# }

###############################################################################
# External programs launched with i3
###############################################################################

# Start the installed regolith-compositor
set_from_resource $i3-wm.program.compositor i3-wm.program.compositor /usr/share/regolith-compositor/init
exec --no-startup-id $i3-wm.program.compositor

# Start Rofication for notifications
set_from_resource $i3-wm.program.notifications i3-wm.program.notifications /usr/bin/rofication-daemon
exec --no-startup-id $i3-wm.program.notifications

# Launch first time user experience script
set_from_resource $i3-wm.program.ftui i3-wm.program.ftui /usr/bin/regolith-ftue
exec --no-startup-id $i3-wm.program.ftui

# Hide the mouse pointer if unused for a duration
set_from_resource $i3-wm.program.unclutter i3-wm.program.unclutter /usr/bin/unclutter -b
exec --no-startup-id $i3-wm.program.unclutter

# User programs from Xresources
# To use, define an Xresource key i3-wm.program.[1-3] with the value of the program to launch.
# See https://regolith-linux.org/docs/howto/override-xres/ for details.
set_from_resource $i3-wm.program.1 i3-wm.program.1 :
exec --no-startup-id $i3-wm.program.1
set_from_resource $i3-wm.program.2 i3-wm.program.2 :
exec --no-startup-id $i3-wm.program.2
set_from_resource $i3-wm.program.3 i3-wm.program.3 :
exec --no-startup-id $i3-wm.program.3

# Start polybar
exec_always --no-startup-id ~/.config/polybar/launch.sh &
exec_always --no-startup-id feh --bg-scale ~/Images/Wallpapers/aerial_waves.jpg
# exec_always --no-startup-id ~/.config/picom/launch.sh &
exec_always --no-startup-id xbindkeys --poll-rc
exec_always --no-startup-id eww daemon &
exec_always --no-startup-id udiskie &

exec --no-startup-id /home/tanguy/multihead.sh
