dotfiles/config/i3/config
2020-12-14 20:12:03 +02:00

185 lines
6.1 KiB
Text

############# General #############
# Bind $MOD(super) key
set $mod Mod4
set $alt Mod1
floating_modifier $mod
# Font
font monospace 10
font pango:JetBrains Mono 10
# Disable window title
default_border pixel
new_float pixel
# Borders
hide_edge_borders smart
############ Variables ###########
set $terminal kitty
set $browser firefox
set $filemanager pcmanfm
############ Autostart ############
exec --no-startup-id exec picom -b
exec --no-startup-id exec nmcli radio wifi on && nmcli device wifi connect $(echo $WIFINAME) password $(echo $WIFIPASS) name net
#exec --no-startup-id exec redshift-gtk
exec --no-startup-id exec nitrogen --restore
exec --no-startup-id exec setxkbmap "us,ua" ",winkeys" "grp:alt_shift_toggle" -option "ctrl:nocaps"
exec --no-startup-id exec org.telegram.desktop
#exec --no-startup-id exec conky
#exec --no-startup-id exec discord
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec_always --no-startup-id $HOME/.config/i3/bar.sh
############ Key bindings #########
### I3
# Kill focus window
bindsym $mod+q kill
# Restart i3wm
bindsym $mod+Control+r restart
# Focus the parent container
bindsym $mod+a focus parent
# Floating window
bindsym $mod+Shift+space floating toggle
# Splits
bindsym $mod+b split h
bindsym $mod+v split v
# Change container layout(stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# Scratchpad
bindsym $mod+Shift+grave move scratchpad
bindsym $mod+grave scratchpad show, floating disable
### Launchers
bindsym $mod+Shift+apostrophe exec "rofi -show run"
bindsym $mod+Shift+Return exec "rofi -show drun"
bindsym $mod+Escape exec ~/.script/dmenu/dmenu-power.sh -h 24
bindsym $mod+Control+u exec ~/.script/dmenu/dmenu-config-edit.sh -h 24
bindsym $mod+Control+i exec passmenu -h 24 -p Passwords
### Applications
bindsym $mod+Return exec $terminal
bindsym $mod+F2 exec $browser
bindsym $mod+F4 exec $filemanager
bindsym --release $mod+Shift+Escape exec xkill
bindsym $mod+$alt+t exec $terminal nvim .todo
### Sceenshot
bindsym --release Print exec "scrot -s /home/${USER}/$(date +%Y-%m-%d-%H-%M-%S).png"
bindsym --release Shift+Print exec "scrot /home/${USER}/$(date +%Y-%m-%d-%H-%M-%S).png"
### Volume
bindsym $mod+plus exec "pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo +5%"
bindsym $mod+minus exec "pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo -5%"
bindsym $mod+Shift+minus exec "pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo toggle"
######### Window preferens ########
#assign [class="Kitty"] $ws1
#assign [class="(?i)chromium|firefox|qutebrowser"] $ws2
#assign [class="(?i)subl|code|emacs"] $ws3
#assign [class="(?i)thunar"] $ws4
#assign [title="Notable|Simplenote"] $ws5
assign [class="(?i)telegram|discord|viber"] $ws6
assign [title="KeePassXC"] $ws7
#for_window [title="Ranger_FM"] move to workspace $ws4
#for_window [class="Spotify"] move to workspace $ws9
for_window [class="(?i)mousepad"] floating enable
for_window [class="(?i)lxappearance|qt5ct"] floating enable
for_window [class="(?i)nitrogen"] floating enable
#focus_on_window_activation focus
############## Gaps ###############
#gaps inner 4
#smart_gaps on
##### Change containet focus ######
bindsym $mod+h focus left
bindsym $mod+Left focus left
bindsym $mod+j focus down
bindsym $mod+Down focus down
bindsym $mod+k focus up
bindsym $mod+Up focus up
bindsym $mod+l focus right
bindsym $mod+Right focus right
##### Move focused container ######
bindsym $mod+Shift+h move left
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+l move right
bindsym $mod+Shift+Right move right
##### Restart focused window ######
bindsym $mod+Control+h resize shrink width 20 px or 20 ppt
bindsym $mod+Control+Left resize shrink width 20 px or 20 ppt
bindsym $mod+Control+j resize grow height 20 px or 20 ppt
bindsym $mod+Control+Down resize grow height 20 px or 20 ppt
bindsym $mod+Control+k resize shrink height 20 px or 20 ppt
bindsym $mod+Control+Up resize shrink height 20 px or 20 ppt
bindsym $mod+Control+l resize grow width 20 px or 20 ppt
bindsym $mod+Control+Right resize grow width 20 px or 20 ppt
############ Workspaces ###########
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
############## Modes ##############
bindsym $mod+g mode "gaps"
mode "gaps" {
bindsym plus gaps inner current plus 2
bindsym minus gaps inner current minus 2
bindsym 0 gaps inner current set 0
bindsym Shift+plus gaps inner all plus 4
bindsym Shift+minus gaps inner all minus 4
bindsym Shift+0 gaps inner all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+g mode "default"
}
############## Colors #############
# Class Border Backgr Text Indicator Child_border
client.focused #008DCD #008DCD #FFFFFF #008DCD #008DCD
client.focused_inactive #008DCD #002b36 #DFDFDF #002b36 #002b36
client.unfocused #262A2B #262A2B #DFDFDF #262A2B #262A2B
client.urgent #002b36 #262A2B #FFFFFF #262A2B #262A2B
client.placeholder #000000 #000000 #FFFFFF #000000 #000000
client.background #FFFFFF