1
0
mirror of https://github.com/Foltik/dotfiles synced 2024-11-24 12:26:05 -05:00
dotfiles/lain/.config/i3/config.ppi3

124 lines
4.3 KiB
Plaintext

###############################################################################
# VARIABLES #
###############################################################################
#!nobracket
set $mod Mod4 # Super 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 --no-startup-id $term
bindsym $mod{,+Shift}+d exec --no-startup-id 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
# media keys
bindsym XF86Audio{Raise,Lower}Volume exec --no-startup-id pactl set-sink-volume 0 {+,-}5%
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle
bindsym XF86MonBrightness{Up,Down} exec --no-startup-id xbacklight -{inc,dec} 10
###############################################################################
# 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