dotfiles/.config/i3/config

305 lines
9.3 KiB
Plaintext
Executable File
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# =====GENERAL=====
# Main modifier; Mod1 is alt
set $mod Mod4
# Modifier for floating-related operations
floating_modifier $mod
# Layout for new workspaces; default means tiling
workspace_layout default
#do not show titlebar on windows:
default_border pixel
# thin borders
hide_edge_borders both
# Font for window titles & bar, unless specified otherwise
font pango:Noto Sans Regular 8
# =====WINDOW MANAGEMENT=====
# change focus
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
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# kill focused window
bindsym $mod+x kill
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# Resize focused window
mode "resize" {
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize shrink height 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
#resize floating windows with mouse scroll:
bindsym --whole-window --border $mod+button4 resize shrink height 5 px or 5 ppt
bindsym --whole-window --border $mod+button5 resize grow height 5 px or 5 ppt
bindsym --whole-window --border $mod+shift+button4 resize shrink width 5 px or 5 ppt
bindsym --whole-window --border $mod+shift+button5 resize grow width 5 px or 5 ppt
# =====WORKSPACES=====
set $ws01 ""
set $ws02 ""
set $ws03 ""
set $ws04 ""
set $ws05 ""
set $ws11 "α"
set $ws12 "β"
set $ws13 "γ"
set $ws14 "δ"
set $ws15 "ε"
set $ws21 "2:1"
set $ws22 "2:2"
set $ws23 "2:3"
set $ws24 "2:4"
set $ws25 "2:5"
workspace $ws01 output primary
workspace $ws02 output primary
workspace $ws03 output primary
workspace $ws04 output primary
workspace $ws05 output primary
workspace $ws11 output eDP-1-1
workspace $ws12 output eDP-1-1
workspace $ws13 output eDP-1-1
workspace $ws14 output eDP-1-1
workspace $ws15 output eDP-1-1
workspace $ws21 output HDMI-0
workspace $ws22 output HDMI-0
workspace $ws23 output HDMI-0
workspace $ws24 output HDMI-0
workspace $ws25 output HDMI-0
# switch to main workspaces
bindsym $mod+y workspace $ws01
bindsym $mod+u workspace $ws02
bindsym $mod+i workspace $ws03
bindsym $mod+o workspace $ws04
bindsym $mod+p workspace $ws05
# move focused container to main workspace
bindsym $mod+Shift+y move container to workspace $ws01
bindsym $mod+Shift+u move container to workspace $ws02
bindsym $mod+Shift+i move container to workspace $ws03
bindsym $mod+Shift+o move container to workspace $ws04
bindsym $mod+Shift+p move container to workspace $ws05
# Manage other workspaces
mode "eDP-1-1" {
# switch to workspace
bindsym y workspace $ws11
bindsym u workspace $ws12
bindsym i workspace $ws13
bindsym o workspace $ws14
bindsym p workspace $ws15
# move focused container to workspace
bindsym Shift+y move container to workspace $ws11
bindsym Shift+u move container to workspace $ws12
bindsym Shift+i move container to workspace $ws13
bindsym Shift+o move container to workspace $ws14
bindsym Shift+p move container to workspace $ws15
# Go to HDMI-0 mode
bindsym e mode "HDMI-0"
# Go back to normal mode
bindsym Escape mode "default"
}
mode "HDMI-0" {
# switch to workspace
bindsym y workspace $ws21
bindsym u workspace $ws22
bindsym i workspace $ws23
bindsym o workspace $ws24
bindsym p workspace $ws25
# move focused container to workspace
bindsym Shift+y move container to workspace $ws21
bindsym Shift+u move container to workspace $ws22
bindsym Shift+i move container to workspace $ws23
bindsym Shift+o move container to workspace $ws24
bindsym Shift+p move container to workspace $ws25
# Go to eDP-1-1 mode
bindsym e mode "eDP-1-1"
# Go back to normal mode
bindsym Escape mode "default"
}
bindsym $mod+e mode "eDP-1-1"
# Configuration mode
mode "config" {
# Switch split mode
bindsym j split vertical; mode "default"
bindsym h split horizontal; mode "default"
bindsym k split vertical; mode "default"
bindsym l split horizontal; mode "default"
# Switch layout
bindsym y layout stacking; mode "default"
bindsym u layout tabbed; mode "default"
bindsym i layout toggle split; mode "default"
# Go back to normal mode
bindsym Escape mode "default"
}
bindsym $mod+s mode "config"
# Assign certain programs to workspaces
# for_window [class=Xfce4-terminal] focus
# assign [class="(?i)firefox"] $ws02
# for_window [class=(?i)firefox] focus
# assign [class="Thunar"] $ws03
# for_window [class=Thunar] focus
# assign [class="Thunderbird"] $ws04
# for_window [class=Thunderbird] focus
# assign [class="TelegramDesktop"] $ws05
# for_window [class=TelegramDesktop] focus
# =====OTHER KEYBINDINGS=====
# reload the configuration file
bindsym $mod+Shift+c reload
# Restart i3 in-place
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+q 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'"
# Volume
bindsym XF86AudioRaiseVolume exec amixer -D pulse sset Master 5%+ && pkill -RTMIN+1 i3blocks
bindsym XF86AudioLowerVolume exec amixer -D pulse sset Master 5%- && pkill -RTMIN+1 i3blocks
bindsym $mod+XF86AudioRaiseVolume exec amixer -D pulse sset Master 1%+ && pkill -RTMIN+1 i3blocks
bindsym $mod+XF86AudioLowerVolume exec amixer -D pulse sset Master 1%- && pkill -RTMIN+1 i3blocks
bindsym XF86AudioMute exec amixer -D pulse set Master toggle
# Foobar2000 controls
bindsym F8 exec --no-startup-id wine ~/.wine/drive_c/users/jjr/Desktop/foobar2000/foobar2000.exe /playpause
# Backlight
bindsym XF86MonBrightnessUp exec brightnessctl --device='intel_backlight' set +10%
bindsym XF86MonBrightnessDown exec brightnessctl --device='intel_backlight' set 10%-
# Keyboard brightness
bindsym XF86KbdBrightnessUp exec brightnessctl --device='smc::kbd_backlight' set +10%
bindsym XF86KbdBrightnessDown exec brightnessctl --device='smc::kbd_backlight' set 10%-
# Screenshot
bindsym Print exec "scrot ~/%Y-%m-%d-%T-screenshot.png"
# Show shutdown menu
bindsym $mod+Escape exec ~/.config/i3/scripts/shutdown_menu -p rofi -c
# =====APPLICATIONS=====
# Launch applications
# start a terminal
bindsym $mod+Return exec --no-startup-id st
# Launch output device configuration
bindsym $mod+m exec --no-startup-id pavucontrol -t 3
# Open dmenu
bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# Open Galculator
bindsym XF86Calculator exec --no-startup-id galculator
# =====AUTOSTART APPLICATIONS=====
#get auth work with polkit-gnome
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# Run setup script
exec --no-startup-id ~/.config/i3/startup.sh
# Bluetooth applet
exec --no-startup-id blueman-tray
# Nextcloud sync
exec --no-startup-id nextcloud
# Compositor
exec --no-startup-id picom --config ~/.config/picom.conf --experimental-backends
# Network Manager applet
exec --no-startup-id nm-applet
#set powersavings for display
exec --no-startup-id xset s 480 dpms 600 600 600
# Desktop notifications
exec --no-startup-id /usr/bin/dunst
# Mail notifications
# exec --no-startup-id thunderbird
# Joplin sync
exec --no-startup-id joplin-desktop
exec --no-startup-id nheko
exec --no-startup-id com.gitlab.newsflash --headless
# =====FLOAT RULES=====
for_window [class="Yad" instance="yad"] floating enable
for_window [class="Galculator" instance="galculator"] floating enable
for_window [class="Xsane" instance="xsane"] floating enable
for_window [class="Pavucontrol" instance="pavucontrol"] floating enable
for_window [class="qt5ct" instance="qt5ct"] floating enable
for_window [class="Blueberry.py" instance="blueberry.py"] floating enable
for_window [class="Bluetooth-sendto" instance="bluetooth-sendto"] floating enable
for_window [class="Gufw.py" instance="gufw.py"] floating enable
for_window [class="Blueman-manager" instance="blueman-manager"] floating enable
# =====COLORS=====
set $bg-color #2f343f
set $inactive-bg-color #2f343f
set $text-color #f3f4f5
set $inactive-text-color #676e7d
set $urgent-bg-color #e53935
set $indicator-color #a0a0a0
# set window colors
# border background text indicator
client.focused $bg-color $bg-color $text-color $indicator-color
client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-color $indicator-color
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color $indicator-color
client.urgent $urgent-bg-color $urgent-bg-color $text-color $indicator-color
# =====STATUS BAR=====
bar {
status_command i3blocks -c ~/.config/i3/i3blocks.conf
position bottom
tray_output primary
colors {
separator #666666
background #222222
statusline #dddddd
focused_workspace #0088CC #0088CC #ffffff
active_workspace #333333 #333333 #ffffff
inactive_workspace #333333 #333333 #888888
urgent_workspace #2f343a #900000 #ffffff
}
}