While installing i3 (not i3-gaps, as not easily available) on an Ubuntu system with my dotfiles, I had to deactivate the gaps. I think I prefer this look now, as it gives more screen real estate and looks cleaner in my opinion. Also deactivate rounded corners through picom as they only really make sense with gaps enabled.
229 lines
7.5 KiB
Plaintext
229 lines
7.5 KiB
Plaintext
# i3 Settings ##################################################################
|
|
set $mod Mod4
|
|
|
|
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
|
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
|
font pango:DejaVu Sans Mono 10
|
|
|
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
|
floating_modifier $mod
|
|
|
|
default_border pixel 1
|
|
hide_edge_borders smart
|
|
|
|
set $TERMINAL st
|
|
|
|
# Focus should not follow mouse
|
|
# focus_follows_mouse no
|
|
|
|
# Gaps #########################################################################
|
|
|
|
# gaps inner 10
|
|
# gaps outer 7
|
|
|
|
# Execs ########################################################################
|
|
|
|
# Multi monitor support
|
|
exec_always --no-startup-id ~/.config/i3/monitor-setup.sh &
|
|
|
|
# Keybindins ###################################################################
|
|
|
|
# Terminal
|
|
bindsym $mod+Return exec $TERMINAL -d "$(xcwd)"
|
|
bindsym $mod+Shift+Return exec $TERMINAL
|
|
|
|
# Program launcher
|
|
bindsym $mod+d exec rofi -show drun
|
|
bindsym $mod+Shift+d exec dmenu_run
|
|
|
|
# kill focused window
|
|
bindsym $mod+Shift+q kill
|
|
|
|
# change focus
|
|
focus_wrapping no
|
|
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
|
|
|
|
# set split orientation
|
|
bindsym $mod+v split vertical
|
|
bindsym $mod+Shift+v split horizontal
|
|
|
|
# enter fullscreen mode for the focused container
|
|
bindsym $mod+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
|
|
|
|
# Set 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"
|
|
set $ws9 "9"
|
|
set $ws10 "10"
|
|
|
|
# switch to workspace
|
|
bindsym $mod+1 workspace $ws1
|
|
bindsym $mod+2 workspace $ws2
|
|
bindsym $mod+3 workspace $ws3
|
|
bindsym $mod+4 workspace $ws4
|
|
bindsym $mod+5 workspace $ws5
|
|
bindsym $mod+6 workspace $ws6
|
|
bindsym $mod+7 workspace $ws7
|
|
bindsym $mod+8 workspace $ws8
|
|
bindsym $mod+9 workspace $ws9
|
|
bindsym $mod+0 workspace $ws10
|
|
|
|
# move focused container to workspace
|
|
bindsym $mod+Shift+1 move container to workspace $ws1
|
|
bindsym $mod+Shift+2 move container to workspace $ws2
|
|
bindsym $mod+Shift+3 move container to workspace $ws3
|
|
bindsym $mod+Shift+4 move container to workspace $ws4
|
|
bindsym $mod+Shift+5 move container to workspace $ws5
|
|
bindsym $mod+Shift+6 move container to workspace $ws6
|
|
bindsym $mod+Shift+7 move container to workspace $ws7
|
|
bindsym $mod+Shift+8 move container to workspace $ws8
|
|
bindsym $mod+Shift+9 move container to workspace $ws9
|
|
bindsym $mod+Shift+0 move container to workspace $ws10
|
|
|
|
# move focused container and switch to workspace
|
|
bindsym Mod1+Shift+1 move container to workspace $ws1; workspace $ws1
|
|
bindsym Mod1+Shift+2 move container to workspace $ws2; workspace $ws2
|
|
bindsym Mod1+Shift+3 move container to workspace $ws3; workspace $ws3
|
|
bindsym Mod1+Shift+4 move container to workspace $ws4; workspace $ws4
|
|
bindsym Mod1+Shift+5 move container to workspace $ws5; workspace $ws5
|
|
bindsym Mod1+Shift+6 move container to workspace $ws6; workspace $ws6
|
|
bindsym Mod1+Shift+7 move container to workspace $ws7; workspace $ws7
|
|
bindsym Mod1+Shift+8 move container to workspace $ws8; workspace $ws8
|
|
bindsym Mod1+Shift+9 move container to workspace $ws9; workspace $ws9
|
|
bindsym Mod1+Shift+0 move container to workspace $ws10; workspace $ws10
|
|
|
|
# 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'"
|
|
|
|
# resize window (you can also use the mouse for that)
|
|
mode "resize" {
|
|
bindsym h resize grow left
|
|
bindsym j resize grow down
|
|
bindsym k resize grow up
|
|
bindsym l resize grow right
|
|
|
|
bindsym Shift+h resize shrink right
|
|
bindsym Shift+j resize shrink up
|
|
bindsym Shift+k resize shrink down
|
|
bindsym Shift+l resize shrink left
|
|
|
|
# Set window size to predefined values
|
|
# firefox anti fingerprinting
|
|
bindsym p resize set 1920 1080
|
|
# scratchpad-terminal default size
|
|
bindsym s resize set 1600 900
|
|
# "fullscreen"
|
|
bindsym f resize set 3200 1770
|
|
|
|
# Move window to center
|
|
bindsym c move position center
|
|
|
|
# back to normal: Enter or Escape
|
|
bindsym Return mode "default"
|
|
bindsym Escape mode "default"
|
|
bindsym $mod+r mode "default"
|
|
}
|
|
|
|
bindsym $mod+r mode "resize"
|
|
|
|
# Brightness controls (/etc/X11/xorg.conf necessary)
|
|
bindsym XF86MonBrightnessDown exec xbacklight -dec 5
|
|
bindsym XF86MonBrightnessUp exec xbacklight -inc 5
|
|
|
|
# Volume controls (see https://faq.i3wm.org/question/125/how-to-change-the-systems-volume.1.html)
|
|
# Note: just add unmute add the end of the amixer command if the volume keys should unmute
|
|
bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -q -D pulse sset Master 5%+
|
|
bindsym XF86AudioLowerVolume exec --no-startup-id amixer -q -D pulse sset Master 5%-
|
|
bindsym XF86AudioMute exec --no-startup-id amixer -q -D pulse sset Master toggle-mute
|
|
|
|
# Lock
|
|
bindsym $mod+mod1+l exec xset s activate
|
|
# Start powermenu
|
|
bindsym $mod+p exec ~/.config/rofi/powermenu.sh &
|
|
|
|
# Notify when toggling airplane mode
|
|
bindsym XF86RFKill exec --no-startup-id ~/.config/i3/airplane-mode-notify.sh
|
|
|
|
bindsym $mod+Shift+m move scratchpad
|
|
bindsym $mod+Shift+o scratchpad show
|
|
|
|
# scratchpad-terminal
|
|
for_window [class="^$TERMINAL-256color$" title="^scratchpad-terminal$"] \
|
|
move scratchpad, \
|
|
scratchpad show, \
|
|
sticky enable, \
|
|
border none, \
|
|
resize set 1600 900, \
|
|
move position center
|
|
# Toggle the scratchpad-terminal or create a new one if none exists.
|
|
bindsym $mod+comma exec i3-msg '[class="^$TERMINAL-256color$" title="^scratchpad-terminal$"] scratchpad show' || $TERMINAL -A 0.45 -d "$(xcwd)" -c $TERMINAL-256color -t scratchpad-terminal
|
|
|
|
for_window [class="^TelegramDesktop$"] \
|
|
move scratchpad, \
|
|
scratchpad show
|
|
bindsym $mod+Shift+t exec i3-msg '[class="^TelegramDesktop$"] scratchpad show' || telegram-desktop
|
|
|
|
for_window [class="^Signal$"] \
|
|
move scratchpad, \
|
|
scratchpad show
|
|
bindsym $mod+Shift+s exec i3-msg '[class="^Signal$"] scratchpad show' || signal-desktop
|
|
|
|
for_window [class="^Bitwarden$"] \
|
|
move scratchpad, \
|
|
scratchpad show
|
|
bindsym $mod+Shift+b exec i3-msg '[class="^Bitwarden$"] scratchpad show' || bitwarden
|
|
|
|
for_window [class="^$TERMINAL-256color$" title="^polybar-datetime-calendar$"] \
|
|
floating enable, \
|
|
border pixel 3, \
|
|
resize set 378 300, \
|
|
move position 1411 32
|
|
bindsym $mod+c exec ~/.config/polybar/scripts/calendar.sh -t &
|
|
|
|
# screenshots
|
|
bindsym --release Print exec cd ~/pics/screens/ && scrot -sf
|
|
# Zoom links in private browser
|
|
bindsym $mod+z exec ~/.local/bin/zoom-links
|
|
# Monitor selection with fzf
|
|
for_window [class="^$TERMINAL-256color$" title="^fzf-monitor-setup$"] \
|
|
floating enable, \
|
|
border pixel 3, \
|
|
resize set 378 300, \
|
|
move position 1 32
|
|
bindsym $mod+m exec pkill -f fzf-monitor-setup -O 1 || $TERMINAL -t fzf-monitor-setup -e ~/.local/bin/monitor-setup
|
|
|
|
# vim: ft=i3
|