dotwryn/config/i3.conf
yage ad66d50b11 BIG REFACTOR; PLEASE BE ADVISED
finally going to commit that zshrc refactor

- smolvsdefault on altaria
- i3-utils refactor
- no need for custom scwrypt executable anymore
- time to say goodbye to the old dotwryn.env in favor of the new and improved rc.ds
- vim/rc.d refactor + QuickREPL and QuickCommand replacements for \r and \t
- going to stop tracking Archives explicitly until new hard drive
- tty-colorscheme is now referenced directly
- colorscheme/spring-sunset needed to swap primary/secondary colors for focus in i3 since it was confusing
- setup config no longer needs to create ~/.config/wryn/env.vim; added some dependencies to arch-linux
- switch from dmenu to rofi by default; allow .i3 overrides in colorschemes; tty-colorscheme is now referenced directly
2024-05-07 21:52:43 -06:00

219 lines
7.7 KiB
Plaintext

# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $alt Mod1
set $mod Mod4
font pango:Monaspace Argon, pango:Noto Color Emoji, pango:Symbols Nerd Font 16
################################################################################
## Custom Utility ##############################################################
################################################################################
set $UTILS exec --no-startup-id /home/w0ryn/.config/i3/utils
# Audio
bindsym XF86AudioRewind $UTILS previous
bindsym XF86AudioPrev $UTILS previous
bindsym XF86AudioForward $UTILS next
bindsym XF86AudioNext $UTILS next
bindsym XF86AudioPlay $UTILS play-pause
bindsym XF86AudioRaiseVolume $UTILS volumeup
bindsym XF86AudioLowerVolume $UTILS volumedown
bindsym XF86AudioMute $UTILS volumemute
bindsym XF86AudioMicMute $UTILS micmute
# Screen brightness
bindsym XF86MonBrightnessUp $UTILS backlightup
bindsym XF86MonBrightnessDown $UTILS backlightdown
# Quick applications
bindsym $mod+Shift+m $UTILS launch messages
bindsym $mod+Shift+d $UTILS launch discord
bindsym $mod+c $UTILS launch voice
bindsym $mod+m $UTILS launch ytmusic
bindsym $mod+Shift+s $UTILS launch spotify
bindsym $mod+a $UTILS launch pavuctrl
bindsym $mod+Shift+p $UTILS launch scrcpy
bindsym $mod+Shift+o $UTILS launch obs
# Terminal
bindsym $mod+Return exec --no-startup-id i3-sensible-terminal
# Other
bindsym $mod+p $UTILS bgrandomize
bindsym $mod+Shift+minus $UTILS lock
bindsym $mod+space exec --no-startup-id dmenu_run -c -l 5 -fn 'DejaVuSansMono Nerd Font-25'
bindsym $mod+backslash $UTILS screenshot
################################################################################
## Window Management and Navigation ############################################
################################################################################
bindsym $mod+q kill
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
bindsym $mod+b split h
bindsym $mod+v split v
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
bindsym $mod+f fullscreen toggle
bindsym $mod+Shift+f focus parent; fullscreen; focus child
bindsym $mod+BackSpace open
bindsym $mod+1 workspace number "1"
bindsym $mod+2 workspace number "2"
bindsym $mod+3 workspace number "3"
bindsym $mod+4 workspace number "4"
bindsym $mod+5 workspace number "5"
bindsym $mod+6 workspace number "6"
bindsym $mod+7 workspace number "7"
bindsym $mod+8 workspace number "8"
bindsym $mod+9 workspace number "9"
bindsym $mod+0 workspace number "0"
bindsym $mod+Shift+1 move container to workspace number "1"
bindsym $mod+Shift+2 move container to workspace number "2"
bindsym $mod+Shift+3 move container to workspace number "3"
bindsym $mod+Shift+4 move container to workspace number "4"
bindsym $mod+Shift+5 move container to workspace number "5"
bindsym $mod+Shift+6 move container to workspace number "6"
bindsym $mod+Shift+7 move container to workspace number "7"
bindsym $mod+Shift+8 move container to workspace number "8"
bindsym $mod+Shift+9 move container to workspace number "9"
bindsym $mod+Shift+0 move container to workspace number "0"
mode "resize" {
bindsym h resize grow width 10 px or 10 ppt
bindsym j resize shrink height 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink width 10 px or 10 ppt
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# floating window / scratchpad
bindsym $mod+Shift+space floating toggle
bindsym $mod+d focus mode_toggle
floating_modifier $mod
bindsym $mod+Shift+Tab move scratchpad
bindsym $mod+Tab scratchpad show
set $GAMES_CLIENT_CLASSES ^(Steam)|(dolphin-emu)|(Visualboyadvance-m)|(steam_app_.*)$
bindsym $mod+Shift+x [class=$GAMES_CLIENT_CLASSES] scratchpad show
set $TERMINAL_EMULATOR_CLASSES ^(Alacritty)$
bindsym $mod+x [class=$TERMINAL_EMULATOR_CLASSES] scratchpad show
# floating window / notification compatibility
for_window [window_role="About"] floating enable
for_window [window_role="Organizer"] floating enable
for_window [window_role="Preferences"] floating enable
for_window [window_role="bubble"] floating enable
for_window [window_role="page-info"] floating enable
for_window [window_role="pop-up"] floating enable
for_window [window_role="task_dialog"] floating enable
for_window [window_role="toolbox"] floating enable
for_window [window_role="webconsole"] floating enable
for_window [window_type="dialog"] floating enable
for_window [window_type="menu"] floating enable
for_window [class="[xX]fce4-notifyd"] border pixel 0
################################################################################
## i3 Settings #################################################################
################################################################################
bindsym $mod+Shift+e exec $UTILS logout
bindsym Control+$alt+Delete exit
bindsym $mod+Shift+r restart
bindsym $mod+Shift+c reload
# i3-gaps settings
for_window [class="^.*"] border pixel 4
gaps inner 0
gaps outer 0
bindsym $mod+z gaps outer current plus 2; gaps inner current plus 2;
bindsym $mod+shift+z gaps outer current minus 2; gaps inner current minus 2;
################################################################################
## Miscellaneous ###############################################################
################################################################################
exec --no-startup-id compton
# color settings
set $FOCUSED_BORDER #006942
set $FOCUSED_BACKGROUND #006942
set $FOCUSED_TEXT #CCDDFF
set $FOCUSED_INDICATOR #42AA69
set $FOCUSED_CHILD_BORDER #006942
set $INACTIVE_BORDER #004269
set $INACTIVE_BACKGROUND #004269
set $INACTIVE_TEXT #CCDDFF
set $INACTIVE_INDICATOR #4269AA
set $INACTIVE_CHILD_BORDER #004269
set $UNFOCUSED_BORDER #420069
set $UNFOCUSED_BACKGROUND #420069
set $UNFOCUSED_TEXT #CCDDFF
set $UNFOCUSED_INDICATOR #6942AA
set $UNFOCUSED_CHILD_BORDER #420069
set $URGENT_BORDER #690042
set $URGENT_BACKGROUND #690042
set $URGENT_TEXT #CCDDFF
set $URGENT_INDICATOR #AA4269
set $URGENT_CHILD_BORDER #690042
set $PLACEHOLDER_BORDER #694200
set $PLACEHOLDER_BACKGROUND #694200
set $PLACEHOLDER_TEXT #CCDDFF
set $PLACEHOLDER_INDICATOR #AA6942
set $PLACEHOLDER_CHILD_BORDER #694200
client.focused $FOCUSED_BORDER $FOCUSED_BACKGROUND $FOCUSED_TEXT $FOCUSED_INDICATOR $FOCUSED_CHILD_BORDER
client.focused_inactive $INACTIVE_BORDER $INACTIVE_BACKGROUND $INACTIVE_TEXT $INACTIVE_INDICATOR $INACTIVE_CHILD_BORDER
client.unfocused $UNFOCUSED_BORDER $UNFOCUSED_BACKGROUND $UNFOCUSED_TEXT $UNFOCUSED_INDICATOR $UNFOCUSED_CHILD_BORDER
client.urgent $URGENT_BORDER $URGENT_BACKGROUND $URGENT_TEXT $URGENT_INDICATOR $URGENT_CHILD_BORDER
client.placeholder $PLACEHOLDER_BORDER $PLACEHOLDER_BACKGROUND $PLACEHOLDER_TEXT $PLACEHOLDER_INDICATOR $PLACEHOLDER_CHILD_BORDER
#####################################################################
### Legacy Defaults #################################################
#####################################################################
# These settings are system-specific and are removed by
# 'scwrypts generate i3 config' I've left them in place so my
# defaults are in place on machines which still use the symlinked
# version of this config file rather than the generated one.
# for use after any command which should refresh the statusbar
set $refresh_statusbar killall -SIGUSR1 i3status
bar {
status_command i3status
}