dotfiles/i3/.config/i3/config

149 lines
4.4 KiB
Plaintext

######################################
# Includes
######################################
include $HOME/.config/i3/workspaces.conf
include $HOME/.config/i3/scratchpads.conf
include $HOME/.config/i3/themes/current.conf
######################################
# Basic Set up
######################################
set $mod Mod4
floating_modifier $mod
font pango:monospace 8
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex --autostart --environment i3
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym F11 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym F10 exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym F9 exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
# Fix monitor setup on bootup
exec ~/scripts/xrandr_dual_monitor.sh
# turn picom on on start up
exec_always --no-startup-id picom &
# turn off borders (required for i3-gaps)
for_window [class=".*"] border pixel 2
# gaps
gaps inner 12
# polybar
exec_always --no-startup-id $HOME/.config/polybar/launch.sh
# set background on startup
set $wallpaper /home/clint/Pictures/wallpapers/_current_wallpaper.jpg
exec --no-startup-id feh --bg-fill $wallpaper
######################################
# Key Bindings
######################################
# start a terminal
bindsym $mod+Return exec --no-startup-id alacritty
# kill focused window
bindsym $mod+Shift+q kill
bindsym $mod+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id rofi -show run
# you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# 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
# 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
# lock screen
bindsym $mod+l exec ~/scripts/lock.sh
# dmenu stuff
bindsym $mod+c exec ~/scripts/dmenu_configs.sh
bindsym $mod+p exec ~/scripts/dmenu_images.sh
bindsym $mod+x exec ~/scripts/dmenu_shutdown.sh
# common programs
bindsym $mod+Shift+w exec firefox
bindsym $mod+Shift+p exec pycharm
# 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'"
# Volume controls
#bindsym F9 exec pactl set-sink-mute @DEFAULT_SINK@ toggle
#bindsym F11 exec pactl set-sink-volume 0 +10%
#bindsym F10 exec pactl set-sink-volume 0 -10%
# set which programs open in which workspaces
# to find the class, run xprop in a terminal and click on a program
#assign [class="firefox"] $ws2
# these programs will float
for_window [class="kcalc"] floating enable
######################################
# Resizing Windows
######################################
bindsym $mod+r mode "resize"
mode "resize" {
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}