mirror of
https://github.com/vincentbernat/i3wm-configuration.git
synced 2025-06-20 17:15:41 +02:00
177 lines
7.1 KiB
Text
177 lines
7.1 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 ; focus tiling
|
|
bindsym $mod+2 workspace number 2 ; focus tiling
|
|
bindsym $mod+3 workspace number 3 ; focus tiling
|
|
bindsym $mod+4 workspace number 4 ; focus tiling
|
|
bindsym $mod+5 workspace number 5 ; focus tiling
|
|
bindsym $mod+6 workspace number 6 ; focus tiling
|
|
bindsym $mod+7 workspace number 7 ; focus tiling
|
|
bindsym $mod+8 workspace number 8 ; focus tiling
|
|
bindsym $mod+9 workspace number 9 ; focus tiling
|
|
bindsym $mod+0 workspace number 10 ; focus tiling
|
|
bindsym $mod+Tab nop "previous-workspace"
|
|
bindsym $mod+Ctrl+o focus output next ; focus tiling
|
|
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"
|