home/config/i3/config
2020-10-11 17:30:17 +02:00

283 lines
8.6 KiB
Text

set $mod Mod4
font pango:DejaVu Sans Mono 9
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# -------------------------------------------------------------------------------------------------
# WINDOW FOCUS/SPLIT/MOVE
#
# 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
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
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
# -------------------------------------------------------------------------------------------------
# WORKSPACES
#
set $wksp1 "1: Main"
set $wksp2 "2: Works"
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"
set $wksp10 "10"
# switch to workspace
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
bindsym $mod+7 workspace $wksp7
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
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
bindsym $mod+Shift+7 move container to workspace $wksp7
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
# -------------------------------------------------------------------------------------------------
# RELOAD / RESTART / EXIT
#
bindsym $mod+Shift+c reload
bindsym $mod+Shift+r restart
bindsym $mod+Shift+e exec "~/Bin/i3quit.sh"
#bindsym $mod+Shift+e exec "i3-nagbar -t error -m 'Q' \
# -b 'Exit' 'i3-msg exit' \
# -b 'Suspend' 'sudo s2ram -f -a 1' \
# -b 'Reboot' 'systemctl reboot' \
# -b 'Halt' 'systemctl poweroff'"
# -------------------------------------------------------------------------------------------------
# RESIZE MODE
#
mode "resize" {
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"
# -------------------------------------------------------------------------------------------------
# COLORS
#
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
#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
# -------------------------------------------------------------------------------------------------
# I3STATUS
#
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
}
}
# -------------------------------------------------------------------------------------------------
# AUTOSTART
#
exec --no-startup-id i3-msg 'exec blueman-applet &'
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 &'
exec --no-startup-id i3-msg 'exec remmina -i &'
exec --no-startup-id xsettingsd &
#exec --no-startup-id compton --config ~/.compton.conf &
exec --no-startup-id setxkbmap -option compose:rctrl &
exec --no-startup-id libinput-gestures-setup start
exec --no-startup-id i3-msg 'exec /usr/bin/terminator'
exec --no-startup-id i3-msg 'exec /usr/bin/firefox'
exec --no-startup-id i3-msg 'exec /usr/bin/spotify'
# -------------------------------------------------------------------------------------------------
# WALLPAPER
#
exec --no-startup-id ~/Bin/wallpaper.sh
# -------------------------------------------------------------------------------------------------
# Default workspace layout
#
workspace_layout tabbed
# -------------------------------------------------------------------------------------------------
# BIND KEYS APPS
#
# kill focused window
bindsym $mod+Shift+q kill
bindsym Control+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run -fn 'Droid Sans Mono-10'
bindsym Mod1+space exec "rofi -show combi"
# start a terminal
bindsym $mod+Return exec terminator
# Lock session
bindsym $mod+Mod1+l exec "~/Bin/lock.sh"
bindsym Mod1+Control+q exec "~/Bin/lock.sh"
# File browser
bindsym $mod+f exec "rofi -modi 'fb:~/.local/share/rofi/rofi-file-browser.sh' -show fb"
# Find file in user directory
bindsym $mod+x exec "rofi -modi 'find:~/.local/share/rofi/finder.sh' -show find"
# Show top
bindsym $mod+t exec "rofi -show top -modi top"
# Screen layout
bindsym $mod+p exec "~/Bin/screenlayoutrofi.sh"
# 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%
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute `pactl info|grep Sink|cut -d: -f 2` toggle
# Screen brighness
bindsym XF86MonBrightnessDown exec --no-startup-id ~/Bin/brightness.sh down
bindsym XF86MonBrightnessUp exec --no-startup-id ~/Bin/brightness.sh up
# Multimedia
bindsym XF86AudioPlay exec ~/Bin/music.sh PlayPause
bindsym XF86AudioPrev exec ~/Bin/music.sh Previous
bindsym XF86AudioNext exec ~/Bin/music.sh Next
# Take Screenshot
#bindsym Print exec ~/Bin/screenshooter.sh
bindsym $mod+Print exec ~/Bin/slip
# 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'"
# Switch screen layouts
bindsym XF86Display exec ~/Bin/screenlayout.sh
# Calendar
bindsym $mod+c exec "rxvt-unicode -e khal interactive"
# Note
bindsym $mod+n exec "zettlr"
# -------------------------------------------------------------------------------------------------
# APP DEFAULT POSITION/DECORATIONS
#
for_window [class="Spotify"], move container to workspace $wksp4
#for_window [class="Firefox"], move container to workspace $wksp1
#for_window [class="Ristretto"] fullscreen enable
for_window [title="khal"] floating enable border pixel 8 resize set 800 600
for_window [class="JViewer"] floating enable border pixel 8
# -------------------------------------------------------------------------------------------------
# OTHER STUFF
#
default_border pixel 4
# Power save mode and Auto lock screen
exec --no-startup-id xset s 300 30
exec --no-startup-id xset dpms 120
exec --no-startup-id xss-lock -n ~/Bin/lock.sh