dots/.config/i3/config

378 lines
11 KiB
Plaintext

#
# _ _____
# (_)___ / __ _ __ _ _ __ ___
# | | |_ \ _____ / _` |/ _` | '_ \/ __|
# | |___) |_____| (_| | (_| | |_) \__ \
# |_|____/ \__, |\__,_| .__/|___/
# |___/ |_|
#
# Xresources var value
set_from_resource $bg background
set_from_resource $fg foreground
set_from_resource $black color0
set_from_resource $black_l color8
set_from_resource $red color1
set_from_resource $red_l color9
set_from_resource $green color2
set_from_resource $green_l color10
set_from_resource $yellow color3
set_from_resource $yellow_l color11
set_from_resource $blue color4
set_from_resource $blue_l color12
set_from_resource $magenta color5
set_from_resource $red_l color13
set_from_resource $cyan color6
set_from_resource $cyan_l color14
set_from_resource $white color7
set_from_resource $white_l color15
set $transp #00000000
# class bd bg txt ind child_bd
client.focused $black_l $black_l $blue $blue $blue
client.unfocused $bg $bg $blue $bg $bg
client.focused_inactive $black_l $black_l $blue $bg $bg
client.urgent $bg $bg $blue $bg $bg
client.placeholder $bg $bg $blue $bg $bg
client.background $bg
# Font
font pango:DejaVu Sans Mono 11
# Mod key (Super)
set $Mod Mod4
# Moe key (Alt)
set $Moe Mod1
# Terminal (ST)
set $TERMINAL st
# Direction keys
set $up k
set $down j
set $left h
set $right l
# Workspaces Icons
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: "
set $ws11 "11: "
# ~~~~~~~~~~~~~~~
# Border & Gaps
# ~~~~~~~~~~~~~~~
# Border & Title
for_window [class="^.*"] border pixel 2, title_format " %title "
smart_borders on
# Gaps
gaps inner 5
gaps outer 8
new_window pixel
new_float normal
hide_edge_borders none
popup_during_fullscreen smart
# Changing Border style
bindsym $Mod+o border pixel 2
bindsym $Mod+Shift+o border none
# ~~~~~~~~~~~
# Autostart
# ~~~~~~~~~~~
# Remap buttons + keyboard layout
exec --no-startup-id setxkbmap pl -option 'caps:ctrl_modifier'
exec --no-startup-id xcape -e 'Caps_Lock=Escape'
exec --no-startup-id xmodmap -e "keysym Menu = Super_R"
# Load .Xresources configs
exec_always --no-startup-id xrdb -load ~/.Xresources
# Hide mouse cursor after X seconds
exec --no-startup-id unclutter --timeout 5 --jitter 2 &
# That nice bar
exec_always --no-startup-id ~/.config/polybar/launch.sh
# Prevent desktop idleness in full-screen mode
exec --no-startup-id caffeine
# X11 Compositor
exec --no-startup-id compton
# Notification daemon
exec --no-startup-id dunst
# Music daemon
exec --no-startup-id mpd
# If you have a numpad you may want to enable this and install numlockx
#exec --no-startup-id numlockx
# Keyring for storing saved passwords
exec --no-startup-id gnome-keyring-daemon --start --components=pkcs11,secrets,ssh
# Polkit, required for authentication
exec --no-startup-id /usr/libexec/polkit-gnome-authentication-agent-1
# Wallpaper (don't edit directly there, use ~/.script/wallpaper.sh)
exec --no-startup-id xwallpaper --daemon --zoom ~/.config/wallpaper
# Syncthing
exec --no-startup-id syncthing -no-browser
# Scratchpad
exec --no-startup-id keepassxc -name keepassxc-sp
# ~~~~~~~~~~~~~
# Keybindings
# ~~~~~~~~~~~~~
# Restart i3
bindsym $Mod+Shift+r restart
# Kill focused window
bindsym $Mod+Shift+q kill
# Hide polybar
bindsym $Mod+bracketleft exec --no-startup-id killall -9 polybar
bindsym $Mod+bracketright exec --no-startup-id .config/polybar/launch.sh
# Launcher
bindsym $Mod+d exec --no-startup-id dmenu_run -f -i
bindsym $Mod+Shift+d exec --no-startup-id i3-dmenu-desktop --dmenu="dmenu -f -i"
# Applications
bindsym $Mod+Return exec --no-startup-id $TERMINAL
bindsym $Mod+f exec --no-startup-id $HOME/.local/share/tor-browser/Browser/start-tor-browser
bindsym $Mod+Shift+f exec --no-startup-id $BROWSER
bindsym $Mod+r exec --no-startup-id $TERMINAL -n 'ncmpcpp' -e 'ncmpcpp'
bindsym $Mod+t exec --no-startup-id $HOME/.script/dmenu-messenger.sh
bindsym $Mod+b exec --no-startup-id blueman-manager
bindsym $Mod+p [instance="keepassxc-sp"] scratchpad show; [instance="keepassxc-sp"] move position center
bindsym $Mod+u exec --no-startup-id exec ~/.script/dmenu-unicode.sh
bindsym $Mod+m exec --no-startup-id $TERMINAL -n 'neomutt' -e 'neomutt'
bindsym $Mod+Shift+m exec --no-startup-id ~/.config/mutt/etc/mailsync.sh
bindsym $Mod+n exec --no-startup-id redshift -O 3500 -b 0.8
bindsym $Mod+Shift+n exec --no-startup-id redshift -x
bindsym $Mod+g exec --no-startup-id gcolor2
# Compton
bindsym $Mod+c exec --no-startup-id compton
bindsym $Mod+Shift+c exec --no-startup-id killall -9 compton
# Logout
bindsym $Mod+x exec --no-startup-id ~/.script/dmenu-logout.sh
# Screenshot
bindsym Print exec --no-startup-id ~/.script/dmenu-screenshot.sh
# Center floating app
bindsym $Mod+s move position center
# Move to corner
bindsym $Mod+Shift+s exec --no-startup-id ~/.script/i3-corner.sh 3
# sndio
# bindsym $Mod+$Moe+$up exec --no-startup-id ~/.script/sndio.sh up 1
# bindsym $Mod+$Moe+$down exec --no-startup-id ~/.script/sndio.sh down 1
# bindsym XF86AudioRaiseVolume exec --no-startup-id ~/.script/sndio.sh up 1
# bindsym XF86AudioLowerVolume exec --no-startup-id ~/.script/sndio.sh down 1
# Audio - Vim bindings
bindsym $Mod+$Moe+$up exec --no-startup-id pamixer -i 1
bindsym $Mod+$Moe+$down exec --no-startup-id pamixer -d 1
# Audio - XF86 bindings
bindsym XF86AudioRaiseVolume exec --no-startup-id pamixer -i 1
bindsym XF86AudioLowerVolume exec --no-startup-id pamixer -d 1
bindsym XF86AudioMute exec --no-startup-id pamixer -t
bindsym XF86AudioPlay exec --no-startup-id mpc play
bindsym XF86AudioNext exec --no-startup-id mpc next
bindsym XF86AudioPrev exec --no-startup-id mpc prev
bindsym XF86AudioStop exec --no-startup-id mpc stop
bindsym XF86AudioPause exec --no-startup-id mpc pause
# Backlight - Vim bindings
bindsym $Mod+$Moe+$right exec --no-startup-id light -A 1
bindsym $Mod+$Moe+$left exec --no-startup-id light -U 1
# Backlight - XF86 bindings
bindsym XF86MonBrightnessUp exec --no-startup-id light -A 1
bindsym XF86MonBrightnessDown exec --no-startup-id light -U 1
# Fullscreen
bindsym F11 fullscreen
# ~~~~~~~~~~~~~~~~~~~~
# Workspace Bindings
# ~~~~~~~~~~~~~~~~~~~~
# 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
bindsym $Mod+minus workspace $ws11
# Next/Previous Workspace
bindsym $Mod+$down workspace next
bindsym $Mod+$up workspace prev
# Back and forth
bindsym $Mod+Tab workspace back_and_forth
# 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
bindsym $Mod+Ctrl+underscore move container to workspace $ws11
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
bindsym $Mod+Shift+underscore move container to workspace $ws11; workspace $ws11
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
# Container/Window control
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
# Enable floating
bindsym $Mod+Shift+space floating toggle
# Change focus on mouse click
focus_follows_mouse no
# Change focus
bindsym $Moe+$left focus left
bindsym $Moe+$down focus down
bindsym $Moe+$up focus up
bindsym $Moe+$right focus right
# Focus to parent/child
bindsym $Moe+p focus parent
bindsym $Moe+c focus child
# Move focused window
bindsym $Mod+Shift+$left move left 40px
bindsym $Mod+Shift+$down move down 40px
bindsym $Mod+Shift+$up move up 40px
bindsym $Mod+Shift+$right move right 40px
# Mod + Mouse
floating_modifier $Mod
# Resize focused window
bindsym $Mod+Ctrl+$up resize shrink height 20 px or 2 ppt
bindsym $Mod+Ctrl+$down resize grow height 20 px or 2 ppt
bindsym $Mod+Ctrl+$left resize shrink width 20 px or 2 ppt
bindsym $Mod+Ctrl+$right resize grow width 20 px or 2 ppt
# Switch to new window on other workspace
#focus_on_window_activation focus
# Switch to workspace with urgent window
#for_window [urgent="latest"] focus
# Container layout
bindsym $Mod+w layout tabbed
bindsym $Mod+Shift+w layout stacking
bindsym $Mod+e layout toggle split
# Split window
bindsym $Mod+less split vertical
bindsym $Mod+greater split horizontal
default_orientation horizontal
# ~~~~~~~~~~~~~~~~~~~~~~
# Application Settings
# ~~~~~~~~~~~~~~~~~~~~~~
# Tor Browser (WS1)
assign [class="Tor Browser"] workspace $ws1
for_window [class="Tor Browser"] floating enable
# Coding (WS2)
assign [class="Code - OSS"] workspace $ws2
# Messaging (WS4)
assign [class="TelegramDesktop"] workspace $ws4
assign [class="Riot"] workspace $ws4
assign [class="Signal"] workspace $ws4
assign [class="Wire"] workspace $ws4
# Mail (WS5)
assign [instance="neomutt"] workspace $ws5
# Documents (WS6)
assign [class="Zathura"] workspace $ws6
assign [class="Evince"] workspace $ws6
assign [class="libreoffice"] workspace $ws6
# Graphics (WS7)
assign [class="Gimp"] workspace $ws7
assign [class="Inkscape"] workspace $ws7
# Gaming
assign [class="retroarch"] workspace $ws8
# Audio (WS9)
assign [class="Rhythmbox"] workspace $ws9
assign [instance="ncmpcpp"] workspace $ws9
# Video (WS10)
assign [class="obs"] workspace $ws10
assign [class="vlc"] workspace $ws10
# Clearnet Browsers (WS11)
assign [class="qutebrowser"] workspace $ws11
assign [class="Firefox"] workspace $ws11
assign [class="Chromium"] workspace $ws11
assign [class="Epiphany"] workspace $ws11
assign [class="Falkon"] workspace $ws11
assign [class="Midori"] workspace $ws11
# Scratchpad
for_window [instance="keepassxc-sp"] move scratchpad
for_window [instance="keepassxc-sp"] border pixel 3
for_window [instance="keepassxc-sp"] resize set 800 600
# Other
for_window [class="Gsimplecal"] floating enable
# vim: filetype=i3