# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
# Monitor eDP1 (Internal Display)
workspace 1 output $pm
workspace 2 output $pm
workspace 3 output $pm
workspace 4 output $pm
workspace 5 output $pm
workspace 6 output $pm
workspace 7 output $pm
workspace 8 output $pm
workspace 9 output $pm
workspace 10 output $pm
# Monitor DP-1 (External DP Cable Only)
workspace 11 output $sm
workspace 12 output $sm
workspace 13 output $sm
workspace 14 output $sm
workspace 15 output $sm
workspace 16 output $sm
workspace 17 output $sm
workspace 18 output $sm
workspace 19 output $sm
workspace 20 output $sm
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"
set $ws11 "11"
set $ws12 "12"
set $ws13 "13"
set $ws14 "14"
set $ws15 "15"
set $ws16 "16"
set $ws17 "17"
set $ws18 "18"
set $ws19 "19"
set $ws20 "20"
# switch to workspace (Internal Display)
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
# DP-1 Display
bindsym $mod1+1 workspace number $ws11
bindsym $mod1+2 workspace number $ws12
bindsym $mod1+3 workspace number $ws13
bindsym $mod1+4 workspace number $ws14
bindsym $mod1+5 workspace number $ws15
bindsym $mod1+6 workspace number $ws16
bindsym $mod1+7 workspace number $ws17
bindsym $mod1+8 workspace number $ws18
bindsym $mod1+9 workspace number $ws19
bindsym $mod1+0 workspace number $ws20
# move focused container to workspace (Internal Display)
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
# move focused container to workspace (DP-1 Display)
bindsym $mod1+Shift+1 move container to workspace number $ws11
bindsym $mod1+Shift+2 move container to workspace number $ws12
bindsym $mod1+Shift+3 move container to workspace number $ws13
bindsym $mod1+Shift+4 move container to workspace number $ws14
bindsym $mod1+Shift+5 move container to workspace number $ws15
bindsym $mod1+Shift+6 move container to workspace number $ws16
bindsym $mod1+Shift+7 move container to workspace number $ws17
bindsym $mod1+Shift+8 move container to workspace number $ws18
bindsym $mod1+Shift+9 move container to workspace number $ws19
bindsym $mod1+Shift+0 move container to workspace number $ws20
# 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
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e 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'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the window’s width.
# Pressing right will grow the window’s width.
# Pressing up will shrink the window’s height.
# Pressing down will grow the window’s height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt