vincentbernat.i3wm-configur.../config
Vincent Bernat 28688357a1 i3: don't use a layout for something that simple
New windows are not created as tabbed but follow the default layout of
the workspace. So, set this default and just run firefox from there.
2021-07-09 17:22:18 +02:00

172 lines
6.4 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
font pango:Iosevka 9
# Style and colors
default_border pixel 3
default_floating_border pixel 3
# class border backgr. text indicator child_border
client.focused #ffaf00 #cc5c00 #ffffff #ffdf11 #cc5c00
client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a
client.unfocused #333333 #222222 #888888 #292d2e #222222
client.urgent #2f343a #d00000 #ffffff #d00000 #d00000
client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c
client.background #ffffff
# Audio
bindsym XF86AudioRaiseVolume 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 XF86AudioMute exec --no-startup-id exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioMicMute exec --no-startup-id exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym XF86AudioPlay 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 XF86AudioPrev exec --no-startup-id exec playerctl -p $mediaplayer previous
mode "mediaplayer" {
bindsym "z" exec --no-startup-id exec playerctl -p $mediaplayer previous; mode "default"
bindsym "x" exec --no-startup-id exec playerctl -p $mediaplayer play-pause; mode "default"
bindsym "c" exec --no-startup-id exec playerctl -p $mediaplayer pause; mode "default"
bindsym "v" exec --no-startup-id exec playerctl -p $mediaplayer stop; mode "default"
bindsym "b" exec --no-startup-id exec playerctl -p $mediaplayer next; mode "default"
bindsym "m" exec exec pavucontrol; mode "default"
bindsym "s" [class="(?i)$mediaplayer"] focus; mode "default"
bindsym Escape mode "default"
bindsym Return mode "default"
}
bindsym $mod+s mode "mediaplayer"
# Brightness
bindsym XF86MonBrightnessUp exec --no-startup-id exec brightnessctl set +5%
bindsym XF86MonBrightnessDown exec --no-startup-id exec brightnessctl set 5%-
# use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec exec $term
# kill focused window
bindsym $mod+x kill
# execute command
bindsym $mod+r exec --no-startup-id exec dmenu_run
# change focus
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# 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 right
# 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
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
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 number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
bindsym $mod+Tab workspace back_and_forth
bindsym $mod+Ctrl+o focus output right
bindsym $mod+n nop "new-workspace"
focus_wrapping workspace
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
bindsym $mod+Shift+o move workspace to output right
bindsym $mod+Shift+n nop "move-to-new-workspace"
# reload/restart
bindsym $mod+Shift+c reload
bindsym $mod+Shift+r restart
# Lock screen and print screen
bindsym XF86ScreenSaver exec --no-startup-id exec xset s activate
bindsym $mod+Delete exec --no-startup-id exec xset s activate
bindsym Print exec --no-startup-id "flameshot gui -r | xclip -selection clipboard -t image/png"
# Quake window
set $quake QuakeConsoleNeedsUniqueName
for_window [instance="$quake" title=$term] move window to scratchpad
bindsym $mod+grave nop "quake-console:$term:$quake:0.3"
# Get info about container/workspace
bindsym $mod+i nop "container-info"
bindsym $mod+Shift+i nop "workspace-info"
# Random rules
no_focus [window_type="splash"]
for_window [class="Shadow"] fullscreen enable
for_window [window_role="PictureInPicture"] floating enable
for_window [class="Spotify"] move to workspace number 3
# 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; workspace_layout tabbed; exec exec firefox; \
workspace number 3; exec exec $mediaplayer; \
workspace number 1"