# 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

# font for window titles. ISO 10646 = Unicode
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
font xft:Deja Vu Sans 8

# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
#/exec
# start a terminal
#bindsym $mod+Return exec --no-startup-id i3-one-tmux
bindsym $mod+Return [title="^scratch"] scratchpad show
bindsym Control+Mod1+t exec --no-startup-id i3-sensible-terminal
bindsym Control+Mod1+Shift+t exec --no-startup-id i3-sensible-terminal --title=scratch -e 'tmux new-session -A -s scratch'

# File manager
bindsym Control+Mod1+f exec --no-startup-id i3-sensible-terminal --title=filemanager -e 'zsh -c ranger'

# start lock
bindsym Control+Mod1+l exec --no-startup-id i3-exit.sh lock

bindsym Control+Mod1+Shift+w exec --no-startup-id $BROWSER2
bindsym Control+Mod1+w exec --no-startup-id $BROWSER
bindsym Control+Mod1+v exec --no-startup-id pavucontrol
bindsym Control+Mod1+g exec --no-startup-id gvim
bindsym Control+Mod1+e exec --no-startup-id myemacs -c
bindsym $mod+Tab exec --no-startup-id winmenu.sh
bindsym Mod1+Tab exec --no-startup-id winmenu.sh
bindsym $mod+p [title="filemanager"] scratchpad show; [class="Nemo|Thunar"] scratchpad show
bindsym $mod+period [instance="emacs" title="^(?!myagenda$)"] scratchpad show
bindsym $mod+shift+comma exec --no-startup-id myemacs -nc --eval '(progn (find-file "~/Dropbox/Todo/org/rules.org") (org-agenda-list) (set-frame-name "myagenda"))'
bindsym $mod+c exec myemacs -n -e '(make-capture-frame)' 
bindsym $mod+comma [title="^myagenda"] scratchpad show
bindsym $mod+Control+s exec --no-startup-id flameshot gui

# Spotify
bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause
bindsym XF86AudioNext exec --no-startup-id playerctl next
bindsym XF86AudioPrev exec --no-startup-id playerctl previous

# Volume
bindsym XF86AudioRaiseVolume exec --no-startup-id volume-up.sh
bindsym XF86AudioLowerVolume exec --no-startup-id volume-down.sh
bindsym XF86AudioMute exec --no-startup-id volume-toggle-mute.sh

# Brightness
#bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight +5
#bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -5

# kill focused window
bindsym $mod+q kill

# start dmenu (a program launcher)
#bindsym $mod+Space exec --no-startup-id dmenu_run
bindsym $mod+space exec --no-startup-id runmenu
bindsym $mod+o exec --no-startup-id filemenu $HOME
bindsym $mod+b exec btmenu

#

# Arandr magic
bindsym Mod1+F5 exec --no-startup-id monitors single
bindsym Mod1+F6 exec --no-startup-id monitors single-hdmi
bindsym Mod1+F7 exec --no-startup-id monitors dual-mirror
bindsym Mod1+F8 exec --no-startup-id monitors dual-home
bindsym Mod1+F9 exec --no-startup-id monitors dual
bindsym Mod1+F10 exec --no-startup-id xrandr --auto
bindsym Mod1+F11 exec --no-startup-id monitors # auto

# Move to displays
bindsym $mod+Mod1+j move workspace to output down
bindsym $mod+Mod1+k move workspace to output up
bindsym $mod+Mod1+l move workspace to output right
bindsym $mod+Mod1+h move workspace to output left

# Move windows in tiled mode
bindsym $mod+Shift+H move left 100px
bindsym $mod+Shift+J move down 100px
bindsym $mod+Shift+K move up 100px
bindsym $mod+Shift+L move right 100px

# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k 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

# move focused window
bindsym $mod+m mode "move" 
# 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+Shift+g split h

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

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

# change container layout (stacked, tabbed, default)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout default
bindsym $mod+g layout splith
bindsym $mod+v layout splitv

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

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

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

