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

# load xrdb
exec xrdb ~/.Xresources ; i3-msg reload

output DP-1 {
    pos  0 0
    res  1920x1080
    background ~/.local/share/backgrounds/01-0.jpg fill
    dpms on
}

output DP-2 {
    pos  1920 0
    res  1920x1080
    background ~/.local/share/backgrounds/01-1.jpg fill
    # transform 270
    dpms on
}


xwayland enable
gaps inner 0
gaps outer 0
smart_gaps on
smart_borders no_gaps

# force_xinerama yes
# fake-outputs 3840x1080+0+0

# we basically want to configure our font with ~/.config/fontconfig/*
# font pango:GoMono Nerd Font 9
# font pango:FuraCode Nerd Font Mono 9
# font pango:Code New Roman Nerd Font 9
font pango:monospace 9

hide_edge_borders both
title_align left
# focus_follows_mouse no
# mouse_warping none

set $mod Mod4

bindsym $mod+j                "mark --toggle a"

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

# start a terminal
# bindsym $mod+Return         exec i3-sensible-terminal
bindsym $mod+Return           exec rofi -show drun -show-icons 
bindsym Mod1+F2               exec rofi -show drun -bg #222222 -fg #888888 -hlbg #285577 -hlfg #ffffff -show-icons -5
bindsym $mod+t                exec termite
# bindsym $mod+t              exec termite
# bindsym $mod+t              exec urxvt
bindsym $mod+e                exec thunar
bindsym $mod+l                exec swaylock -f -i "/home/max/.local/share/backgrounds/IMG_5656 - IMG_5684-02.png"

bindsym $mod+F10              exec pactl set-sink-mute 0 toggle
bindsym $mod+F11              exec pactl set-sink-volume 0 -5%
bindsym $mod+F12              exec pactl set-sink-volume 0 +5%

# Pulse Audio controls
bindsym XF86AudioRaiseVolume  exec pactl set-sink-volume 0 +5%                                                                                # increase sound volume
bindsym XF86AudioLowerVolume  exec pactl set-sink-volume 0 -5%                                                                                # decrease sound volume
bindsym XF86AudioMute         exec pactl set-sink-mute 0 toggle                                                                               # mute sound

# exec xrandr --dpi 95.48 --output LVDS-1 --mode 1024x768 && xrandr --output LVDS-1 --mode 1280x800
# bindcode 156                  
# exec xrandr --output DP-1 --rotate left --pos 1920x-420
# exec xrandr --output DP1 --rotate left --right-of HDMI1
# exec xrandr --output DP1 --rotate left --pos 1920x-420

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

# start dmenu (a program launcher)
# bindsym $mod+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# bindsym $mod+d exec --no-startup-id j4-dmenu-desktop


bindsym $mod+Prior                             focus parent
bindsym $mod+Next                              focus child
bindsym $mod+Left                              focus left
bindsym $mod+Right                             focus right
bindsym $mod+Down                              focus down
bindsym $mod+Up                                focus up
bindsym $mod+Tab                               focus output right
bindsym $mod+Shift+Tab                         focus output left
bindsym mod1+Tab                               focus right
bindsym mod1+Shift+Tab                         focus left

# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left              ; exec pkill -SIGRTMIN+11 i3blocks
bindsym $mod+Shift+Down move down              ; exec pkill -SIGRTMIN+11 i3blocks
bindsym $mod+Shift+Up move up                  ; exec pkill -SIGRTMIN+11 i3blocks
bindsym $mod+Shift+Right move right            ; exec pkill -SIGRTMIN+11 i3blocks

# 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 toggle
bindsym $mod+g fullscreen toggle global

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

# 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

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

workspace 1 output VGA1
workspace_layout tabbed

# customize workspace names
set $WS1    1:1⃣
set $WS2    2:2⃣
set $WS3    3:3⃣
set $WS4    4:4⃣
set $WS5    5:5⃣
set $WS6    6:6⃣
set $WS7    7:7⃣
set $WS8    8:8⃣
set $WS9    9:9⃣
set $WS10  10:0⃣

