dotfiles/.config/i3/config

406 lines
14 KiB
Text

# [[file:../../Desktop.org::*General settings][General settings:1]]
set $mod Mod4
font pango:monospace 10
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# Move cursor between monitors
mouse_warping output
# Apply XFCE Settings
# exec xfsettingsd
# exec xiccd
# Set screen layout
exec ~/bin/scripts/screen-layout
# Most needed keybindigs
# 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-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
# General settings:1 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:1]]
bindsym $mod+Shift+q exec emacs-i3-integration kill
# Managing windows:1 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:2]]
bindsym $mod+h exec emacs-i3-integration focus left
bindsym $mod+j exec emacs-i3-integration focus down
bindsym $mod+k exec emacs-i3-integration focus up
bindsym $mod+l exec emacs-i3-integration focus right
bindsym $mod+Left exec emacs-i3-integration focus left
bindsym $mod+Down exec emacs-i3-integration focus down
bindsym $mod+Up exec emacs-i3-integration focus up
bindsym $mod+Right exec emacs-i3-integration focus right
# Managing windows:2 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:3]]
bindsym $mod+Shift+h exec emacs-i3-integration move left
bindsym $mod+Shift+j exec emacs-i3-integration move down
bindsym $mod+Shift+k exec emacs-i3-integration move up
bindsym $mod+Shift+l exec emacs-i3-integration move right
bindsym $mod+Shift+Left exec emacs-i3-integration move left
bindsym $mod+Shift+Down exec emacs-i3-integration move down
bindsym $mod+Shift+Up exec emacs-i3-integration move up
bindsym $mod+Shift+Right exec emacs-i3-integration move right
# Managing windows:3 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:4]]
bindsym $mod+s exec emacs-i3-integration split h
bindsym $mod+v exec emacs-i3-integration split v
# Managing windows:4 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:5]]
bindsym $mod+period exec i3-switch-tabs right
bindsym $mod+comma exec i3-switch-tabs left
# Managing windows:5 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:6]]
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
bindsym $mod+c fullscreen toggle global
# Managing windows:6 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:7]]
bindsym $mod+w layout stacking
bindsym $mod+t layout tabbed
bindsym $mod+e exec emacs-i3-integration layout toggle split
# Managing windows:7 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:8]]
bindsym $mod+Shift+f floating toggle
bindsym $mod+z focus mode_toggle
# Managing windows:8 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:9]]
bindsym $mod+Tab move workspace to output right
bindsym $mod+q focus output right
# Managing windows:9 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:10]]
bindsym $mod+a focus parent
bindsym $mod+Shift+A focus child
# Managing windows:10 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:11]]
bindsym $mod+Shift+i sticky toggle
# Managing windows:11 ends here
# [[file:../../Desktop.org::*Managing windows][Managing windows:12]]
bindsym $mod+x floating enable; sticky enable; move position 1220 0; resize set width 700 px
# Managing windows:12 ends here
# [[file:../../Desktop.org::*Workspaces][Workspaces:1]]
set $w1 "1 🚀"
set $w2 "2 🌍"
set $w3 "3 💬"
set $w4 "4 🛠️️"
set $w7 "7 🛰️"
set $w8 "8 📝"
set $w9 "9 🎵"
set $w10 "10 📦"
bindsym $mod+1 workspace $w1
bindsym $mod+2 workspace $w2
bindsym $mod+3 workspace $w3
bindsym $mod+4 workspace $w4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace $w7
bindsym $mod+8 workspace $w8
bindsym $mod+9 workspace $w9
bindsym $mod+0 workspace $w10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $w1
bindsym $mod+Shift+2 move container to workspace $w2
bindsym $mod+Shift+3 move container to workspace $w3
bindsym $mod+Shift+4 move container to workspace $w4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace $w7
bindsym $mod+Shift+8 move container to workspace $w8
bindsym $mod+Shift+9 move container to workspace $w9
bindsym $mod+Shift+0 move container to workspace $w10
# Workspaces:1 ends here
# [[file:../../Desktop.org::*Rules][Rules:1]]
assign [class="Emacs"] $w1
assign [class="qutebrowser"] $w2
assign [class="firefox"] $w2
assign [class="VK"] $w3
assign [class="Slack"] $w3
assign [class="discord"] $w3
assign [class="TelegramDesktop"] $w3
assign [class="Postman"] $w4
assign [class="Chromium-browse"] $w4
assign [class="chromium"] $w4
assign [class="google-chrome"] $w4
assign [title="Vue Developer Tools"] $w4
assign [class="Google Play Music Desktop Player"] $w9
assign [class="jetbrains-datagrip"] $w4
assign [class="zoom"] $w7
assign [class="skype"] $w7
assign [class="Mailspring"] $w8
assign [class="Thunderbird"] $w8
assign [class="Joplin"] $w8
assign [class="keepassxc"] $w10
for_window [title="VirtScreen"] floating enable
for_window [title="ncmpcpp.*"] move to workspace $w9
for_window [title="newsboat.*"] move to workspace $w9
for_window [title=".*run_wego"] move to workspace $w9
for_window [class="cinnamon-settings*"] floating enable
for_window [title="Picture-in-Picture"] sticky enable
for_window [window_role="GtkFileChooserDialog"] resize set width 1000 px height 800 px
for_window [window_role="GtkFileChooserDialog"] move position center
# Rules:1 ends here
# [[file:../../Desktop.org::*i3 config][i3 config:1]]
# Scratchpad
for_window [instance="dropdown_*"] floating enable
for_window [instance="dropdown_*"] move scratchpad
for_window [instance="dropdown_*"] sticky enable
for_window [instance="dropdown_*"] scratchpad show
for_window [instance="dropdown_*"] move position center
bindsym $mod+u exec ~/bin/scripts/dropdown
# i3 config:1 ends here
# [[file:../../Desktop.org::*Gaps & borders][Gaps & borders:1]]
# Borders
# for_window [class=".*"] border pixel 0
default_border pixel 3
hide_edge_borders both
# Gaps
set $default_inner 10
set $default_outer 0
gaps inner $default_inner
gaps outer $default_outer
smart_gaps on
# Gaps & borders:1 ends here
# [[file:../../Desktop.org::*Keybindings][Keybindings:1]]
mode "inner gaps" {
bindsym plus gaps inner current plus 5
bindsym minus gaps inner current minus 5
bindsym Shift+plus gaps inner all plus 5
bindsym Shift+minus gaps inner all minus 5
bindsym 0 gaps inner current set 0
bindsym Shift+0 gaps inner all set 0
bindsym r gaps inner current set $default_inner
bindsym Shift+r gaps inner all set $default_inner
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "outer gaps" {
bindsym plus gaps outer current plus 5
bindsym minus gaps outer current minus 5
bindsym Shift+plus gaps outer all plus 5
bindsym Shift+minus gaps outer all minus 5
bindsym 0 gaps outer current set 0
bindsym Shift+0 gaps outer all set 0
bindsym r gaps outer current set $default_outer
bindsym Shift+r gaps outer all set $default_outer
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+g mode "inner gaps"
bindsym $mod+Shift+g mode "outer gaps"
# Keybindings:1 ends here
# [[file:../../Desktop.org::*Move & resize windows][Move & resize windows:2]]
mode "resize" {
bindsym h exec emacs-i3-integration resize shrink width 10 px or 10 ppt
bindsym j exec emacs-i3-integration resize grow height 10 px or 10 ppt
bindsym k exec emacs-i3-integration resize shrink height 10 px or 10 ppt
bindsym l exec emacs-i3-integration resize grow width 10 px or 10 ppt
bindsym Shift+h exec emacs-i3-integration resize shrink width 100 px or 100 ppt
bindsym Shift+j exec emacs-i3-integration resize grow height 100 px or 100 ppt
bindsym Shift+k exec emacs-i3-integration resize shrink height 100 px or 100 ppt
bindsym Shift+l exec emacs-i3-integration resize grow width 100 px or 100 ppt
# same bindings, but for the arrow keys
bindsym Left exec emacs-i3-integration resize shrink width 10 px or 10 ppt
bindsym Down exec emacs-i3-integration resize grow height 10 px or 10 ppt
bindsym Up exec emacs-i3-integration resize shrink height 10 px or 10 ppt
bindsym Right exec emacs-i3-integration resize grow width 10 px or 10 ppt
bindsym Shift+Left exec emacs-i3-integration resize shrink width 100 px or 100 ppt
bindsym Shift+Down exec emacs-i3-integration resize grow height 100 px or 100 ppt
bindsym Shift+Up exec emacs-i3-integration resize shrink height 100 px or 100 ppt
bindsym Shift+Right exec emacs-i3-integration resize grow width 100 px or 100 ppt
bindsym equal exec i3-emacs-balance-windows
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
mode "move" {
bindsym $mod+Tab focus right
bindsym Left move left
bindsym Down move down
bindsym Up move up
bindsym Right move right
bindsym h move left
bindsym j move down
bindsym k move up
bindsym l move right
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+m mode "move" focus floating
# Move & resize windows:2 ends here
# [[file:../../Desktop.org::*Integration with rofi][Integration with rofi:1]]
bindsym $mod+p exec "rofi -modi 'drun,run' -show drun"
bindsym $mod+b exec --no-startup-id rofi-buku-mine
bindsym $mod+minus exec rofi-pass
bindsym $mod+equal exec rofimoji
bindsym $mod+apostrophe mode "rofi"
mode "rofi" {
bindsym d exec "rofi -modi 'drun,run' -show drun"
bindsym m exec rofi-man; mode default
bindsym b exec rofi-buku-mine; mode default
bindsym k exec rofi-pass; mode default
bindsym Escape mode "default"
}
# Integration with rofi:1 ends here
# [[file:../../Desktop.org::*Apps][Apps:1]]
# Launch apps
# start a terminal at workspace 1
bindsym $mod+Return exec "i3-msg 'workspace 1 🚀; exec alacritty'"
bindsym $mod+i exec "copyq menu"
bindsym $mod+Shift+x exec "i3lock -f -i /home/pavel/Pictures/lock-wallpaper.png"
bindsym $mod+semicolon mode "apps"
mode "apps" {
bindsym Escape mode "default"
bindsym b exec firefox; mode default
bindsym v exec vk; mode default
bindsym s exec slack-wrapper; mode default;
bindsym d exec "flatpak run com.discordapp.Discord"; mode default;
bindsym m exec "alacritty -e ncmpcpp"; mode default
bindsym c exec "copyq toggle"; mode default
bindsym k exec "keepassxc"; mode default
# bindsym e exec mailspring; mode default
bindsym a exec emacs; mode default
bindsym n exec "alacritty -e newsboat"; mode default
bindsym w exec "alacritty /home/pavel/bin/scripts/run_wego"; mode default
# bindsym a exec emacsclient -c; mode default
# bindsym Shift+a exec emacs; mode default
}
# Apps:1 ends here
# [[file:../../Desktop.org::*Media controls & brightness][Media controls & brightness:1]]
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id "ponymix increase 5 --max-volume 150"
bindsym XF86AudioLowerVolume exec --no-startup-id "ponymix decrease 5 --max-volume 150"
bindsym XF86AudioMute exec --no-startup-id "ponymix toggle"
exec --no-startup-id xmodmap -e 'keycode 135 = Super_R' && xset -r 135
bindsym $mod+F2 exec --no-startup-id "ponymix increase 5"
bindsym $mod+F3 exec --no-startup-id "ponymix decrease 5"
# Media player controls
bindsym XF86AudioPlay exec mpc toggle
bindsym XF86AudioPause exec mpc pause
bindsym XF86AudioNext exec mpc next
bindsym XF86AudioPrev exec mpc prev
# Screen brightness
bindsym XF86MonBrightnessUp exec light -A 5
bindsym XF86MonBrightnessDown exec light -U 5
# Media controls & brightness:1 ends here
# [[file:../../Desktop.org::*Screenshots][Screenshots:1]]
# Screenshots
bindsym --release Print exec "flameshot gui"
bindsym --release Shift+Print exec "xfce4-screenshooter"
# Screenshots:1 ends here
# [[file:../../Desktop.org::*Colors][Colors:1]]
exec xrdb -merge $HOME/.Xresources
# Colors
set_from_resource $bg-color background
set_from_resource $active-color color4
set_from_resource $inactive-bg-color color8
set_from_resource $text-color foreground
set_from_resource $inactive-text-color color7
set_from_resource $urgent-bg-color color1
set_from_resource $urgent-text-color color0
# window colors
# border background text indicator child border
client.focused $active-color $bg-color $text-color $bg-color $active-color
client.unfocused $bg-color $inactive-bg-color $inactive-text-color $bg-color $bg-color
client.focused_inactive $active-color $inactive-bg-color $inactive-text-color $bg-color $bg-color
client.urgent $urgent-bg-color $urgent-bg-color $urgent-text-color $bg-color $urgent-bg-color
# Colors:1 ends here
# [[file:../../Desktop.org::*Keyboard Layout][Keyboard Layout:3]]
# Layout
exec_always --no-startup-id set_layout
bindsym $mod+slash exec toggle_layout
# Keyboard Layout:3 ends here
# [[file:../../Desktop.org::*Autostart][Autostart:1]]
# Polybar
exec_always --no-startup-id "bash /home/pavel/bin/polybar.sh"
# Wallpaper
exec_always "feh --bg-fill ~/Pictures/wallpaper.jpg"
# Picom
exec picom
# Keynav
exec keynav
# Applets
exec --no-startup-id nm-applet
# exec --no-startup-id /usr/bin/blueman-applet
exec shepherd
exec dunst
exec copyq
exec "xmodmap ~/.Xmodmap"
# exec "xrdb -merge ~/.Xresources"
# exec "bash ~/bin/autostart.sh"
# Autostart:1 ends here