set $mod Mod4 set $alt Mod1 # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $alt # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. font pango:DejaVu Sans Mono 10 exec --no-startup-id compton exec --no-startup-id xrandr\ --output DP-0 --pos 0x0 --mode 2560x1440 --rate 60 \ --output DP-4 --pos 2560x0 --mode 2560x1440 --rate 144 --primary \ --output HDMI-0 --pos 5120x0 --mode 2560x1440 --rate 60 bindsym $mod+Return exec --no-startup-id kitty --single-instance bindsym $mod+Tab workspace next_on_output bindsym $mod+Shift+Tab workspace prev_on_output bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle bindsym $mod+h focus left bindsym $mod+Left focus left bindsym $mod+j focus down bindsym $mod+Down focus down bindsym $mod+k focus up bindsym $mod+Up focus up bindsym $mod+l focus right bindsym $mod+Right focus right bindsym --release $mod+Shift+h move left bindsym --release $mod+Shift+Left move left bindsym --release $mod+Shift+j move down bindsym --release $mod+Shift+Down move down bindsym --release $mod+Shift+k move up bindsym --release $mod+Shift+Up move up bindsym --release $mod+Shift+l move right bindsym --release $mod+Shift+Right move right set $mode_space [space]: [space]Run, workspace, window, open, goto, quit mode --pango_markup "$mode_space" { bindsym space exec --no-startup-id rofi -show run, mode "default" bindsym p mode "$mode_space_workspace" bindsym w mode "$mode_space_window" bindsym o mode "$mode_space_open" bindsym g mode "$mode_space_goto" bindsym q mode "$mode_space_quit" bindsym Return mode "default" bindsym Escape mode "default" bindsym control+g mode "default" bindsym control+bracketleft mode "default" } set $mode_space_workspace [workspace]: move, [p]switch to mode --pango_markup "$mode_space_workspace" { bindsym m mode "$mode_space_workspace_move" bindsym p exec --no-startup-id i3_switch_workspace.sh, mode "default" bindsym Return mode "default" bindsym Escape mode "default" bindsym control+g mode "default" bindsym control+bracketleft mode "default" } set $mode_space_workspace_move [workspace][move]: h/l/Left/Right Move mode --pango_markup "$mode_space_workspace_move" { bindsym h exec --no-startup-id i3-msg move workspace to output left bindsym Left exec --no-startup-id i3-msg move workspace to output left bindsym l exec --no-startup-id i3-msg move workspace to output right bindsym Right exec --no-startup-id i3-msg move workspace to output right bindsym Return mode "default" bindsym Escape mode "default" bindsym control+g mode "default" bindsym control+bracketleft mode "default" } set $mode_space_window [window]: delete, fullscreen, float, split, vertical split, parent, move, resize, layout mode --pango_markup "$mode_space_window" { bindsym d kill, mode "default" bindsym f fullscreen toggle, mode "default" bindsym o floating toggle, mode "default" bindsym s split h, mode "default" bindsym v split v, mode "default" bindsym p focus parent bindsym m mode "$mode_space_window_move" bindsym r mode "$mode_space_window_resize" bindsym l mode "$mode_space_window_layout" bindsym Return mode "default" bindsym Escape mode "default" bindsym control+g mode "default" bindsym control+bracketleft mode "default" } set $mode_space_window_move [window][move]: h/j/k/l/Left/Down/Up/Right Move, to workspace mode --pango_markup "$mode_space_window_move" { bindsym --release h move left bindsym --release Left move left bindsym --release j move down bindsym --release Down move down bindsym --release k move up bindsym --release Up move up bindsym --release l move right bindsym --release Right move right bindsym p exec --no-startup-id i3_send_to_workspace.sh, mode "default" bindsym Return mode "default" bindsym Escape mode "default" bindsym control+g mode "default" bindsym control+bracketleft mode "default" } set $mode_space_window_resize [window][resize]: h/j/k/l/Left/Down/Up/Right Grow, Shift+h/j/k/l/Left/Down/Up/Right Shrink mode --pango_markup "$mode_space_window_resize" { bindsym h resize grow left 10 px or 10 ppt bindsym Left resize grow left 10 px or 10 ppt bindsym j resize grow down 10 px or 10 ppt bindsym Down resize grow down 10 px or 10 ppt bindsym k resize grow up 10 px or 10 ppt bindsym Up resize grow up 10 px or 10 ppt bindsym l resize grow right 10 px or 10 ppt bindsym Right resize grow right 10 px or 10 ppt bindsym Shift+h resize shrink right 10 px or 10 ppt bindsym Shift+Left resize shrink right 10 px or 10 ppt bindsym Shift+j resize shrink up 10 px or 10 ppt bindsym Shift+Down resize shrink up 10 px or 10 ppt bindsym Shift+k resize shrink down 10 px or 10 ppt bindsym Shift+Up resize shrink down 10 px or 10 ppt bindsym Shift+l resize shrink left 10 px or 10 ppt bindsym Shift+Right resize shrink left 10 px or 10 ppt bindsym Return mode "default" bindsym Escape mode "default" bindsym control+g mode "default" bindsym control+bracketleft mode "default" } set $mode_space_window_layout [window][layout]: split, tabbed, stacking mode --pango_markup "$mode_space_window_layout" { bindsym s toggle split, mode "default" bindsym t layout tabbed, mode "default" bindsym k layout stacking, mode "default" bindsym Return mode "default" bindsym Escape mode "default" bindsym control+g mode "default" bindsym control+bracketleft mode "default" } set $mode_space_open [open]: firefox, kitty, emacs, pycharm, [j]idea, discord, slack, zoom, windows mode --pango_markup "$mode_space_open" { bindsym f exec --no-startup-id pgrep firefox && i3-msg '[class="(?i)firefox"] focus' || firefox , mode "default" bindsym Shift+f exec --no-startup-id firefox , mode "default" bindsym t exec --no-startup-id kitty --single-instance, mode "default" bindsym Shift+t exec --no-startup-id kitty --single-instance, mode "default" bindsym e exec --no-startup-id pgrep emacs && i3-msg '[class="(?i)emacs"] focus' || emacs , mode "default" bindsym Shift+e exec --no-startup-id emacs , mode "default" bindsym p exec --no-startup-id pgrep pycharm && i3-msg '[class="(?i)pycharm"] focus' || pycharm , mode "default" bindsym Shift+p exec --no-startup-id pycharm , mode "default" bindsym j exec --no-startup-id pgrep idea && i3-msg '[class="(?i)idea"] focus' || idea , mode "default" bindsym Shift+j exec --no-startup-id idea , mode "default" bindsym d exec --no-startup-id pgrep discord && i3-msg '[class="(?i)discord"] focus' || discord , mode "default" bindsym Shift+d exec --no-startup-id discord , mode "default" bindsym s exec --no-startup-id pgrep slack && i3-msg '[class="(?i)slack"] focus' || slack , mode "default" bindsym Shift+s exec --no-startup-id slack , mode "default" bindsym z exec --no-startup-id pgrep zoom && i3-msg '[class="(?i)zoom"] focus' || zoom , mode "default" bindsym Shift+z exec --no-startup-id zoom , mode "default" bindsym w exec --no-startup-id pgrep virt-viewer && i3-msg '[class="(?i)virt-viewer"] focus' || virt-viewer --connect qemu:///system -w Windows10, mode "default" bindsym Shift+w exec --no-startup-id virt-viewer --connect qemu:///system -w Windows10, mode "default" bindsym Return mode "default" bindsym Escape mode "default" bindsym control+g mode "default" bindsym control+bracketleft mode "default" } set $mode_space_goto [goto]: server mode --pango_markup "$mode_space_goto" { bindsym s exec --no-startup-id rofi -show ssh, mode "default" bindsym Return mode "default" bindsym Escape mode "default" bindsym control+g mode "default" bindsym control+bracketleft mode "default" } set $mode_space_quit [quit]: [q]logout, reload, [Shift+r]restart, system mode --pango_markup "$mode_space_quit" { bindsym q exec --no-startup-id i3-msg exit, mode "default" bindsym r exec --no-startup-id i3_reconfigure, mode "default" bindsym Shift+r restart, mode "default" bindsym s mode "$mode_space_quit_system" bindsym Return mode "default" bindsym Escape mode "default" bindsym control+g mode "default" bindsym control+bracketleft mode "default" } set $mode_space_quit_system [quit][system]: suspend, reboot, power off mode --pango_markup "$mode_space_quit_system" { bindsym s exec --no-startup-id systemctl suspend, mode "default" bindsym r exec --no-startup-id systemctl reboot, mode "default" bindsym p exec --no-startup-id systemctl poweroff, mode "default" bindsym Return mode "default" bindsym Escape mode "default" bindsym control+g mode "default" bindsym control+bracketleft mode "default" } bindsym $mod+space mode "$mode_space" set $ws_main 1: Main workspace "$ws_main" output DP-4 set $ws_tasks 2: Tasks workspace "$ws_tasks" output DP-0 assign [class="(?i)virt-viewer"] "$ws_tasks" set $ws_comms 3: Comms workspace "$ws_comms" output HDMI-0 assign [class="(?i)discord"] "$ws_comms" assign [class="(?i)slack"] "$ws_comms" set $ws_python 4: Python workspace "$ws_python" output primary assign [class="(?i)pycharm"] "$ws_python" set $ws_java 5: Java workspace "$ws_java" output primary assign [class="(?i)idea"] "$ws_java" # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the # screen before suspend. Use loginctl lock-session to lock your screen. exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { tray_output primary tray_padding 20 px status_command i3status } # Wallpaper exec --no-startup-id nitrogen --restore