assign [class="^Thunderbird$"] → $WS10
assign [class="^Pidgin"] → $WS10
assign [class="^Hexchat"] → $WS10
assign [class="(?i)pidgin"] → $WS10

bindsym Mod4+BackSpace exec i3-msg move workspace to output right

# switch to workspace
bindsym Mod4+1 workspace $WS1
bindsym Mod4+2 workspace $WS2
bindsym Mod4+3 workspace $WS3
bindsym Mod4+4 workspace $WS4
bindsym Mod4+5 workspace $WS5
bindsym Mod4+6 workspace $WS6
bindsym Mod4+7 workspace $WS7
bindsym Mod4+8 workspace $WS8
bindsym Mod4+9 workspace $WS9
bindsym Mod4+0 workspace $WS10

# move focused container to workspace
bindsym Mod4+Shift+1 move container to workspace $WS1
bindsym Mod4+Shift+2 move container to workspace $WS2
bindsym Mod4+Shift+3 move container to workspace $WS3
bindsym Mod4+Shift+4 move container to workspace $WS4
bindsym Mod4+Shift+5 move container to workspace $WS5
bindsym Mod4+Shift+6 move container to workspace $WS6
bindsym Mod4+Shift+7 move container to workspace $WS7
bindsym Mod4+Shift+8 move container to workspace $WS8
bindsym Mod4+Shift+9 move container to workspace $WS9
bindsym Mod4+Shift+0 move container to workspace $WS10

# workspace 1 output DP-1
# workspace 2 output DP-1
# workspace 3 output DP-1
# workspace 4 output DP-1
# workspace 5 output HDMI-1
# workspace 6 output HDMI-1
# workspace 7 output HDMI-1
# workspace 8 output HDMI-1
# workspace "music" output HDMI-1
# workspace "background" output HDMI-1

# 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 "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'"


bindsym $mod+m move scratchpad
bindsym $mod+Shift+m scratchpad show ; resize set 1920 920 ; move position center



bindsym $mod+F2 exec i3-input -F 'rename workspace to "%s"' -P 'New name: '
bindsym Control+Mod1+Left workspace prev_on_output
bindsym Control+Mod1+Right workspace next_on_output

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

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

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



bindsym $mod+r mode "resize"
# 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 $mod+h resize shrink width 4 px or 4 ppt
    bindsym $mod+j resize grow height 4 px or 4 ppt
    bindsym $mod+k resize shrink height 4 px or 4 ppt
    bindsym $mod+l resize grow width 4 px or 4 ppt

    # same bindings, but for the arrow keys
    bindsym Left resize shrink width 4 px or 4 ppt
    bindsym Up resize grow height 4 px or 4 ppt
    bindsym Down resize shrink height 4 px or 4 ppt
    bindsym Right resize grow width 4 px or 4 ppt

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


set $mode_brightness "display brightness 🔅 🔆"
bindsym $mod+b mode $mode_brightness
mode $mode_brightness {
    bindsym Up    exec  xrandr-brightness  .1
    bindsym Down  exec  xrandr-brightness -.1
    bindsym Return mode "default"
    bindsym Escape mode "default"
}





#! exec: execute when starting
#! exec_always: execute when starting or restarting

# exec xrandr --output HDMI-1 --right-of DP-1
# exec xrandr --output HDMI-1 --right-of VGA-1
# exec /usr/bin/xrandr-reset.sh
exec xset r rate 330 40
exec xinput --set-prop 'Xornet gaming mouse' 'libinput Accel Speed' 0.1
# exec setsid xautolock -locker swaylock

exec swayidle -w timeout 300 'swaylock -f' timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' before-sleep 'swaylock -f -c 000000'

# exec gnome-keyring-daemon --start --components=secrets
# start compositor...
# exec compton -b --config ~/.config/i3/compton.conf
# exec nitrogen --restore
exec setsid mako
exec nm-applet
exec pidgin
exec bash -c 'for d in ~/.config/autostart/*.desktop; do awk -e 'match($0,"Exec=(.*)",q){ gsub(/ %.+/, "", q[1]); system("setsid -f " q[1])};' $d; done'
exec_always setxkbmap de,us -device evdev -model pc105 -option "" -option keypad:pointerkeys,grp_led:caps,grp:caps_toggle,terminate:ctrl_alt_bksp -v 1 -print 
# exec setxkbmap -option caps:escape





