# vim: filetype=i3 #Github: https://github.com/hartzan ###---Basic Definitions---### #Needed for i3-gaps hide_edge_borders both for_window [class="^.*"] border pixel 0 gaps inner 15 gaps outer 15 font pango:TamzenForPowerline 12 set $mod Mod4 set $term urxvtc # Set Xresources colors: set_from_resource $darkblack color0 #000000 set_from_resource $black color8 #000000 set_from_resource $darkred color1 #000000 set_from_resource $red color9 #000000 set_from_resource $darkgreen color2 #000000 set_from_resource $green color10 #000000 set_from_resource $darkyellow color3 #000000 set_from_resource $yellow color11 #000000 set_from_resource $darkblue color4 #000000 set_from_resource $blue color12 #000000 set_from_resource $darkmagenta color5 #000000 set_from_resource $magenta color13 #000000 set_from_resource $darkcyan color6 #000000 set_from_resource $cyan color14 #000000 set_from_resource $darkwhite color7 #000000 set_from_resource $white color15 #000000 set $transparent #00000000 # Use Mouse+$mod to drag floating windows floating_modifier $mod # change container layout (stacked, tabbed, toggle split) bindsym Mod1+s layout stacking bindsym Mod1+w layout tabbed bindsym Mod1+e layout toggle split #Sticky window bindsym $mod+Shift+c sticky toggle ######### COLORS ########## # BORDER BACKGROUND TEXT INDICATOR CHILD_BORDER client.focused $red $red $magenta $darkmagenta $darkblue client.unfocused $transparent $blue $white $darkblue $darkblack client.focused_inactive $transparent $blue $white $darkblue $darkblack client.urgent $darkred $darkred $black $darkred $darkred client.background $black ###---Starting External Scripts---### #Start mopidy exec --no-startup-id mopidy & #Twmn exec --no-startup-id twmnd & #Album art for mpd/mopidy #Mpdscribble #exec --no-startup-id mpdscribble --no-daemon & #Conky #exec --no-startup-id conky -d -c ~/.config/conky/conkybg & #Rofi clipboard #exec --no-startup-id greenclip daemon & #Torrent daemon: #exec --no-startup-id transmission-daemon #Mount other drives: #exec --no-startup-id sudo mount -a #Composite manager: bindsym $mod+b exec --no-startup-id pkill compton bindsym $mod+Ctrl+b exec --no-startup-id compton -b -f exec --no-startup-id compton -b #Gnome privileges exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 #Urxvt daemon exec --no-startup-id urxvtd -q -o -f #Launch Polybar where appropriate: exec_always --no-startup-id ~/.config/polybar/launch.sh #Start the offlineimap daemon; #exec --no-startup-id killall python ~/.config/Scripts/offlineimap-daemon.py #exec --no-startup-id python ~/.config/Scripts/offlineimap-daemon.py #Start udiskie exec --no-startup-id udiskie & #Start wal exec --no-startup-id wal -R & #Add wallpaper: exec --no-startup-id systemctl --user start wallpaper.service #Unclutter makes the mouse invisible after a brief period exec --no-startup-id unclutter # custom keybinding to lockscreen, use --lock dim or --lock blur below for different backgrounds bindsym $mod+shift+x exec betterlockscreen --lock dim # Set last used image as lockscreen background exec --no-startup-id betterlockscreen -u ~/.config/wall.png #Twmn Gmail notifier exec --no-startup-id python ~/.config/Scripts/gmail_notifier.py ##For mpc: set $music urxvt -e ncmpcpp set $pause --no-startup-id mpc toggle set $trupause --no-startup-id mpc pause set $next --no-startup-id mpc next set $prev --no-startup-id mpc prev set $lilfor --no-startup-id mpc seek +10 set $bigfor --no-startup-id mpc seek +120 set $lilbak --no-startup-id mpc seek -10 set $bigbak --no-startup-id mpc seek -120 set $beg --no-startup-id mpc seek 0% set $BROWSER google-chrome-stable #FOR ALSA/AMIXER set $inc --no-startup-id amixer sset Master 2%+ set $biginc --no-startup-id amixer sset Master 5%+ set $dec --no-startup-id amixer sset Master 2%- set $bigdec --no-startup-id amixer sset Master 5%- set $mute --no-startup-id amixer sset Master toggle set $truemute --no-startup-id amixer sset Master mute #set $audio --no-startup-id bash ~/.config/Scripts/audio_alsa.sh ###---Dropdown/Scratchpad Windows---### #First I have a tmux window used for background scripts. #I'll later bind this to mod+u. for_window [instance="dropdown"] floating enable for_window [instance="dropdown"] resize set 625 400 for_window [instance="dropdown"] move position center for_window [instance="dropdown"] move scratchpad #exec --no-startup-id $term -name dropdown -e tmux #for_window [instance="music"] floating enable #for_window [instance="music"] resize set 625 40 #for_window [instance="music"] move position center #for_window [instance="music"] move scratchpad #exec --no-startup-id $term -name music -e ncmpcpp ###---Basic Bindings---### bindsym $mod+Return exec $term bindsym $mod+Shift+Return exec $term -e tmux bindsym $mod+Shift+space floating toggle bindsym $mod+space focus mode_toggle bindsym $mod+Escape workspace prev bindsym $mod+Shift+Escape exec --no-startup-id prompt "Exit i3?" "i3-msg exit" bindsym $mod+BackSpace exec $flash bindsym $mod+Shift+BackSpace exec ~/.config/Scripts/power-menu.sh # Show selection: bindsym $mod+Insert exec --no-startup-id showclip #STOP/HIDE EVERYTHING: bindsym $mod+Shift+Delete exec $truemute ; exec $truepause ; workspace lmao ; exec $term -e htop ; exec $term -e ranger ###---Letter Key Bindings---### bindsym $mod+q kill bindsym $mod+Shift+q kill bindsym $mod+w exec pcmanfm bindsym $mod+Shift+w exec --no-startup-id $BROWSER bindsym $mod+e exec $term -e neomutt #bindsym $mod+Shift+e # always pop standard shell, without the menu bindsym Mod1+z exec ~/.config/Scripts/i3-quickterm shell bindsym $mod+r exec $term -e ranger bindsym $mod+Shift+r restart bindsym $mod+t split toggle bindsym $mod+Shift+t gaps inner current set 15; gaps outer current set 15 bindsym $mod+y exec $term -e calcurse bindsym $mod+Shift+y resize shrink width 10 px or 10ppt bindsym $mod+u [instance="dropdown"] scratchpad show; move position center bindsym $mod+Shift+u resize shrink height 10 px or 10 ppt bindsym $mod+i exec $term -e htop bindsym $mod+Shift+i resize grow height 10 px or 10 ppt #bindsym $mod+o exec --no-startup-id $beg bindsym $mod+Shift+o resize grow width 10 px or 10 ppt bindsym $mod+p exec $pause bindsym $mod+a [instance="music"] scratchpad show; move position center bindsym $mod+Shift+a exec pavucontrol #bindsym $mod+Shift+a exec $term -e ncpamixer bindsym $mod+s gaps inner current plus 5 bindsym $mod+Shift+s gaps inner current minus 5 #bindsym $mod+d exec rofi -config ~/.config/rofi/config -show drun bindsym $mod+d exec dmenu_extended_run bindsym Mod1+d exec ~/.config/Scripts/rofi-bangs.sh bindsym $mod+Shift+d gaps inner current set 0; gaps outer current set 0 bindsym $mod+f fullscreen toggle bindsym $mod+g exec --no-startup-id gimp; workspace $ws5 bindsym $mod+h focus left bindsym $mod+Shift+h move left 30 bindsym $mod+j focus down bindsym $mod+Shift+j move down 30 bindsym $mod+k focus up bindsym $mod+Shift+k move up 30 bindsym $mod+l focus right bindsym $mod+Shift+l move right 30 bindsym $mod+z gaps outer current plus 5 bindsym $mod+Shift+z gaps outer current minus 5 bindsym $mod+x exec gpmdp bindsym $mod+c exec $term -e weechat #bindsym $mod+Shift+c bindsym $mod+v exec urxvt -e cava bindsym $mod+Shift+v exec projectM-pulseaudio #bindsym $mod+b exec $prev #bindsym $mod+Shift+b exec --no-startup-id blender; workspace $ws6 bindsym $mod+n exec $term -e newsboat #bindsym $mod+Shift+n exec $term -e newsboat bindsym $mod+m exec $music bindsym $mod+Shift+m exec $mute ###---Workspace Bindings---### bindsym $mod+Home workspace $ws1 bindsym $mod+End workspace $ws10 bindsym $mod+Shift+End move container to workspace $ws10 # next/previous workspace bindsym Mod1+Tab workspace next bindsym Mod1+Shift+Tab workspace prev bindsym $mod+Tab workspace back_and_forth #navigate workspaces next / previous bindsym Mod1+Ctrl+Right workspace next bindsym Mod1+Ctrl+Left workspace prev 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+Ctrl+1 move container to workspace $ws1 bindsym $mod+Ctrl+2 move container to workspace $ws2 bindsym $mod+Ctrl+3 move container to workspace $ws3 bindsym $mod+Ctrl+4 move container to workspace $ws4 bindsym $mod+Ctrl+5 move container to workspace $ws5 bindsym $mod+Ctrl+6 move container to workspace $ws6 bindsym $mod+Ctrl+7 move container to workspace $ws7 bindsym $mod+Ctrl+8 move container to workspace $ws8 bindsym $mod+Ctrl+9 move container to workspace $ws9 bindsym $mod+Ctrl+0 move container to workspace $ws10 # Move to workspace with focused container bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1 bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2 bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3 bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4 bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5 bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6 bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7 bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9 bindsym $mod+Shift+0 move container to workspace $ws10; workspace $ws10 for_window [class="Google-chrome"] move to workspace $ws2 for_window [class="Firefox"] move to workspace $ws2 for_window [title="GIMP Startup"] move workspace $ws7 for_window [class="Gimp"] move workspace $ws7 for_window [window_role="gimp-dock"] floating disable; move left; resize shrink width 50 px or 50ppt for_window [window_role="gimp-toolbox"] floating disable; move right; resize grow width 30 px or 30ppt for_window [window_role="tr-main"] move to workspace $ws8 #for_window [title="projectM"] exec --no-startup-id transset -a --dec .25 #for_window [class="st"] exec --no-startup-id transset -a --dec .25 for_window [window_role="GtkFileChooserDialog"] resize shrink height 10 px for_window [class="mpv"] floating enable for_window [class="feh"] floating enable for_window [instance="^package-update$" class="^URxvt$"] floating enable, move position center ###---Function Buttons---### bindsym $mod+F1 exec --no-startup-id arandr bindsym $mod+F2 exec --no-startup-id sudo systemctl hibernate bindsym $mod+F3 exec --no-startup-id sudo systemctl restart NetworkManager bindsym $mod+F4 exec --no-startup-id ~/.config/polybar/launch.sh bindsym $mod+F5 exec --no-startup-id sudo systemctl restart bluetooth.service ###---Arrow Keys---### bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right bindsym $mod+Shift+Left move left bindsym $mod+Shift+Down move down bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right ###---Media Keys---### #Volume keys bindsym $mod+plus exec $inc bindsym $mod+Shift+plus exec $biginc bindsym $mod+minus exec $dec bindsym $mod+Shift+minus exec $bigdec bindsym $mod+less exec $prev bindsym $mod+Shift+less exec $beg bindsym $mod+greater exec $next bindsym $mod+Shift+greater exec $next #For advancing forward/backward in an mpd song bindsym $mod+bracketleft exec $lilbak bindsym $mod+Shift+bracketleft exec $bigbak bindsym $mod+bracketright exec $lilfor bindsym $mod+Shift+bracketright exec $bigfor #Print screen takes a screenshot. #With shift, it takes one only of the given window. bindsym Print exec --no-startup-id scrot bindsym Shift+Print exec --no-startup-id scrot -u ###---Extra XF86 Keys---### #These are the extra media keys that some keyboards have. bindsym XF86AudioMute exec $mute bindsym XF86AudioLowerVolume exec $dec bindsym XF86AudioRaiseVolume exec $inc bindsym XF86PowerOff exec sudo shutdown -h now bindsym XF86Explorer exec $term -e ranger #bindsym XF86Send exec #bindsym XF86Xfer exec bindsym XF86WWW exec --no-startup-id $BROWSER bindsym XF86MyComputer exec $term -e ranger #bindsym XF86Back exec #bindsym XF86Forward exec bindsym XF86Eject exec sudo umount -R /mnt bindsym XF86AudioNext exec $next bindsym XF86AudioPlay exec $pause bindsym XF86AudioPrev exec $prev bindsym XF86AudioStop exec $pause bindsym XF86AudioRecord exec $audio bindsym XF86AudioRewind exec $lilbak bindsym XF86AudioForward exec $lilfor #bindsym XF86Phone exec #bindsym XF86Tools exec bindsym XF86Reload restart bindsym XF86AudioMicMute exec $micmute #bindsym XF86TouchpadToggle exec bindsym XF86TouchpadOn exec --no-startup-id exec synclient TouchpadOff=0 bindsym XF86TouchpadOff exec --no-startup-id exec synclient TouchpadOff=1 bindsym XF86Suspend exec --no-startup-id ~/.config/i3/lock.sh bindsym XF86Close kill bindsym XF86WebCam exec mpv /dev/video0 bindsym XF86Mail exec $term -e neomutt bindsym XF86Messenger exec $term -e weechat bindsym XF86Search exec $BROWSER https://duckduckgo.com #bindsym XF86Go exec #bindsym XF86Finance exec #bindsym XF86Game exec #bindsym XF86Shop exec $BROWSER https://ebay.com bindsym XF86MonBrightnessDown exec --no-startup-id light -U 5 bindsym XF86MonBrightnessUp exec --no-startup-id light -A 5 bindsym XF86AudioMedia exec $music bindsym XF86Display exec --no-startup-id arandr #bindsym XF86KbdLightOnOff exec bindsym XF86KbdBrightnessDown exec --no-startup-id python3.6 ~/.i3/kb-lights.py - bindsym XF86KbdBrightnessUp exec --no-startup-id python3.6 ~/.i3/kb-lights.py + #bindsym XF86Reply exec #bindsym XF86MailForward exec #bindsym XF86Save exec bindsym XF86Documents exec $term -e ranger ~/Documents #bindsym XF86Battery exec #bindsym XF86Bluetooth exec bindsym XF86WLAN exec --no-startup-id sudo systemctl restart NetworkManager