dotfiles/dot_config/i3/config

292 lines
9.4 KiB
Plaintext

# _ _____
# (_)___ /
# | | |_ \
# | |___) |
# |_|____/
#
# my conf. based on i3-config-generator
set $mod Mod4
set $base00 #2C3E50
set $base01 #34495E
set $base02 #7F8C8D
set $base03 #95A5A6
set $base04 #BDC3C7
set $base05 #e0e0e0
set $base06 #f5f5f5
set $base07 #ECF0F1
set $base08 #E74C3C
set $base09 #E67E22
set $base0A #F1C40F
set $base0B #2ECC71
set $base0C #1ABC9C
set $base0D #c065db
set $base0E #9B59B6
set $base0F #be643c
set $baseXX #a81c07
# Gaps!
# gaps outer 10
# gaps inner 10
smart_borders on
smart_gaps on
font pango:Iosevka Nerd Font 10
floating_modifier $mod
exec --no-startup-id /usr/bin/feh --bg-fill ~/Pictures/Wallpapers/mountains-valley.jpg
#exec --no-startup-id /usr/libexec/gnome-settings-daemon
exec --no-startup-id alacritty --name quake
exec --no-startup-id volumeicon
exec --no-startup-id nextcloud
exec --no-startup-id nm-applet
exec --no-startup-id greenclip daemon
exec --no-startup-id dunst
exec --no-startup-id compton --config ~/.config/i3/compton.conf
exec --no-startup-id xautolock -time 6 -locker "i3-blur-lock --dpms"
exec --no-startup-id i3-polybar
exec --no-startup-id redshift -l 48.15:11.64
exec --no-startup-id bash -c "sleep 2 && i3-autostart"
# lock
bindsym Control+Mod1+l exec i3-blur-lock
# start a terminal
bindsym $mod+Return exec --no-startup-id alacritty
bindsym Print exec --no-startup-id "i3-screenshot"
bindsym Shift+Print exec --no-startup-id "i3-screenshot -s"
bindsym Control+Shift+Print exec --no-startup-id "i3-dropshot"
# Rofi Launchers
bindsym Control+Shift+Mod1+f exec rofi-clipboard
bindsym Control+$mod+w exec firefox
bindsym Control+$mod+e exec emacs
bindsym Control+$mod+f exec pcmanfm
bindsym Control+Shift+Mod1+p exec rofi-pass
bindsym --release Control+Shift+mod1+j exec rofi-marks &
bindsym $mod+d exec "i3-rofi"
# kill focused window
bindsym $mod+q kill
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+i focus up
bindsym $mod+l focus right
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+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+i move up
bindsym $mod+Shift+l move 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
# split
bindsym $mod+h split h
bindsym $mod+v split v
# fullscreen mode
bindsym $mod+f fullscreen
# sticky!!
bindsym $mod+Shift+s sticky toggle
# container layout
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
# Jump to urgent windows
bindsym $mod+x [urgent=latest] focus
# customize workspace names
set $WS1 1 
set $WS2 2 
set $WS3 3 
set $WS4 4 
set $WS5 5 
set $WS6 6 
set $WS7 7 
set $WS8 8 
# switch to workspace
bindsym Mod4+1 workspace $WS1
bindsym Mod4+2 workspace $WS2
bindsym Mod4+3 workspace $WS3
bindsym Mod4+4 workspace $WS4
bindsym Mod4+5 workspace $WS5
bindsym Mod4+6 workspace $WS6
bindsym Mod4+7 workspace $WS7
bindsym Mod4+8 workspace $WS8
# Move window to "other" monitor
bindsym $mod+o move workspace to output right
# move focused container to workspace
bindsym Mod4+Shift+1 move container to workspace $WS1
bindsym Mod4+Shift+2 move container to workspace $WS2
bindsym Mod4+Shift+3 move container to workspace $WS3
bindsym Mod4+Shift+4 move container to workspace $WS4
bindsym Mod4+Shift+5 move container to workspace $WS5
bindsym Mod4+Shift+6 move container to workspace $WS6
bindsym Mod4+Shift+7 move container to workspace $WS7
bindsym Mod4+Shift+8 move container to workspace $WS8
# Scratchpad
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show
assign [class="alfaview.exe"] $WS8
assign [class="Slack"] $WS3
assign [class="Vlc"] $WS5
assign [class="Evince"] $WS4
assign [class="Gimp"] $WS6
# border / titlebar
new_window normal 2 px
bindsym Control+Shift+x [class="^.*"] border toggle
for_window [class="^.*"] border pixel 3
for_window [class="Pavucontrol"] floating enable
for_window [class="Nautilus"] border pixel 0
for_window [class="Nautilus"] floating enable
for_window [title="Google Hangouts is sharing your screen with hangouts.google.com."] floating enable
for_window [title="Jitsi Desktop Streamer is sharing your screen with meet.jit.si."] floating enable
for_window [title="Google Hangouts is sharing your screen with hangouts.google.com."] border pixel 0
for_window [title="Jitsi Desktop Streamer is sharing your screen with meet.jit.si."] border pixel 0
# 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 restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec i3-msg exit
# resize window (you can also use the mouse for that)
bindsym $mod+r mode "resize"
mode "resize" {
bindsym j resize shrink width 5 px or 5 ppt
bindsym k resize grow height 5 px or 5 ppt
bindsym l resize shrink height 5 px or 5 ppt
bindsym k resize grow width 5 px or 5 ppt
bindsym Right resize shrink width 5 px or 5 ppt
bindsym Down resize grow height 5 px or 5 ppt
bindsym Up resize shrink height 5 px or 5 ppt
bindsym Left resize grow width 5 px or 5 ppt
bindsym Return mode "default"
bindsym Escape mode "default"
}
# class border backgr. text indicator
client.focused $base0C $base0C $base07 $base08
client.focused_inactive $base02 $base02 $base06 $base03
client.unfocused $base04 $base04 $base01 $base06
client.urgent $base08 $base08 $base07 $baseXX
# switching between workspace
bindsym $mod+period workspace next
bindsym $mod+comma workspace prev
bindsym $mod+Escape workspace back_and_forth
# change focused container
bindsym $mod+Tab focus parent; focus right; focus child
bindsym $mod+Shift+Tab focus parent; focus left; focus child
bindsym XF86AudioMute exec amixer -c 0 -q set Master toggle
bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set -M Master 2%+ #-c 0
bindsym XF86AudioLowerVolume exec --no-startup-id amixer set -M Master 2%- #-c 0
bindsym Shift+XF86AudioRaiseVolume exec --no-startup-id amixer -c 0 set Master 15%+
bindsym Shift+XF86AudioLowerVolume exec --no-startup-id amixer -c 0 set Master 15%-
bindsym XF86MonBrightnessUp exec brightnessctl set 5%+
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym Control+Mod1+Shift+t exec tdrop -ma -w -4 -y "30" -h 70% -s dropdown termite
bindsym Control+Mod1+Shift+e exec tdrop -ma -w 50% -h 50% -y 25% -x 25% -s dropdown emacs
bindsym Control+Mod1+Shift+o exec tdrop -ma -w 800 -h 400 -y -500 -x -900 nautilus
# Toggle Gaps https://github.com/Airblader/i3#gaps
set $mode_gaps Gaps: (o) outer, (i) inner
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
bindsym $mod+Shift+g mode "$mode_gaps"
mode "$mode_gaps" {
bindsym o mode "$mode_gaps_outer"
bindsym i mode "$mode_gaps_inner"
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "$mode_gaps_inner" {
bindsym plus gaps inner current plus 5
bindsym minus gaps inner current minus 5
bindsym 0 gaps inner current set 0
bindsym Shift+plus gaps inner all plus 5
bindsym Shift+minus gaps inner all minus 5
bindsym Shift+0 gaps inner all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "$mode_gaps_outer" {
bindsym plus gaps outer current plus 5
bindsym minus gaps outer current minus 5
bindsym 0 gaps outer current set 0
bindsym Shift+plus gaps outer all plus 5
bindsym Shift+minus gaps outer all minus 5
bindsym Shift+0 gaps outer all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
}
exec --no-startup-id alacritty --name quake
for_window [instance="quake"] floating enable;
for_window [instance="quake"] move scratchpad; [instance="quake"] scratchpad show; resize grow height 600px; resize grow width 800px; move position center; move scratchpad;
bindsym $mod+t [instance="quake"] scratchpad show
# Plasma Integration
for_window [class="yakuake"] floating enable;
## Plasma Integration
# Try to kill the wallpaper set by Plasma (it takes up the entire workspace and hides everythiing)
exec --no-startup-id wmctrl -c Plasma
for_window [title="Desktop — Plasma"] kill; floating enable; border none
## Avoid tiling popups, dropdown windows from plasma
# for the first time, manually resize them, i3 will remember the setting for floating windows
for_window [class="plasmashell"] floating enable;
for_window [class="Plasma"] floating enable; border none
for_window [title="plasma-desktop"] floating enable; border none
for_window [title="win7"] floating enable; border none
for_window [class="krunner"] floating enable; border none
for_window [class="Kmix"] floating enable; border none
for_window [class="Klipper"] floating enable; border none
for_window [class="Plasmoidviewer"] floating enable; border none