# Screen layout exec --no-startup-id ~/.screenlayout/default for_window [tiling] border pixel 3 smart_borders on set $mod Mod4 # Screensaver set $i3lock_cmd "i3lock -enf -c 1e1e1e" exec --no-startup-id xset s off exec --no-startup-id xset +dpms dpms 600 600 600 exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock -enf -c 1e1e1e exec --no-startup-id pomodoro daemon # Notifications #systemctl --user enable --now dbus.service exec --no-startup-id dunst # Hide cursor exec --no-startup-id unclutter -idle 0.3 -root exec_always --no-startup-id xset r rate 250 100 exec_always --no-startup-id setxkbmap -model pc105 -layout us,ru -option grp:win_space_toggle -option ctrl:nocaps # Wallpapers exec --no-startup-id nitrogen --restore; sleep 1; picom -b --config ~/.config/picom/picom.conf exec --no-startup-id hsetroot exec --no-startup-id feh --randomize --no-fehbg --bg-scale $HOME/.wallpaper/* set $font_size 11 font xft:FiraCode $font_size # use pactl to adjust volume in PulseAudio. set $refresh_i3blocks killall -10 i3blocks bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3blocks bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3blocks bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3blocks bindsym XF86AudioPlay exec playerctl play-pause bindsym XF86AudioPause exec playerctl play-pause bindsym XF86AudioNext exec playerctl next bindsym XF86AudioPrev exec playerctl previous bindsym XF86MonBrightnessUp exec xbacklight -inc 20 bindsym XF86MonBrightnessDown exec xbacklight -dec 20 bindsym $mod+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk bindsym --release $mod+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute bindsym $mod+Shift+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3blocks bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3blocks bindsym XF86PickupPhone exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk bindsym --release XF86PickupPhone exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute bindsym XF86Go exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk, x1carb11 bindsym --release XF86Go exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute, x1carb11 bindsym $mod+XF86AudioMicMute exec --no-startup-id pactl list short sources | awk '/input.*RUNNING/ {system("pactl set-source-mute " $1 " toggle")}' ## Find and mute mics bindsym $mod+m exec i3-input -F 'mark %s' -l 1 -P 'Mark: ' bindsym $mod+g exec i3-input -F '[con_mark="%s"] focus' -l 1 -P 'Goto: ' focus_follows_mouse no mouse_warping none popup_during_fullscreen smart # kill focused window bindsym $mod+Shift+q kill bindsym $mod+d exec --no-startup-id rofi -show drun -m -1 bindsym $mod+i exec --no-startup-id i3_switch_workspace.sh bindsym $mod+o exec --no-startup-id slm_rofi.sh bindsym $mod+p exec --no-startup-id power_rofi.sh # 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 bindsym $mod+Ctrl+Shift+l move workspace to output right bindsym $mod+Ctrl+Shift+h move workspace to output left bindsym $mod+Ctrl+Shift+k move workspace to output up bindsym $mod+Ctrl+Shift+j move workspace to output down # 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 # enter fullscreen mode for the focused container bindsym $mod+f fullscreen toggle # change container layout (tabbed, toggle split) bindsym $mod+t layout tabbed bindsym $mod+v layout toggle split bindsym $mod+a focus parent # toggle tiling / floating bindsym $mod+Shift+slash floating toggle bindsym $mod+Shift+comma sticky toggle for_window [title="Picture-in-Picture"] sticky enable for_window [title="Picture-in-Picture"] border pixel 0 # change focus between tiling / floating windows bindsym $mod+slash focus mode_toggle # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod # 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 Browser" set $ws2 "2  Code" set $ws3 "3  Code" set $ws4 "4" set $ws5 "5" set $ws6 "6" set $ws7 "7" set $ws8 "8💬Social" set $ws9 "9🎵Music" set $ws10 "10🍿Media" # 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 # 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+u workspace prev bindsym $mod+Shift+u workspace next workspace_auto_back_and_forth no bindsym $mod+Tab workspace back_and_forth # resize window (you can also use the mouse for that) bindsym $mod+r mode "resize" mode "resize" { bindsym h resize shrink width 10 px or 10 ppt bindsym j resize grow height 10 px or 10 ppt bindsym k resize shrink height 10 px or 10 ppt bindsym l resize grow width 10 px or 10 ppt bindsym $mod+r mode "default" bindsym p mode "resize_precise" bindsym Return mode "default" bindsym Escape mode "default" } mode "resize_precise" { bindsym h resize shrink width 1 px or 1 ppt bindsym j resize grow height 1 px or 1 ppt bindsym k resize shrink height 1 px or 1 ppt bindsym l resize grow width 1 px or 1 ppt bindsym $mod+r mode "default" bindsym p mode "resize" bindsym Return mode "default" bindsym Escape mode "default" } set $exitmode "Power: [e]xit, [r]eboot, [s]hutdown, s[u]spend, [l]ock, [b]lack" mode $exitmode { bindsym e exit bindsym r exec reboot bindsym s exec shutdown -h now bindsym u exec systemctl suspend; mode "default" bindsym l exec $i3lock_cmd; mode "default" bindsym b exec magick canvas:none PNG:- | feh -YFx -; mode "default" bindsym Escape mode "default" bindsym Return mode "default" } bindsym $mod+x mode $exitmode # reload the configuration file bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart bar { output primary output nonprimary tray_output primary # disable scroll bindsym button4 nop bindsym button5 nop status_command i3blocks } bindsym Print exec --no-startup-id screenshot select copy bindsym $mod+Print exec --no-startup-id screenshot window copy bindsym Ctrl+Print exec --no-startup-id screenshot entire copy bindsym Shift+Print exec --no-startup-id screenshot select save bindsym Shift+$mod+Print exec --no-startup-id screenshot window save bindsym Shift+Ctrl+Print exec --no-startup-id screenshot entire save bindsym $mod+s exec --no-startup-id i3_swap_workspaces # default workspaces for monitors in setup workspace $ws1 output primary workspace $ws2 output primary workspace $ws3 output primary workspace $ws9 output nonprimary workspace $ws10 output nonprimary workspace hide1 output primary workspace hide2 output nonprimary bindsym $mod+q exec --no-startup-id i3-msg workspace hide1; workspace hide2 no_focus [title="^Peek preview$"] no_focus [class="feh"] include ~/.config/i3/config.d/*.conf