mirror of
https://github.com/vincentbernat/i3wm-configuration.git
synced 2025-07-22 20:04:30 +02:00
The no_focus rules are for window activation or when they request focus. This is not why we put the rules. We don't want to give them focus at all and this is not the way to do.
177 lines
7 KiB
Text
177 lines
7 KiB
Text
# i3 config file (v4)
|
|
|
|
set $mod Mod4
|
|
set $up l
|
|
set $down k
|
|
set $left j
|
|
set $right semicolon
|
|
set $term vbeterm
|
|
set $mediaplayer spotify
|
|
set $borderpx 3
|
|
|
|
font pango:Iosevka Aile 9
|
|
|
|
# style and colors
|
|
default_border pixel $borderpx
|
|
default_floating_border pixel $borderpx
|
|
# class border backgr. text indicator child_border
|
|
client.focused #cc5c00 #cc5c00 #ffffff #ee9c31 #cc5c00
|
|
client.focused_inactive #5f676a #5f676a #ffffff #484e50 #5f676a
|
|
client.unfocused #222222 #222222 #888888 #292d2e #222222
|
|
client.urgent #d00000 #d00000 #ffffff #d00000 #d00000
|
|
client.placeholder #0c0c0c #0c0c0c #ffffff #000000 #0c0c0c
|
|
client.background #ffffff
|
|
|
|
# gaps
|
|
gaps inner 10
|
|
# smart_gaps on
|
|
|
|
# audio
|
|
bindsym XF86AudioRaiseVolume exec --no-startup-id exec pactl set-sink-volume @DEFAULT_SINK@ +5%
|
|
bindsym $mod+Up exec --no-startup-id exec pactl set-sink-volume @DEFAULT_SINK@ +5%
|
|
bindsym XF86AudioLowerVolume exec --no-startup-id exec pactl set-sink-volume @DEFAULT_SINK@ -5%
|
|
bindsym $mod+Down exec --no-startup-id exec pactl set-sink-volume @DEFAULT_SINK@ -5%
|
|
bindsym XF86AudioMute exec --no-startup-id exec ~/.config/i3/bin/toggle-mute sink
|
|
bindsym XF86AudioMicMute exec --no-startup-id exec ~/.config/i3/bin/toggle-mute source
|
|
bindsym XF86AudioPlay exec --no-startup-id exec playerctl -p $mediaplayer play-pause
|
|
bindsym $mod+Left exec --no-startup-id exec playerctl -p $mediaplayer play-pause
|
|
bindsym XF86AudioPause exec --no-startup-id exec playerctl -p $mediaplayer pause
|
|
bindsym XF86AudioStop exec --no-startup-id exec playerctl -p $mediaplayer stop
|
|
bindsym XF86AudioNext exec --no-startup-id exec playerctl -p $mediaplayer next
|
|
bindsym $mod+Right exec --no-startup-id exec playerctl -p $mediaplayer next
|
|
bindsym XF86AudioPrev exec --no-startup-id exec playerctl -p $mediaplayer previous
|
|
bindsym $mod+s exec --no-startup-id exec ~/.config/i3/bin/rofi-mediaplayer $mediaplayer
|
|
|
|
# brightness
|
|
bindsym XF86MonBrightnessUp exec --no-startup-id exec brightnessctl -q set +5%
|
|
bindsym XF86MonBrightnessDown exec --no-startup-id exec brightnessctl -q set 5%-
|
|
|
|
# use Mouse+$mod to drag floating windows to their wanted position
|
|
floating_modifier $mod
|
|
floating_minimum_size 55 x 30
|
|
|
|
# start a terminal
|
|
bindsym $mod+Return exec exec $term
|
|
|
|
# kill focused window
|
|
bindsym $mod+x kill
|
|
|
|
# execute command
|
|
set $rofi exec rofi -modi drun -show drun -show-icons -drun-match-fields name
|
|
bindsym $mod+r exec --no-startup-id $rofi
|
|
bindsym XF86LaunchA exec --no-startup-id $rofi
|
|
|
|
# change focus
|
|
bindsym $mod+$left focus left
|
|
bindsym $mod+$down focus down
|
|
bindsym $mod+$up focus up
|
|
bindsym $mod+$right focus right
|
|
focus_follows_mouse no
|
|
|
|
# move focused window
|
|
bindsym $mod+Shift+$left move left
|
|
bindsym $mod+Shift+$down move down
|
|
bindsym $mod+Shift+$up move up
|
|
bindsym $mod+Shift+$right move right
|
|
bindsym $mod+o move container to output next ; focus output next
|
|
|
|
# resize focused window
|
|
bindsym $mod+Ctrl+$left resize shrink width 10 px or 4 ppt
|
|
bindsym $mod+Ctrl+$down resize grow height 10 px or 4 ppt
|
|
bindsym $mod+Ctrl+$up resize shrink height 10 px or 4 ppt
|
|
bindsym $mod+Ctrl+$right resize grow width 10 px or 4 ppt
|
|
|
|
# enter fullscreen mode for the focused container
|
|
bindsym $mod+f fullscreen toggle
|
|
bindsym $mod+Shift+f fullscreen toggle global
|
|
|
|
# change container layout (tabbed, toggle split)
|
|
bindsym $mod+w layout toggle splitv splith tabbed
|
|
bindsym $mod+v split toggle
|
|
|
|
# toggle tiling / floating
|
|
bindsym $mod+Shift+space floating toggle
|
|
|
|
# toggle sticky
|
|
bindsym $mod+period sticky toggle
|
|
|
|
# change focus between tiling / floating windows
|
|
bindsym $mod+space focus mode_toggle
|
|
|
|
# focus the parent container
|
|
bindsym $mod+a focus parent
|
|
|
|
# default workspace layout: tabbed
|
|
workspace_layout tabbed
|
|
|
|
# switch to workspace
|
|
bindsym $mod+1 workspace number 1
|
|
bindsym $mod+2 workspace number 2
|
|
bindsym $mod+3 workspace number 3
|
|
bindsym $mod+4 workspace number 4
|
|
bindsym $mod+5 workspace number 5
|
|
bindsym $mod+6 workspace number 6
|
|
bindsym $mod+7 workspace number 7
|
|
bindsym $mod+8 workspace number 8
|
|
bindsym $mod+9 workspace number 9
|
|
bindsym $mod+0 workspace number 10
|
|
bindsym $mod+Tab nop "previous-workspace"
|
|
bindsym $mod+Ctrl+o focus output next
|
|
bindsym $mod+n nop "new-workspace"
|
|
focus_wrapping no
|
|
|
|
# move focused container to workspace
|
|
bindsym $mod+Shift+1 move container to workspace number 1
|
|
bindsym $mod+Shift+2 move container to workspace number 2
|
|
bindsym $mod+Shift+3 move container to workspace number 3
|
|
bindsym $mod+Shift+4 move container to workspace number 4
|
|
bindsym $mod+Shift+5 move container to workspace number 5
|
|
bindsym $mod+Shift+6 move container to workspace number 6
|
|
bindsym $mod+Shift+7 move container to workspace number 7
|
|
bindsym $mod+Shift+8 move container to workspace number 8
|
|
bindsym $mod+Shift+9 move container to workspace number 9
|
|
bindsym $mod+Shift+0 move container to workspace number 10
|
|
bindsym $mod+Shift+o move workspace to output next
|
|
bindsym $mod+Ctrl+Shift+o nop "move-all-workspaces-to-next-output"
|
|
bindsym $mod+Shift+n nop "move-to-new-workspace"
|
|
|
|
# lock screen
|
|
bindsym XF86ScreenSaver exec --no-startup-id exec loginctl lock-session
|
|
bindsym $mod+Delete exec --no-startup-id exec loginctl lock-session
|
|
# print screen
|
|
bindsym Print exec --no-startup-id exec ~/.config/i3/bin/screenshot window
|
|
bindsym $mod+Print exec --no-startup-id exec ~/.config/i3/bin/screenshot desktop
|
|
bindsym $mod+F12 exec --no-startup-id exec ~/.config/i3/bin/screenshot window
|
|
|
|
# Quake window
|
|
bindsym $mod+grave nop "quake-console:$term:QuakeConsole:0.3"
|
|
|
|
# get info about container/workspace
|
|
bindsym $mod+i nop "container-info"
|
|
bindsym $mod+Shift+i nop "workspace-info"
|
|
|
|
# random rules
|
|
focus_on_window_activation smart
|
|
no_focus [window_type="splash"]
|
|
for_window [tiling] border pixel $borderpx
|
|
for_window [class="Nm-connection-editor"] floating enable
|
|
for_window [class="Shadow"] fullscreen enable
|
|
for_window [window_role="PictureInPicture"] floating enable, resize set 1280 720
|
|
for_window [class="pavucontrol"] floating enable
|
|
# Firefox sharing indicator
|
|
for_window [floating title="Firefox — Sharing Indicator"] border none, sticky enable, move position 15 ppt -5 px
|
|
# Chromium sharing indicator
|
|
for_window [floating title=" is sharing your screen.$"] border none, sticky enable, move position 15 ppt -5 px
|
|
# Jitsi sharing indicator
|
|
for_window [floating title="Screen Sharing Tracker" instance="jitsi meet"] border none, sticky enable, move position 15 ppt -5 px
|
|
# Zoom (😱?)
|
|
for_window [class="^zoom$" title="^Zoom($|\s)"] floating disable, border pixel $borderpx
|
|
for_window [class="^zoom$" title="^zoom"] floating enable, border none
|
|
|
|
# start stuff
|
|
exec_always --no-startup-id exec systemctl --user start --no-block i3-session.target
|
|
exec --no-startup-id exec i3-msg "\
|
|
workspace number 1; append_layout ~/.config/i3/ws-emacs.json; exec exec emacs; exec exec $term; exec exec $term; \
|
|
workspace number 2; exec nm-online -q -t 5 && exec firefox; \
|
|
workspace number 3; exec test -d ~/.thunderbird && exec thunderbird; \
|
|
workspace number 1"
|