mirror of
https://github.com/vincentbernat/i3wm-configuration.git
synced 2025-06-22 01:48:59 +02:00
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.
172 lines
6.4 KiB
Text
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"
|