set $mod Mod4 set $leftoutput DP-3 set $rightoutput HDMI-0 font pango:monospace 8 floating_modifier $mod # start a terminal bindsym $mod+Return exec alacritty bindsym $mod+b exec i3lock -i ~/.config/i3/matrix.png -t # kill focused window bindsym $mod+Shift+q kill # start dmenu (a program launcher) bindsym $mod+i exec rofi -show # change focus bindsym $mod+h focus left bindsym $mod+j focus down bindsym $mod+k focus up bindsym $mod+l focus right # alternatively, you can use the cursor keys: 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+h move left bindsym $mod+Shift+j move down bindsym $mod+Shift+k move up bindsym $mod+Shift+l move right # alternatively, you can use the cursor keys: 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+Control+t focus output left bindsym $mod+Control+n focus output right bindsym $mod+Control+Left move workspace to output left bindsym $mod+Control+Right move workspace to output right # split in horizontal orientation bindsym $mod+c split h # split in vertical orientation bindsym $mod+period split v # enter fullscreen mode for the focused container bindsym $mod+f fullscreen toggle # change container layout (stacked, tabbed, toggle split) bindsym $mod+u layout stacking bindsym $mod+t layout tabbed bindsym $mod+p layout toggle split bindsym $mod+z sticky toggle # toggle tiling / floating bindsym $mod+space floating toggle # change focus between tiling / floating windows bindsym $mod+Shift+space focus mode_toggle # focus the parent container bindsym $mod+a focus parent # focus the child container #bindsym $mod+d focus child # switch to workspace bindsym $mod+1 workspace 1 bindsym $mod+2 workspace 2 bindsym $mod+3 workspace 3 bindsym $mod+4 workspace 4 bindsym $mod+5 workspace 5 bindsym $mod+6 workspace 6 bindsym $mod+7 workspace 7 bindsym $mod+8 workspace 8 bindsym $mod+9 workspace 9 bindsym $mod+0 workspace 10 bindsym $mod+Tab workspace next_on_output bindsym $mod+Shift+Tab workspace prev_on_output # move focused container to workspace bindsym $mod+Shift+1 move container to workspace 1 bindsym $mod+Shift+2 move container to workspace 2 bindsym $mod+Shift+3 move container to workspace 3 bindsym $mod+Shift+4 move container to workspace 4 bindsym $mod+Shift+5 move container to workspace 5 bindsym $mod+Shift+6 move container to workspace 6 bindsym $mod+Shift+7 move container to workspace 7 bindsym $mod+Shift+8 move container to workspace 8 bindsym $mod+Shift+9 move container to workspace 9 bindsym $mod+Shift+0 move container to workspace 10 # reload the configuration file bindsym $mod+Shift+x reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+o restart # exit i3 (logs you out of your X session) bindsym $mod+Shift+p 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'" # dunst bindsym Control+space exec dunstctl close bindsym Control+Shift+space exec dunstctl close-all bindsym Control+grave exec dunstctl history-pop bindsym Control+period exec dunstctl context # scratchpad bindsym $mod+Shift+grave move scratchpad bindsym $mod+grave scratchpad show # resize window (you can also use the mouse for that) mode "resize" { bindsym t resize shrink width 10 px or 10 ppt bindsym s resize grow height 10 px or 10 ppt bindsym r resize shrink height 10 px or 10 ppt bindsym n resize grow width 10 px or 10 ppt # same bindings, but for the arrow keys bindsym Left resize shrink width 10 px or 10 ppt bindsym Down resize grow height 10 px or 10 ppt bindsym Up resize shrink height 10 px or 10 ppt bindsym Right resize grow width 10 px or 10 ppt # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+o mode "resize" mode "move" { set $normal 50 set $withshift 5 set $withcontrol 100 set $withmod 200 bindsym t move left $normal px bindsym s move down $normal px bindsym r move up $normal px bindsym n move right $normal px bindsym Left move left $normal px bindsym Down move down $normal px bindsym Up move up $normal px bindsym Right move right $normal px bindsym Shift+t move left $withshift px bindsym Shift+s move down $withshift px bindsym Shift+r move up $withshift px bindsym Shift+n move right $withshift px bindsym Shift+Left move left $withshift px bindsym Shift+Down move down $withshift px bindsym Shift+Up move up $withshift px bindsym Shift+Right move right $withshift px bindsym Control+t move left $withcontrol px bindsym Control+s move down $withcontrol px bindsym Control+r move up $withcontrol px bindsym Control+n move right $withcontrol px bindsym Control+Left move left $withcontrol px bindsym Control+Down move down $withcontrol px bindsym Control+Up move up $withcontrol px bindsym Control+Right move right $withcontrol px bindsym $mod+t move left $withmod px bindsym $mod+s move down $withmod px bindsym $mod+r move up $withmod px bindsym $mod+n move right $withmod px bindsym $mod+Left move left $withmod px bindsym $mod+Down move down $withmod px bindsym $mod+Up move up $withmod px bindsym $mod+Right move right $withmod px bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+m mode "move" set $mode_launcher launch bindsym $mod+e mode "$mode_launcher" mode "$mode_launcher" { bindsym f exec firefox; mode "default" bindsym t exec thunderbird; mode "default" bindsym s exec steam; mode "default" bindsym Escape mode "default" bindsym Return mode "default" } bar { output $leftoutput strip_workspace_numbers yes font pango:DejaVu Sans Mono, FontAwesome 8 status_command i3blocks -c ~/.config/i3blocks/left-config } bar { output $rightoutput strip_workspace_numbers yes font pango:DejaVu Sans Mono, FontAwesome 8 status_command i3blocks -c ~/.config/i3blocks/right-config } workspace_auto_back_and_forth no set $ws_browser_1 10:browser:1 set $ws_browser_2 11:browser:2 set $ws_steam steam set $ws_lutris lutris set $ws_mail 12:mail set $ws_im 13:im workspace 1 output $leftoutput workspace 2 output $leftoutput workspace 3 output $leftoutput workspace 4 output $leftoutput workspace 5 output $leftoutput workspace $ws_browser_1 output $leftoutput workspace $ws_browser_2 output $rightoutput workspace $ws_steam output $leftoutput workspace $ws_lutris output $leftoutput workspace 6 output $rightoutput workspace 7 output $rightoutput workspace 8 output $rightoutput workspace 9 output $rightoutput workspace 10 output $rightoutput workspace $ws_mail output $rightoutput workspace $ws_im output $rightoutput assign [class="^firefox" instance="^Navigator$"] workspace $ws_browser_1 assign [class="^org.mozilla.Thunderbird$"] workspace $ws_mail assign [class="^Alacritty$" instance="^lucy-code$"] workspace 1 assign [class="^Alacritty$" instance="^lucy-server$"] workspace 6 assign [class="^URxvt$" instance="-code$"] workspace 3 assign [class="^URxvt$" instance="^lesportecles-rails$"] workspace 8 assign [class="^URxvt$" instance="-server$"] workspace 8 assign [class="^xfreerdp$"] workspace 8 assign [class="^Microsoft Teams" title="Microsoft Teams(?! Notification)"] workspace $ws_im assign [class="^steam$"] workspace $ws_steam assign [class="^Lutris$"] workspace $ws_lutris assign [class="^Mattermost$"] workspace $ws_im assign [class="^discord$"] workspace $ws_im bindsym XF86Calculator exec "alacritty --class Alacritty,Float" for_window [class="^Gcolor3$"] floating enable for_window [class="^Alacritty$" instance="^Float$"] floating enable for_window [class="^mpv$"] floating enable for_window [class="^Pinentry$"] floating enable for_window [class="^TeamViewer$"] floating enable for_window [title="Microsoft Teams Notification"] floating enable, sticky enable for_window [title="^Steam - News"] floating enable for_window [title="^Origin$"] floating enable for_window [class="Yad"] floating enable bindsym XF86HomePage workspace $ws_browser_1 bindsym $mod+XF86HomePage workspace $ws_browser_2 bindsym $mod+Shift+XF86HomePage move container to workspace $ws_browser_1 bindsym $mod+Control+XF86HomePage move container to workspace $ws_browser_2 bindsym XF86Mail workspace $ws_mail bindsym $mod+Shift+XF86Mail move container to workspace $ws_mail bindsym $mod+XF86Mail workspace $ws_im bindsym $mod+Control+XF86Mail move container to workspace $ws_im # Pulse Audio controls bindsym XF86AudioRaiseVolume exec --no-startup-id "wpctl set-volume @DEFAULT_SINK@ 0.05+ && pkill -RTMIN+10 i3blocks" bindsym XF86AudioLowerVolume exec --no-startup-id "wpctl set-volume @DEFAULT_SINK@ 0.05- && pkill -RTMIN+10 i3blocks" bindsym Shift+XF86AudioRaiseVolume exec --no-startup-id "wpctl set-volume @DEFAULT_SINK@ 0.02+ && pkill -RTMIN+10 i3blocks" bindsym Shift+XF86AudioLowerVolume exec --no-startup-id "wpctl set-volume @DEFAULT_SINK@ 0.02- && pkill -RTMIN+10 i3blocks" bindsym XF86AudioMute exec --no-startup-id "pactl set-sink-mute @DEFAULT_SINK@ toggle && pkill -RTMIN+10 i3blocks" # Media player controls bindsym XF86AudioPlay exec --no-startup-id mpc toggle bindsym XF86AudioNext exec --no-startup-id mpc next bindsym XF86AudioPrev exec --no-startup-id mpc prev bindsym Print exec "flameshot gui" new_window pixel 2 mouse_warping none