distro specific fixes
[distro-setup] / i3-sway / gen
index cf262ad756d83809b60fa87543922999c0aa6d82..fba0a674616d7ae4e0e21143f181bab0ae03982a 100755 (executable)
@@ -37,3 +37,52 @@ monitor_count=$(xrandr|grep -c ' connected')
 if [[ $1 == bar ]] || (( monitor_count >= 2 )); then
   cat bar.conf >> $dir/config
 fi
+
+move_arg=right
+if xrandr --listmonitors | awk '$2 == "BIG-RIGHT"' |grep . >/dev/null; then
+  cat >>$dir/config <<'EOF'
+# by default, new workspaces are created on whatever screen doesn't have
+# one active or else the current one. That is annoying, I have one
+# primary monitor, I don't want a new workspace created on secondary
+# monitor just because I happen be focused on it. This fixes that.
+workspace 1 output primary
+workspace 2 output BIG-LEFT
+workspace 3 output BIG-RIGHT
+workspace 4 output BIG-RIGHT
+workspace 5 output BIG-RIGHT
+workspace 6 output BIG-RIGHT
+workspace 7 output BIG-RIGHT
+workspace 8 output BIG-RIGHT
+workspace 9 output BIG-RIGHT
+workspace 10 output BIG-RIGHT
+EOF
+  move_arg="BIG-RIGHT primary"
+else
+  mon2=$(xrandr | awk '$2 == "connected" && $3 != "primary" {print $1}')
+  if [[ $mon2 ]]; then
+    cat >>$dir/config <<EOF
+# by default, new workspaces are created on whatever screen doesn't have
+# one active or else the current one. That is annoying, I have one
+# primary monitor, I don't want a new workspace created on secondary
+# monitor just because I happen be focused on it. This fixes that.
+workspace 1 output primary
+workspace 2 output $mon2
+workspace 3 output $mon2
+workspace 4 output primary
+workspace 5 output $mon2
+workspace 6 output $mon2
+workspace 7 output $mon2
+workspace 8 output $mon2
+workspace 9 output $mon2
+workspace 10 output $mon2
+EOF
+  fi
+fi
+
+ # shellcheck disable=SC2016
+echo 'bindsym $mod+Shift+t move workspace to output '$move_arg >>$dir/config
+
+if [[ $I3SOCK ]]; then
+  echo $0: i3-msg reload
+  i3-msg reload
+fi