#######################################
#  _____  ____                        #
# |_   _||___ \                       #
#   | |    __) |__      __ _ __ ___   #
#   | |   |__ < \ \ /\ / /| '_ ` _ \  #
#  _| |_  ___) | \ V  V / | | | | | | #
# |_____||____/   \_/\_/  |_| |_| |_| #
#                                     #
#######################################

#############################################
#         General configurations            #
#############################################

# font
set $font "pango:Droid Sans Mono 10"
#set $font "pagno:Droid Sans Mono for Powerline 10"
font $font

# floating modifier
# mod1 = Alt (xmodmap to show)
# mod4 = Winkey (xmodmap to show)
set $mod mod4
floating_modifier $mod

# remove window decorations
new_window pixel

# focus follows mouse
focus_follows_mouse yes

##border
new_window pixel 3


#############################################
#              Script Section               #
#############################################

# 
# "xev" and "showkeys" can be usefull to determine the keycodes.
# 

# sound softkeys management
#bindsym XF86AudioRaiseVolume    exec ~/.i3/util/volnotid.sh up
#bindsym XF86AudioLowerVolume    exec ~/.i3/util/volnotid.sh down
#bindsym XF86AudioMute           exec ~/.i3/util/volnotid.sh mute
bindsym XF86AudioRaiseVolume    exec amixer -q sset Master 10%- unmute && killall -SIGUSR1 i3status
bindsym XF86AudioLowerVolume    exec amixer -q sset Master 10%+ unmute && killall -SIGUSR1 i3status
bindsym XF86AudioMute           exec amixer -q sset Master toggle && killall -SIGUSR1 i3status

# display brightness management
bindsym XF86MonBrightnessUp     exec "xbacklight +10"
bindsym XF86MonBrightnessDown   exec "xbacklight -10"

# webcam
bindym XF86WebCam               exec /bin/cheese

# lenovo Key wifi-menu
bindsym XF86Launch1             exec  urxvt -e sh -c "sudo wifi-menu wlp3s0"

# jauth two factor authenticator
bindsym $mod+F1                 exec /opt/JAuth/authenticator.sh google
bindsym $mod+F2                 exec /opt/JAuth/authenticator.sh facebook
bindsym $mod+F3                 exec /opt/JAuth/authenticator.sh dropbox

# start dmenu-launcher
bindsym $mod+d                  exec ~/.i3/util/i3dmenu-wrapper.sh

# lock i3 with i3lock
#bindsym $mod+Shift+x           exec i3lock -c 000000
bindsym $mod+Shift+x            exec ~/.i3/util/i3blur.py

#############################################
#                  Keymaps                  #
#############################################

# start terminal
#bindsym $mod+Return             exec --no-startup-id gnome-terminal
#bindsym $mod+Return             exec --no-startup-id urxvt
bindsym $mod+Return             exec --no-startup-id urxvtc

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

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

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

# 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

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

# split in vertical orientation
bindsym $mod+c                  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+space              focus mode_toggle

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

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

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

# exit i3
bindsym $mod+Shift+e            exec "i3-nagbar -t warning -m 'Exit i3?' -b 'Yes' 'i3-msg exit'"

# enter the resize mode
bindsym $mod+r                  mode "resize"

# scratchpad
bindsym $mod+y                  scratchpad show
bindsym $mod+x                  move scratchpad
    
#############################################
#             Workspace & Tags              #
#############################################

# name for the workspaces
set $tag1 "1 Terminal"
set $tag2 "2 Internet"
set $tag3 "3 Coding"
set $tag4 "4 Music"

# switch to workspace
bindsym $mod+1                  workspace $tag1
bindsym $mod+2                  workspace $tag2
bindsym $mod+3                  workspace $tag3
bindsym $mod+4                  workspace $tag4
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+0                  workspace 10

# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $tag1
bindsym $mod+Shift+2 move container to workspace $tag2
bindsym $mod+Shift+3 move container to workspace $tag3
bindsym $mod+Shift+4 move container to workspace $tag4
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
bindsym $mod+Shift+0 move container to workspace 10

#############################################
#             Resize handling               #
#############################################

mode "resize" {
    # bindings to resize
    bindsym h                   resize shrink width 10 px or 10 ppt
    bindsym j                   resize grow height 10 px or 10 ppt
    bindsym k                   resize shrink height 10 px or 10 ppt
    bindsym l                   resize grow width 10 px or 10 ppt

    # back to normal
    bindsym Return              mode "default"
    bindsym Escape              mode "default"
}

#############################################
#                 Colors                    #
#############################################

# Darkbrown colorscheme
set $DARKBROWN      #402e2e
set $LIGHTBROWN     #978965
set $DARKGREY       #1f1f1f
set $DARKRED        #9b0e0e

