mirror of
https://github.com/Foltik/dotfiles
synced 2024-11-28 13:36:59 -05:00
119 lines
4.0 KiB
Plaintext
119 lines
4.0 KiB
Plaintext
###############################################################################
|
|
# VARIABLES #
|
|
###############################################################################
|
|
|
|
#!nobracket
|
|
|
|
set $mod Mod1 # Alt key
|
|
set $term alacritty
|
|
|
|
set $mv 20px # amount to resize windows (also used for how far to
|
|
set $mvppt 2ppt # move floating windows with mod+shift+hjkl)
|
|
|
|
font pango:SauceCodePro Nerd Font 10
|
|
floating_modifier $mod
|
|
focus_follows_mouse no
|
|
force_focus_wrapping yes
|
|
|
|
###############################################################################
|
|
# KEYBINDS #
|
|
###############################################################################
|
|
|
|
group "default" {
|
|
|
|
# launching
|
|
bindsym $mod+backslash exec $term
|
|
bindsym $mod{,+Shift}+d exec rofi \
|
|
-show {drun,run}
|
|
|
|
# window management
|
|
bindsym $mod{2|,+Shift}+{1|h,j,k,l,\ # focused window manipulation,
|
|
Left,Down,Up,Right} {2|focus,move} \ # vikeys and arrow key support
|
|
{1|left,down,up,right}{2|, $mv}
|
|
|
|
bindsym $mod+{equal,minus} split {h,v} # horizontal and vertical split
|
|
bindsym $mod+f fullscreen toggle # fullscreen
|
|
|
|
bindsym $mod+{q,w,e} \ # change container layout
|
|
layout {stacking,tabbed,toggle split}
|
|
|
|
bindsym $mod{,+Shift}+semicolon \ # floating toggle and focus
|
|
{focus mode_,floating }toggle
|
|
|
|
bindsym $mod+{a,s} focus {parent,child} # focus parent/child
|
|
|
|
bindsym $mod+Shift+q kill
|
|
|
|
# workspaces
|
|
bindsym $mod{2|,+Shift}+{1|1..9,0} \
|
|
{2|,move container to }\
|
|
workspace number {1|1..10}
|
|
|
|
# reload/exit
|
|
# restarting/exiting
|
|
bindsym $mod+Shift+c \ # run ppi3 and reload config
|
|
exec ppi3 ~/.config/i3/config.ppi3 ~/.config/i3/config \
|
|
&& i3-msg reload
|
|
bindsym $mod+Shift+r restart
|
|
bindsym $mod+Shift+e exit
|
|
|
|
}
|
|
|
|
# dual-monitor setup
|
|
bindsym $mod{,+Shift}+slash {focus,move} \ # other monitor
|
|
output right
|
|
bindsym $mod+Shift+equal {{?\\}} # shoot all workspaces over to my
|
|
workspace number {2..10}; move \ # large monitor except 1
|
|
workspace to output HDMI2; {{?\\}}
|
|
nop
|
|
bindsym $mod+period move workspace to \ # toggle workspace between monitors
|
|
output left
|
|
|
|
###############################################################################
|
|
# MODES #
|
|
###############################################################################
|
|
|
|
mode "resize" {
|
|
bindsym {h,j,k,l,Left,Down,Up,Right} resize \
|
|
{shrink width,grow height,shrink height,grow width} $mv or $mvppt
|
|
bindsym Shift+{h,j,k,l,Left,Down,Up,Right} resize \
|
|
{shrink width,grow height,shrink height,grow width} 1px or 1ppt
|
|
|
|
bindsym {Return,Escape,space,$mod+r} mode "default"
|
|
}
|
|
bindsym $mod+r mode "resize"
|
|
|
|
###############################################################################
|
|
# COLORS AND APPEARANCE #
|
|
###############################################################################
|
|
|
|
gaps inner 12
|
|
gaps outer 0
|
|
smart_gaps on
|
|
|
|
default_border pixel 2
|
|
default_floating_border none
|
|
hide_edge_borders both
|
|
|
|
set_from_resource $bg color0
|
|
set_from_resource $bg-alt color14
|
|
set_from_resource $fg color15
|
|
set_from_resource $fg-alt color2
|
|
set_from_resource $hl color13
|
|
|
|
# class #border
|
|
client.focused $fg-alt $bg $hl $fg-alt $hl
|
|
client.focused_inactive $fg-alt $bg $fg $fg-alt $fg-alt
|
|
client.unfocused $fg-alt $bg $fg $fg-alt $fg-alt
|
|
client.urgent $fg-alt $bg $fg $fg-alt $fg-alt
|
|
client.placeholder $fg-alt $bg $fg $fg-alt $fg-alt
|
|
client.background $fg-alt $bg $fg $fg-alt $fg-alt
|
|
|
|
|
|
###############################################################################
|
|
# STARTUP #
|
|
###############################################################################
|
|
|
|
exec --no-startup-id systemd-notify --ready
|
|
|