# Show the first scratchpad window
bindsym $mod+minus [instance="*"] scratchpad show

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

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

# switch to workspace

bindsym $mod+grave workspace 0: Personal
bindsym $mod+1 workspace 1: Term
bindsym $mod+2 workspace 2: Web
bindsym $mod+3 workspace 3: Edit
bindsym $mod+4 workspace 4: Viewer
bindsym $mod+5 workspace 5: Files
bindsym $mod+6 workspace 6: Music
bindsym $mod+7 workspace 7: Chat
bindsym $mod+8 workspace 8: Misc Big
bindsym $mod+9 workspace 9: Misc Small
bindsym $mod+0 workspace number 10
bindsym $mod+Control+h workspace prev
bindsym $mod+Control+l workspace next 

# move focused container to workspace
bindsym $mod+Shift+grave move container to workspace             0: Personal
bindsym $mod+Shift+exclam move container to workspace            1: Term
bindsym $mod+Shift+at move container to workspace                2: Web
bindsym $mod+Shift+numbersign move container to workspace        3: Edit
bindsym $mod+Shift+dollar move container to workspace            4: Viewer
bindsym $mod+Shift+percent move container to workspace           5: Files
bindsym $mod+Shift+asciicircum move container to workspace       6: Music
bindsym $mod+Shift+ampersand move container to workspace         7: Chat
bindsym $mod+Shift+asterisk move container to workspace          8: Misc Big
bindsym $mod+Shift+parenleft move container to workspace         9: Misc Small
bindsym $mod+Shift+parenright move container to workspace        number 10

# 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+E exec --no-startup-id i3-exit.sh logout
bindsym $mod+Mod1+s exec --no-startup-id i3-exit.sh suspend

bindsym $mod+Shift+p exec passmenu
bindsym $mod+Shift+n exec netmenu

# move with finer grain
mode "move" {
	bindsym H move left 100px
	bindsym J move down 100px
	bindsym K move up 100px
	bindsym L move right 100px
        bindsym Shift+H move left 10 px
        bindsym Shift+J move down 10px
        bindsym Shift+K move up 10 px
        bindsym Shift+L move right 10 px
        # back to normal: Enter or Escape
        bindsym Return mode "default"
        bindsym Escape mode "default"
}

# resize window (you can also use the mouse for that)
mode "resize" {
        # These bindings trigger as soon as you enter the resize mode

        # 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 H resize shrink width 100 px or 100 ppt
        bindsym J resize grow height 100 px or 100 ppt
        bindsym K resize shrink height 100 px or 100 ppt
        bindsym L resize grow width 100 px or 100 ppt

        bindsym Shift+H resize shrink width 10 px or 10 ppt
        bindsym Shift+J resize grow height 10 px or 10 ppt
        bindsym Shift+K resize shrink height 10 px or 10 ppt
        bindsym Shift+L resize grow width 10 px or 10 ppt

        # back to normal: Enter or Escape
        bindsym Return mode "default"
        bindsym Escape mode "default"
}

bindsym $mod+r mode "resize"

bindsym $mod+n exec i3-input -F 'rename workspace to %s' -P 'New name: '


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

# bar {
#     mode dock
#     position top
#     font pango:DejaVu Sans 10
#     workspace_buttons yes
#     # status_command ~/.config/i3/status.sh
#     status_command i3status -c ~/.config/i3status/conf
#     colors {
#         background #101010
#         statusline #ffffff
#         focused_workspace #101010 #586e75 #fdf6e3
#         active_workspace #101010 #101010 #cb4b16
#         inactive_workspace #101010 #101010 #93a1a1
#         urgent_workspace #fdf6e3 #dc322f
#     }
# }
# class                 border  backgr. text    indicator
client.focused          #4c7899 #4c7899 #fefef #93a1a1 #2e9ef4
client.focused_inactive #4c7899 #101010 #93a1a1 #484e50
client.unfocused        #ffffff #101010 #93a1a1 #292d2e
client.urgent           #2f343a #101010 #93a1a1 #900000