# Solarized colorscheme
#set $BACKGROUND     #002b36
set $BACKGROUND     #1c5b98
set $FOREGROUND     #93a1a1
set $LIGHTGREY      #dc322f
set $GREEN          #b0cc54
set $BROWN          #b58900
set $BLUE           #268bd2
set $VIOLET         #6c71c4
set $MAGENTA        #2aa198
set $WHITE          #fdf6e3

client.background       #ffffff

# Darkbrown colorscheme
# name                  #border     #background  #text        #indicator   #child_border
#client.focused          $DARKBROWN  $LIGHTBROWN  $DARKBROWN   $LIGHTBROWN  $DARKBROWN
#client.unfocused        $DARKBROWN  $DARKBROWN   $LIGHTBROWN  $LIGHTBROWN  $DARKBROWN
#client.focused_inactive $DARKBROWN  $DARKBROWN   $LIGHTBROWN  $LIGHTBROWN  $DARKBROWN
#client.urgent           $DARKBROWN  $DARKBROWN   $LIGHTBROWN  $LIGHTBROWN  $DARKBROWN

# Solarized colorscheme
# name                  #border      #background   #text         #indicator   #child_border
client.focused          $FOREGROUND  $MAGENTA      $GREEN        $GREEN       $MAGENTA
client.unfocused        $BACKGROUND  $BACKGROUND   $GREEN        $GREEN       $BACKGROUND
client.focused_inactive $BACKGROUND  $BACKGROUND   $GREEN        $GREEN       $BACKGROUND
client.urgent           $BACKGROUND  $BACKGROUND   $BACKGROUND   $GREEN       $BACKGROUND

#############################################
#                 i3-bar                    #
#############################################

bar {
    position                top
    font                    $font
    i3bar_command           /usr/bin/i3bar
    status_command          i3status -c ~/.i3/i3status.conf
    separator_symbol        ""

# Darkbrown colorscheme
#    colors {
#        statusline  $LIGHTBROWN
#        background  $DARKGREY
#        separator   $DARKRED
#
#        # name             #border      #bg         #text
#        focused_workspace  $LIGHTBROWN  $DARKBROWN  $LIGHTBROWN
#        active_workspace   $DARKBROWN   $DARKBROWN  $LIGHTBROWN
#        inactive_workspace $DARKBROWN   $DARKBROWN  $LIGHTBROWN
#        urgent_workspace   $DARKBROWN   $DARKBROWN  $LIGHTBROWN
#  }

# Solarized colorscheme
    colors {
        statusline  $GREEN
        background  $BACKGROUND
        separator   $MAGENTA

        # name             #border     #bg         #text
        focused_workspace  $MAGENTA    $BACKGROUND $GREEN
        active_workspace   $BACKGROUND $BACKGROUND $GREEN
        inactive_workspace $BACKGROUND $BACKGROUND $GREEN
        urgent_workspace   $BACKGROUND $BACKGROUND $GREEN
  }
}

#############################################
#            specific windows               #
#############################################

# always floating
for_window [class="Thunar"]         floating enable
for_window [class="Nautilus"]       floating enable
for_window [class="GParted"]        floating enable
for_window [class="Gedit"]          floating enable
#for_window [class="Evince"]         floating enable
for_window [class="Telegram"]       floating enable
for_window [class="teamspeak3"]     floating enable
for_window [class="rhythmbox"]      floating enable
for_window [class="LibreOffice"]    floating enable
for_window [class="JAuth"]          floating enable
for_window [class="plecs"]          floating enable

# 0px Border 
#for_window [class="chrome"]         border none
for_window [class="Firefox"]        border none

# 1px Border
#for_window [class="URxvt" ]         border 1pixel

#############################################
#            auto start with i3             #
#############################################

# terminal daemon
exec --no-startup-id urxvtd --quiet --opendisplay --fork

# pidgin chat cliente
exec --no-startup-id pidgin

# less eye pain
exec --no-startup-id redshift-gtk
exec --no-startup-id compton -cCGbD 10

# no beep!
exec --no-startup-id xset b off

# set dpi for my monitor
#exec --no-startup-id xrandr --dpi 81

# set mouse accel
#exec --no-startup-id xset m 1/4 1
exec --no-startup-id xset m 1 1 

# numlock on by default
#exec --no-startup-id numlockx on

# nm-applet (yehhh vpn ...)
exec --no-startup-id nm-applet

# wallpapers
#exec --no-startup-id ~/.i3/util/wallpapers.sh
exec --no-startup-id feh --bg-scale ~/.wallpapers/puzzle1.png
