home/config/i3/config

304 lines
9.5 KiB
Plaintext
Raw Normal View History

2020-10-31 15:49:38 +01:00
# i3 Config
# -------------------------------------------------------------------------------------------------
# VARIABLES
#
# Default modifier
set $mod Mod4
2020-10-31 15:49:38 +01:00
# Workspaces names
set $wksp1 "1: Main"
set $wksp2 "2: Dev"
set $wksp3 "3: Social"
set $wksp4 "4: Music"
set $wksp5 "5: Graphics"
set $wksp6 "6: Minecraft"
set $wksp7 "7: Remote"
set $wksp8 "8"
set $wksp9 "9: Databases"
set $wksp10 "10: External"
# Colors (Nord's theme)
set $nord0 #2E3440
set $nord1 #3B4252
set $nord2 #434C5E
set $nord3 #4C566A
set $nord4 #D8DEE9
set $nord5 #E5E9F0
set $nord6 #ECEFF4
set $nord7 #8FBCBB
set $nord8 #88C0D0
set $nord9 #81A1C1
set $nord10 #5E81AC
set $nord11 #BF616A
set $nord12 #D08770
set $nord13 #EBCB8B
set $nord14 #A3BE8C
set $nord15 #B48EAD
# Modal
set $modalBorder 4
set $modalWidth 1280
set $modalHeight 800
# Font
set $font DejaVu Sans Mono 9
2020-11-03 14:48:22 +01:00
# Terminal
set $terminal /usr/bin/i3-sensible-terminal
2020-10-31 15:49:38 +01:00
# Border
default_border pixel 4
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
2020-10-31 15:49:38 +01:00
# Default font
font pango:$font
2020-06-07 11:07:32 +02:00
# -------------------------------------------------------------------------------------------------
# WINDOW FOCUS/SPLIT/MOVE
#
2020-06-15 16:03:58 +02:00
# change focus (VIM mod)
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# move focused window
2020-07-12 16:48:51 +02:00
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# split in horizontal orientation
bindsym $mod+backslash split h
# split in vertical orientation
bindsym $mod+minus split v
# enter fullscreen mode for the focused container
2020-04-26 10:29:12 +02:00
bindsym $mod+Mod1+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
2020-06-02 18:29:34 +02:00
# -------------------------------------------------------------------------------------------------
# WORKSPACES
#
workspace $wksp9 output DP-2-2
workspace $wksp10 output DP-2-2
2020-06-02 18:29:34 +02:00
# switch to workspace
2020-06-02 18:29:34 +02:00
bindsym $mod+1 workspace $wksp1
bindsym $mod+2 workspace $wksp2
bindsym $mod+3 workspace $wksp3
bindsym $mod+4 workspace $wksp4
bindsym $mod+5 workspace $wksp5
bindsym $mod+6 workspace $wksp6
2020-07-07 08:48:50 +02:00
bindsym $mod+7 workspace $wksp7
2020-07-12 16:48:51 +02:00
bindsym $mod+8 workspace $wksp8
bindsym $mod+9 workspace $wksp9
bindsym $mod+0 workspace $wksp10
# switch to previous/next workspace
bindsym Mod1+Control+a workspace prev_on_output
bindsym Mod1+Control+d workspace next_on_output
# move focused container to workspace
2020-06-02 18:29:34 +02:00
bindsym $mod+Shift+1 move container to workspace $wksp1
bindsym $mod+Shift+2 move container to workspace $wksp2
bindsym $mod+Shift+3 move container to workspace $wksp3
bindsym $mod+Shift+4 move container to workspace $wksp4
bindsym $mod+Shift+5 move container to workspace $wksp5
bindsym $mod+Shift+6 move container to workspace $wksp6
2020-07-07 08:48:50 +02:00
bindsym $mod+Shift+7 move container to workspace $wksp7
2020-07-12 16:48:51 +02:00
bindsym $mod+Shift+8 move container to workspace $wksp8
bindsym $mod+Shift+9 move container to workspace $wksp9
bindsym $mod+Shift+0 move container to workspace $wksp10
# move focused container to previous/next workspace
bindsym Mod1+Shift+Control+a move container to workspace prev
bindsym Mod1+Shift+Control+d move container to workspace next
2020-06-02 18:29:34 +02:00
# -------------------------------------------------------------------------------------------------
# RELOAD / RESTART / EXIT
#
bindsym $mod+Shift+c reload
bindsym $mod+Shift+r restart
2020-08-10 08:56:02 +02:00
bindsym $mod+Shift+e exec "~/Bin/i3quit.sh"
2020-06-02 18:29:34 +02:00
# -------------------------------------------------------------------------------------------------
# RESIZE MODE
#
mode "resize" {
2020-07-16 18:45:40 +02:00
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
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
2020-08-09 14:04:21 +02:00
# -------------------------------------------------------------------------------------------------
# COLORS
#
#colors border back text indicator child_border
client.focused $nord9 $nord9 $nord0 $nord9 $nord9
client.focused_inactive $nord0 $nord0 $nord9 $nord0 $nord0
client.unfocused $nord0 $nord0 $nord9 $nord0 $nord0
client.urgent $nord13 $nord13 $nord0 $nord13 $nord13
client.placeholder $nord13 $nord13 $nord0 $nord13 $nord13
client.background $nord9
2020-06-02 18:29:34 +02:00
# -------------------------------------------------------------------------------------------------
# I3STATUS
#
2020-11-02 09:56:35 +01:00
#bar {
# status_command py3status
## position top
## mode dock
## modifier $mod
# colors {
# background $nord0
# statusline $nord9
# focused_workspace $nord0 $nord9
# active_workspace $nord0 $nord9
# inactive_workspace $nord9 $nord0
# urgent_workspace $nord0 $nord13
# }
#}
2020-06-02 18:29:34 +02:00
# -------------------------------------------------------------------------------------------------
# AUTOSTART
#
exec --no-startup-id i3-msg 'exec blueman-applet &'
2020-11-03 14:48:22 +01:00
#exec --no-startup-id i3-msg 'exec pasystray &'
exec --no-startup-id i3-msg 'exec nm-applet &'
exec --no-startup-id i3-msg 'exec nextcloud &'
2020-06-06 07:53:19 +02:00
exec --no-startup-id i3-msg 'exec remmina -i &'
2020-04-25 15:56:49 +02:00
exec --no-startup-id xsettingsd &
2020-06-23 10:52:00 +02:00
exec --no-startup-id setxkbmap -option compose:rctrl &
2020-07-05 10:36:38 +02:00
exec --no-startup-id libinput-gestures-setup start
2020-11-03 14:48:22 +01:00
exec --no-startup-id i3-msg exec "$terminal"
exec --no-startup-id i3-msg 'exec /usr/bin/firefox'
exec --no-startup-id i3-msg 'exec /usr/bin/spotify'
2020-11-02 09:56:35 +01:00
exec_always --no-startup-id ~/.config/i3/polybar.sh &
2020-06-02 18:29:34 +02:00
# -------------------------------------------------------------------------------------------------
# WALLPAPER
#
exec --no-startup-id ~/Bin/wallpaper.sh
2020-06-02 18:29:34 +02:00
# -------------------------------------------------------------------------------------------------
# Default workspace layout
2020-06-02 18:29:34 +02:00
#
workspace_layout tabbed
2020-06-02 18:29:34 +02:00
# -------------------------------------------------------------------------------------------------
# BIND KEYS APPS
#
2020-06-07 11:07:32 +02:00
# kill focused window
bindsym $mod+Shift+q kill
bindsym Control+q kill
2020-10-31 15:49:38 +01:00
# start Finder
2020-06-07 11:07:32 +02:00
bindsym Mod1+space exec "rofi -show combi"
# start a terminal
2020-11-03 14:48:22 +01:00
bindsym $mod+Return exec "$terminal"
2020-06-07 11:07:32 +02:00
# Lock session
bindsym $mod+Mod1+l exec "~/Bin/lock.sh"
2020-04-26 10:29:12 +02:00
# File browser
2020-11-03 14:48:22 +01:00
bindsym $mod+f exec "$terminal -T 'File Browser' -e ranger"
# Disk usage
bindsym $mod+Shift+f exec "terminator -T 'Ncdu' -x ncdu ~/ --color=dark"
2020-06-07 11:07:32 +02:00
2020-04-28 10:06:40 +02:00
# Find file in user directory
2020-04-26 10:29:12 +02:00
bindsym $mod+x exec "rofi -modi 'find:~/.local/share/rofi/finder.sh' -show find"
2020-06-07 11:07:32 +02:00
# Show top
2020-11-04 23:05:06 +01:00
bindsym $mod+t exec "$terminal -T 'Top' -e bpytop"
2020-04-26 10:29:12 +02:00
2020-10-31 15:49:38 +01:00
# Display
2020-06-07 22:56:23 +02:00
bindsym $mod+p exec "~/Bin/screenlayoutrofi.sh"
2020-10-31 15:49:38 +01:00
bindsym XF86Display exec ~/Bin/screenlayoutrofi.sh
2020-06-07 22:56:23 +02:00
# Multimedia keys
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume `pactl info|grep Sink|cut -d: -f 2` +5%
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume `pactl info|grep Sink|cut -d: -f 2` -5%
2020-07-12 16:48:51 +02:00
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute `pactl info|grep Sink|cut -d: -f 2` toggle
2020-11-03 14:48:22 +01:00
bindsym $mod+shift+p exec "$terminal -T 'Pulse Mixer' -e pulsemixer"
2020-11-02 12:09:23 +01:00
2020-06-07 11:07:32 +02:00
2020-06-06 12:39:11 +02:00
# Screen brighness
bindsym XF86MonBrightnessDown exec --no-startup-id ~/Bin/brightness.sh down
bindsym XF86MonBrightnessUp exec --no-startup-id ~/Bin/brightness.sh up
2020-08-09 14:22:01 +02:00
# Multimedia
bindsym XF86AudioPlay exec ~/Bin/music.sh PlayPause
bindsym XF86AudioPrev exec ~/Bin/music.sh Previous
bindsym XF86AudioNext exec ~/Bin/music.sh Next
# Take Screenshot
2020-10-11 11:02:41 +02:00
#bindsym Print exec ~/Bin/screenshooter.sh
2020-04-28 10:06:40 +02:00
bindsym $mod+Print exec ~/Bin/slip
2020-10-11 11:02:41 +02:00
# Based on https://www.reddit.com/r/i3wm/comments/j8ufof/screenshot_script/
bindsym --release Shift+Print exec "scrot -s -e 'xclip -selection c -t image/png < $f && mv $f ~/Pictures/screenshots'"
bindsym --release Print exec "scrot -e 'xclip -selection c -t image/png < $f && mv $f ~/Pictures/screenshots'"
2020-07-05 10:36:38 +02:00
# Calendar
2020-11-03 14:48:22 +01:00
bindsym $mod+c exec "$terminal -T 'Calendar' -e khal interactive"
2020-07-05 10:36:38 +02:00
2020-09-22 12:12:48 +02:00
# Note
bindsym $mod+n exec "zettlr"
2020-06-02 18:29:34 +02:00
# -------------------------------------------------------------------------------------------------
# APP DEFAULT POSITION/DECORATIONS
#
2020-06-02 18:34:31 +02:00
for_window [class="Spotify"], move container to workspace $wksp4
2020-11-03 14:48:22 +01:00
for_window [class="X-terminal-emulator" title="Calendar"] floating enable border pixel $modalBorder resize set $modalWidth $modalHeight, move absolute position center
for_window [class="X-terminal-emulator" title="File Browser"] floating enable border pixel $modalBorder resize set $modalWidth $modalHeight, move absolute position center
for_window [class="X-terminal-emulator" title="Pulse Mixer"] floating enable border pixel $modalBorder resize set $modalWidth $modalHeight, move absolute position center
for_window [class="X-terminal-emulator" title="Ncdu"] floating enable border pixel $modalBorder resize set $modalWidth $modalHeight, move absolute position center
2020-11-04 23:05:06 +01:00
for_window [class="X-terminal-emulator" title="Top"] floating enable border pixel $modalBorder resize set $modalWidth $modalHeight, move absolute position center
2020-10-31 15:49:38 +01:00
for_window [class="JViewer"] floating enable border pixel $modalBorder
2020-04-25 15:56:49 +02:00
2020-06-02 18:29:34 +02:00
# -------------------------------------------------------------------------------------------------
# OTHER STUFF
#
2020-06-03 18:09:00 +02:00
# Power save mode and Auto lock screen
2020-06-09 09:37:08 +02:00
exec --no-startup-id xset s 300 30
2020-06-03 18:09:00 +02:00
exec --no-startup-id xset dpms 120
exec --no-startup-id xss-lock -n ~/Bin/lock.sh