default_border pixel 3
# smart_borders on
workspace_layout tabbed

for_window [title="^floatingwin"] floating enable; 
for_window [title="^capture"] floating enable; 
for_window [title="^myagenda"] move to scratchpad
for_window [class="^Google-chrome$"] border none
for_window [class="^Chromium"] border none
for_window [class="^Pavucontrol"] floating enable
assign [class="Google-chrome" window_role="browser"] 2: Web
assign [class="Chromium" window_role="browser"] 2: Web
for_window [class="^Firefox$"] border none
for_window [class="^Polybar"] border none
assign [class="Firefox" window_role="browser"] 2: Web
for_window [class="^Xfce4-notifyd$"] floating enable; border none; focus mode_toggle 
for_window [class="^termite"] border 1px
for_window [class="^lxterminal"] border 1px
for_window [class="^xfce4-terminal"] border 1px
for_window [title="^scratch"] move to scratchpad
assign [class="^Nemo|Thunar|Ranger"] 5: Files
for_window [title="^filemanager$"] move to scratchpad;
#KDE
for_window [class="Plasma-desktop"] border none
for_window [class="krunner"] border none
for_window [class="Kmix"] floating enable;
for_window [class="Plasmoidviewer"] floating enable;
for_window [class="Klipper"] floating enable; border none
for_window [class="Spotify"] move to workspace 6: Music
#assign [class="^Gvim$"] 3: Edit
#assign [class="^Evince$"] 4: Viewer
assign [class="^Audacious$"] 6: Music
assign [class="^Xchat$"] 7: Chat
#for_window [class="Pcmanfm"] floating enable

workspace "0: Personal" output DP-2
workspace "1: Term" output DP-1
workspace "2: Web" output DP-1
workspace "3: Edit" output DP-1
workspace "4: Viewer" output eDP-1
workspace "5: Files" output eDP-1
workspace "6: Music" output eDP-1
workspace "7: Chat" output eDP-1
workspace "8: Misc Big" output DP-1
workspace "9: Misc Small" output eDP-1

gaps inner 8
gaps outer 5

set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown
mode "$mode_system" {
        bindsym l exec --no-startup-id i3-exit.sh lock, mode "default"
        bindsym e exec --no-startup-id i3-exit.sh logout #, mode "default"
        bindsym s exec --no-startup-id i3-exit.sh suspend #, mode "default"
        bindsym h exec --no-startup-id i3-exit.sh hibernate, mode "default"
        bindsym r exec --no-startup-id i3-exit.sh reboot, mode "default"
        bindsym Shift+s exec --no-startup-id i3-exit.sh shutdown, mode "default"

# back to normal: Enter or Escape
        bindsym Return mode "default"
        bindsym Escape mode "default"
}
bindsym $mod+Delete mode "$mode_system"
bindsym $mod+Escape exec xfce4-session-logout
#exec --no-startup-id xautolock -corners '----' -time 10 -locker 'dm-tool lock' # lightdm
#exec xautolock -time 10 -corners "----" -locker 'i3lock -t -c 000000 -i ~/Pictures/Wallpapers/Game\ Over\ Hacker.png' &
exec --no-startup-id picom -b --config ~/.picom.conf 
exec --no-startup-id dropbox start
exec --no-startup-id i3-sensible-terminal --title=filemanager -e 'ranger'
exec --no-startup-id nitrogen --restore
exec --no-startup-id nm-applet
exec --no-startup-id pasystray 
exec --no-startup-id syndaemon -i 0.5 -d
exec --no-startup-id i3-sensible-terminal --title=scratch -e 'tmux new-session -A -s scratch'
exec --no-startup-id i3-exit.sh autolock
exec --no-startup-id xfce4-power-manager
#exec --no-startup-id xfsettingsd --sm-client-disable &
exec --no-startup-id clipit -n
exec --no-startup-id owncloud
exec --no-startup-id udiskie --no-notify --tray --use-udisks2  
exec --no-startup-id polybar.sh
