Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
304 lines (240 sloc)
9.37 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# I3 CONFIG | |
# Please see https://i3wm.org/docs/userguide.html for a complete reference! | |
# WINDOWS KEY MODIFIER | |
# "The button for i3 commands" | |
set $mod Mod4 | |
#set $mod Mod1 | |
# Font for window titles. Will also be used by the bar unless a different font | |
# is used in the bar {} block below. | |
font pango:monospace 8 | |
# Monitors | |
workspace 1 output HDMI-0 | |
workspace 2 output DVI-I-0 | |
# Fix optimus | |
exec /usr/bin/prime-offload | |
# Load bash_profile on startup | |
exec --no-startup-id source $HOME/.bash_profile | |
# Choose random background | |
#exec --no-startup-id feh --randomize --bg-fill ~/Pictures/Wallpapers/* | |
# Choose random background with associated color theme | |
exec --no-startup-id wal -i ~/Pictures/Wallpapers/ -l | |
# I3 Lock, SCRIPT FROM https://github.com/petvas/i3lock-blur | |
bindsym $mod+F12 exec ~/.config/i3lock/lock.sh | |
# Force monitor positions | |
exec --no-startup-id xrandr --output DVI-I-0 --right-of HDMI-0 | |
# Force US keyboard layout | |
exec --no-startup-id setxkbmap -layout us | |
# Compositor | |
#exec_always --no-startup-id compton --backend glx --blur-method kawase --blur-strength 4 --config ~/.config/.compton.conf | |
#exec_always --no-startup-id compton --blur-background --blur-method kawase --blur-strength 8 --opacity-rule 30:'class_g="st"' --backend glx | |
exec_always --no-startup-id compton --backend glx | |
# Launch redshift (like flux) | |
exec_always --no-startup-id redshift -l -37.814:144.96332 | |
# Flameshot screenshotting tool startup | |
exec_always --no-startup-id flameshot | |
# I3 GAPS | |
for_window [class=".*"] border pixel 0 | |
# Status bar | |
#bar { | |
# # Height in pixels | |
# position top | |
# height 20 | |
# | |
# font pango:Terminus 12px | |
# | |
# #status_command i3status | |
# # Custom i3status bar | |
# status_command ~/.config/i3/statusbar.sh | |
#} | |
exec --no-startup-id pkill polybar; polybar -r example | |
#exec_always --no-startup-id $HOME/.config/polybar/launch.sh | |
# Application Shortcuts | |
bindsym $mod+F1 exec brave --disable-seccomp-filter-sandbox #google-chrome-stable | |
bindsym $mod+F2 exec nautilus | |
bindsym $mod+F3 exec firefox | |
bindsym $mod+F4 exec discord-canary | |
bindsym $mod+F5 exec s-tui | |
bindsym $mod+F6 exec google-chrome-stable | |
# printscreen takes screenshot with flameshot | |
bindsym Print exec flameshot gui | |
#bindsym $mod2+r exec --no-startup-id ranger | |
#bindsym $mod2+c exec --no-startup-id google-chrome | |
# Use Mouse+$mod to drag floating windows to their wanted position | |
floating_modifier $mod | |
# Move workspace to other monitor | |
bindsym $mod+p move workspace to output right | |
# start a terminal | |
bindsym $mod+Return exec st | |
#bindsym $mod+Return exec i3-sensible-terminal | |
#bindsym $mod+\ exec xterm | |
# kill focused window | |
bindsym $mod+Shift+q kill | |
bindsym $mod+q kill | |
# start dmenu (a program launcher) | |
bindsym $mod+d exec dmenu_run | |
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop | |
# BORROWED FROM LUKE SMITH | |
bindsym $mod+Shift+y exec --no-startup-id i3resize left | |
bindsym $mod+Shift+u exec --no-startup-id i3resize down | |
bindsym $mod+Shift+i exec --no-startup-id i3resize up | |
bindsym $mod+Shift+o exec --no-startup-id i3resize right | |
# Rounded Corners | |
border_radius 10 | |
# Control inner gap size | |
bindsym $mod+s gaps inner current plus 5 | |
bindsym $mod+Shift+s gaps inner current minus 5 | |
# Reset gaps | |
bindsym $mod+Shift+d gaps inner current set 10; gaps outer current set 20 | |
# Control outer gaps | |
bindsym $mod+z gaps outer current plus 5 | |
bindsym $mod+Shift+z gaps outer current minus 5 | |
# VIM CONTROLS | |
# change focus | |
bindsym $mod+h focus left | |
bindsym $mod+j focus down | |
bindsym $mod+k focus up | |
bindsym $mod+l focus right | |
# Or using arrow keys: | |
bindsym $mod+Left focus left | |
bindsym $mod+Down focus down | |
bindsym $mod+Up focus up | |
bindsym $mod+Right focus right | |
# move focused window | |
bindsym $mod+Shift+h move left | |
bindsym $mod+Shift+j move down | |
bindsym $mod+Shift+k move up | |
bindsym $mod+Shift+l move right | |
# or using arrow 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+b split h | |
# split in vertical orientation | |
bindsym $mod+v split v | |
# enter fullscreen mode for the focused container | |
bindsym $mod+f fullscreen toggle | |
# change container layout (stacked, tabbed, toggle split) | |
#bindsym $mod+s layout stacking | |
bindsym $mod+w layout tabbed | |
bindsym $mod+e layout toggle split | |
# 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 | |
# focus the child container | |
#bindsym $mod+d focus child | |
# Define names for default workspaces for which we configure key bindings later on. | |
# We use variables to avoid repeating the names in multiple places. | |
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" | |
set $ws10 "10" | |
# switch to workspace | |
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+0 workspace $ws10 | |
# move focused container to workspace | |
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 | |
bindsym $mod+Shift+0 move container to workspace $ws10 | |
# 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 exec --no-startup-id pkill compton; restart | |
# exit i3 (logs you out of your X session) | |
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'Exit i3 session?' -B 'Yes, exit i3' 'i3-msg exit'" | |
# resize window (you can also use the mouse for that) | |
mode "resize" { | |
# These bindings trigger as soon as you enter the resize mode | |
# Pressing left will shrink the window’s width. | |
# Pressing right will grow the window’s width. | |
# Pressing up will shrink the window’s height. | |
# Pressing down will grow the window’s height. | |
bindsym h resize shrink width 10 px or 10 ppt | |
bindsym j resize grow height 10 px or 10 ppt | |
bindsym k resize shrink height 10 px or 10 ppt | |
bindsym l resize grow width 10 px or 10 ppt | |
# same bindings, but for the arrow keys | |
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" | |
} | |
bindsym $mod+r mode "resize" | |
set $i3_resurrect i3-resurrect | |
# Save workspace mode. | |
mode "save" { | |
bindsym 1 exec "$i3_resurrect save -w 1 --swallow=class,instance,title" | |
bindsym 2 exec "$i3_resurrect save -w 2 --swallow=class,instance,title" | |
bindsym 3 exec "$i3_resurrect save -w 3 --swallow=class,instance,title" | |
bindsym 4 exec "$i3_resurrect save -w 4 --swallow=class,instance,title" | |
bindsym 5 exec "$i3_resurrect save -w 5 --swallow=class,instance,title" | |
bindsym 6 exec "$i3_resurrect save -w 6 --swallow=class,instance,title" | |
bindsym 7 exec "$i3_resurrect save -w 7 --swallow=class,instance,title" | |
bindsym 8 exec "$i3_resurrect save -w 8 --swallow=class,instance,title" | |
bindsym 9 exec "$i3_resurrect save -w 9 --swallow=class,instance,title" | |
bindsym 0 exec "$i3_resurrect save -w 10 --swallow=class,instance,title" | |
# Back to normal: Enter, Escape, or s | |
bindsym Return mode "default" | |
bindsym Escape mode "default" | |
bindsym m mode "default" | |
bindsym $mod+m mode "default" | |
} | |
bindsym $mod+m mode "save" | |
# Restore workspace mode. | |
mode "restore" { | |
bindsym 1 exec "$i3_resurrect restore -w 1 --programs-only" | |
bindsym 2 exec "$i3_resurrect restore -w 2 --programs-only" | |
bindsym 3 exec "$i3_resurrect restore -w 3 --programs-only" | |
bindsym 4 exec "$i3_resurrect restore -w 4 --programs-only" | |
bindsym 5 exec "$i3_resurrect restore -w 5 --programs-only" | |
bindsym 6 exec "$i3_resurrect restore -w 6 --programs-only" | |
bindsym 7 exec "$i3_resurrect restore -w 7 --programs-only" | |
bindsym 8 exec "$i3_resurrect restore -w 8 --programs-only" | |
bindsym 9 exec "$i3_resurrect restore -w 9 --programs-only" | |
bindsym 0 exec "$i3_resurrect restore -w 10 --programs-only" | |
bindsym $mod+1 exec "$i3_resurrect restore -w 1" | |
bindsym $mod+2 exec "$i3_resurrect restore -w 2" | |
bindsym $mod+3 exec "$i3_resurrect restore -w 3" | |
bindsym $mod+4 exec "$i3_resurrect restore -w 4" | |
bindsym $mod+5 exec "$i3_resurrect restore -w 5" | |
bindsym $mod+6 exec "$i3_resurrect restore -w 6" | |
bindsym $mod+7 exec "$i3_resurrect restore -w 7" | |
bindsym $mod+8 exec "$i3_resurrect restore -w 8" | |
bindsym $mod+9 exec "$i3_resurrect restore -w 9" | |
bindsym $mod+0 exec "$i3_resurrect restore -w 10" | |
# Back to normal: Enter, Escape, or n | |
bindsym Return mode "default" | |
bindsym Escape mode "default" | |
bindsym n mode "default" | |
bindsym $mod+n mode "default" | |
} | |
bindsym $mod+n mode "restore" | |