exec setsid hexchat -e --minimize=2


# ==============================================
# base16 Xressource depenend color configuration
# with default values from base16-tomorrow-night
# ==============================================

include /home/max/.config/base16/base16-sway/themes/base16-tomorrow.config
# main variables ssource         default
# d variable      default
set $background   $base01
set $foreground   $base05
set $cursorColor  #00ff00

# set_from_resource  $foreground  base16.cursor      $cursorColor
# set_from_resource  $foreground  base16.cursor      $base05

# Basic bar configuration using the Base16 variables.
bar {
    # status_command i3status --config ~/.config/i3/i3status.conf
    font pango:monospace 9
    status_command i3status --config ~/.config/i3/i3status.conf
    # swaybar_command swaybar

    tray_padding 2
    tray_output DP-1
    mode dock
    strip_workspace_numbers yes
    # separator_symbol "|"
    separator_symbol " "

    colors {
        background          $background
        separator           $foreground
        statusline          $foreground

        focused_workspace   $background $background $base05
        active_workspace    $background $background $cursorColor
        inactive_workspace  $background $background $base03
        urgent_workspace    $background $background $base08
        binding_mode        $background $background $foreground
    }
}

# Basic color configuration using the Base16 variables for windows and borders.
# Property Name          Border       BG       Text     Indicator  Child Border
client.focused           $base05      $base0D  $base00  $base0D    $base0D
client.focused_inactive  $base01      $base01  $base05  $base03    $base01
client.unfocused         $base01      $base00  $base05  $base01    $base01
client.urgent            $base08      $base08  $base00  $base08    $base08
client.placeholder       $base00      $base00  $base05  $base00    $base00
client.background        $background


# for_window [class="^.*"] border normal 3
# for_window [title="^.*Thunderbird"] border pixel 0
# for_window [title="^.*Chromium"] border pixel 0
# for_window [class="Gvim"] border pixel 0
for_window  [class="(?i)evolution"]        title_format "📧 %title"
for_window  [class="(?i)thunderbird"]      title_format " %title"
for_window  [class="(?i)firefox"]          title_format " %title"
for_window  [class="(?i)chromium"]         title_format " %title"
for_window  [class="(?i)hexchat"]          title_format " %title"
for_window  [class="(?i)pidgin"]           title_format "👥 %title"
for_window  [class="(?i)thunar"]           title_format "🗄️ %title"
for_window  [class="(?i)keepassx?"]        title_format "🔑 %title"
for_window  [class="(?i).*terminal?"]      title_format " %title"
for_window  [class="(?i).*termite?"]      title_format " %title"
for_window  [class="(?i)xfce4-appfinder"]  title_format " %title"
for_window  [title="YouTube"]              title_format " %title"
for_window  [title=""]                    title_format "%title"
for_window  [title=" "]                   title_format "%title"
# for_window [class="(?i)xfce4-terminal"] border pixel 0
# for_window [class="(?i)xfce4-appfinder"] border pixel 0
# for_window [title="^.*\|"] border pixel 4
# for_window [title="^HexChat.*"] border pixel 0
# for_window [title="^.*"] exec pkill -SIGRTMIN+11 i3blocks
# for_window [title="^.*"] exec pkill -SIGRTMIN+11 i3blocks
# for_window [title="cairo-dock"] floating enable ; border none
# for_window[class="Plank"] floating enable,move absolute center
# for_window [class=".*"] title_format "┋ %title"
# for_window [con_id="__focused__"] title_format "<u>%title</u>"

# Press $mod+o followed by either f, t, Escape or Return to launch firefox,
# thunderbird or return to the default mode, respectively.
set $mode_launcher Launch: [f]irefox [t]hunderbird
bindsym $mod+o mode "$mode_launcher"

mode "$mode_launcher" {
    bindsym f exec firefox
    bindsym t exec thunderbird

    bindsym Escape mode "default"
    bindsym Return mode "default"
}


# vim: iskeyword+=\$,\-,\# nospell ft=tcl