# Define workspaces and keybindings to switch or move windows between them.

# WORKSPACE VARIABLES
# ~~~~~~~~~~~~~~~~~~~

# Define primary set of workspaces, accessed with the number key row (including [`] for WS0,
# [-] for WS11 and [=] for WS12). Will be assigned to primary output (with exceptions).
set $WS0  0
set $WS1  "1: www"
set $WS2  "2: code"
set $WS3  3
set $WS4  4
set $WS5  5
set $WS6  6
set $WS7  7
set $WS8  8
set $WS9  9
set $WS10 "10: mail"
set $WS11 "11: music"
set $WS12 "12: chat"

# Define secondary set of workspaces, accessed with the F1-F12 keys.
# Will be assigned to secondary and tertiary output if present.
set $WSf1  "F1"
set $WSf2  "F2"
set $WSf3  "F3"
set $WSf4  "F4"
set $WSf5  "F5"
set $WSf6  "F6"
set $WSf7  "F7"
set $WSf8  "F8"
set $WSf9  "F9"
set $WSf10 "F10"
set $WSf11 "F11"
set $WSf12 "F12"


# WORKSPACE ASSIGNMENTS
# ~~~~~~~~~~~~~~~~~~~~~

# (Uses output variables as defined in 30_output.)

# Define primary workspaces and assign them to screens.
workspace $WS0  output $OUTPUT_PRIMARY
workspace $WS1  output $OUTPUT_PRIMARY
workspace $WS2  output $OUTPUT_PRIMARY
workspace $WS3  output $OUTPUT_PRIMARY
workspace $WS4  output $OUTPUT_PRIMARY
workspace $WS5  output $OUTPUT_PRIMARY
workspace $WS6  output $OUTPUT_PRIMARY
workspace $WS7  output $OUTPUT_PRIMARY
workspace $WS8  output $OUTPUT_PRIMARY
workspace $WS9  output $OUTPUT_PRIMARY
workspace $WS10 output $OUTPUT_PRIMARY
workspace $WS11 output $OUTPUT_SECONDARY
workspace $WS12 output $OUTPUT_SECONDARY

# Define secondary workspaces and assign them to screens.
workspace $WSf1  output $OUTPUT_SECONDARY
workspace $WSf2  output $OUTPUT_SECONDARY
workspace $WSf3  output $OUTPUT_SECONDARY
workspace $WSf4  output $OUTPUT_SECONDARY
workspace $WSf5  output $OUTPUT_SECONDARY
workspace $WSf6  output $OUTPUT_SECONDARY
workspace $WSf7  output $OUTPUT_SECONDARY
workspace $WSf8  output $OUTPUT_SECONDARY
workspace $WSf9  output $OUTPUT_TERTIARY
workspace $WSf10 output $OUTPUT_TERTIARY
workspace $WSf11 output $OUTPUT_TERTIARY
workspace $WSf12 output $OUTPUT_TERTIARY


# WORKSPACE KEYBINDINGS
# ~~~~~~~~~~~~~~~~~~~~~

# Switch focus between workspaces
bindsym $mod+grave workspace number $WS0
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+minus workspace number $WS11
bindsym $mod+equal workspace number $WS12
bindsym $mod+F1    workspace $WSf1
bindsym $mod+F2    workspace $WSf2
bindsym $mod+F3    workspace $WSf3
bindsym $mod+F4    workspace $WSf4
bindsym $mod+F5    workspace $WSf5
bindsym $mod+F6    workspace $WSf6
bindsym $mod+F7    workspace $WSf7
bindsym $mod+F8    workspace $WSf8
bindsym $mod+F9    workspace $WSf9
bindsym $mod+F10   workspace $WSf10
bindsym $mod+F11   workspace $WSf11
bindsym $mod+F12   workspace $WSf12

# Move focused container to workspace (and switch to that workspace)
bindsym $mod+Shift+grave move container to workspace number $WS0;  workspace $WS0
bindsym $mod+Shift+1     move container to workspace number $WS1;  workspace $WS1
bindsym $mod+Shift+2     move container to workspace number $WS2;  workspace $WS2
bindsym $mod+Shift+3     move container to workspace number $WS3;  workspace $WS3
bindsym $mod+Shift+4     move container to workspace number $WS4;  workspace $WS4
bindsym $mod+Shift+5     move container to workspace number $WS5;  workspace $WS5
bindsym $mod+Shift+6     move container to workspace number $WS6;  workspace $WS6
bindsym $mod+Shift+7     move container to workspace number $WS7;  workspace $WS7
bindsym $mod+Shift+8     move container to workspace number $WS8;  workspace $WS8
bindsym $mod+Shift+9     move container to workspace number $WS9;  workspace $WS9
bindsym $mod+Shift+0     move container to workspace number $WS10; workspace $WS10
bindsym $mod+Shift+minus move container to workspace number $WS11; workspace $WS11
bindsym $mod+Shift+equal move container to workspace number $WS12; workspace $WS12
bindsym $mod+Shift+F1    move container to workspace $WSf1;        workspace $WSf1
bindsym $mod+Shift+F2    move container to workspace $WSf2;        workspace $WSf2
bindsym $mod+Shift+F3    move container to workspace $WSf3;        workspace $WSf3
bindsym $mod+Shift+F4    move container to workspace $WSf4;        workspace $WSf4
bindsym $mod+Shift+F5    move container to workspace $WSf5;        workspace $WSf5
bindsym $mod+Shift+F6    move container to workspace $WSf7;        workspace $WSf7
bindsym $mod+Shift+F8    move container to workspace $WSf8;        workspace $WSf8
bindsym $mod+Shift+F9    move container to workspace $WSf9;        workspace $WSf9
bindsym $mod+Shift+F10   move container to workspace $WSf10;       workspace $WSf10
bindsym $mod+Shift+F11   move container to workspace $WSf11;       workspace $WSf11
bindsym $mod+Shift+F12   move container to workspace $WSf12;       workspace $WSf12

# Move focused container to workspace (without switching the workspace)
bindsym $mod+Ctrl+Shift+grave move container to workspace number $WS0
bindsym $mod+Ctrl+Shift+1     move container to workspace number $WS1
bindsym $mod+Ctrl+Shift+2     move container to workspace number $WS2
bindsym $mod+Ctrl+Shift+3     move container to workspace number $WS3
bindsym $mod+Ctrl+Shift+4     move container to workspace number $WS4
bindsym $mod+Ctrl+Shift+5     move container to workspace number $WS5
bindsym $mod+Ctrl+Shift+6     move container to workspace number $WS6
bindsym $mod+Ctrl+Shift+7     move container to workspace number $WS7
bindsym $mod+Ctrl+Shift+8     move container to workspace number $WS8
bindsym $mod+Ctrl+Shift+9     move container to workspace number $WS9
bindsym $mod+Ctrl+Shift+0     move container to workspace number $WS10
bindsym $mod+Ctrl+Shift+minus move container to workspace number $WS11
bindsym $mod+Ctrl+Shift+equal move container to workspace number $WS12
bindsym $mod+Ctrl+Shift+F1    move container to workspace $WSf1
bindsym $mod+Ctrl+Shift+F2    move container to workspace $WSf2
bindsym $mod+Ctrl+Shift+F3    move container to workspace $WSf3
bindsym $mod+Ctrl+Shift+F4    move container to workspace $WSf4
bindsym $mod+Ctrl+Shift+F5    move container to workspace $WSf5
bindsym $mod+Ctrl+Shift+F6    move container to workspace $WSf7
bindsym $mod+Ctrl+Shift+F8    move container to workspace $WSf8
bindsym $mod+Ctrl+Shift+F9    move container to workspace $WSf9
bindsym $mod+Ctrl+Shift+F10   move container to workspace $WSf10
bindsym $mod+Ctrl+Shift+F11   move container to workspace $WSf11
bindsym $mod+Ctrl+Shift+F12   move container to workspace $WSf12
