Forráskód Böngészése

fix(skhd): update `open_applications.zsh` to be sourceable

Joe 1 éve
szülő
commit
6cc4f62bfa
1 módosított fájl, 26 hozzáadás és 20 törlés
  1. 26 20
      .scripts/open_application.zsh

+ 26 - 20
.scripts/open_application.zsh

@@ -1,17 +1,18 @@
 #!/bin/zsh
-TERMINAL_PATH=/Applications/Alacritty.app/
-BROWSER_PATH=/Applications/Firefox.app/
-FINDER_PATH=/System/Library/CoreServices/Finder.app/
-COMMUNICATIONS_PATH=/Applications/Slack.app/
-MUSIC_PATH=/Applications/Spotify.app/
-NOTETAKING_PATH=/Applications/Obsidian.app/
-PROJECTTRACKING_PATH=/Applications/Asana.app/
-PROJECTDOCS_PATH=/Applications/Notion.app/
-VIDEOCALL_PATH=$HOME/Applications/Google\ Meet.app/
+export TERMINAL_PATH=/Applications/Alacritty.app/
+export BROWSER_PATH=/Applications/Firefox.app/
+export FINDER_PATH=/System/Library/CoreServices/Finder.app/
+export COMMUNICATIONS_PATH=/Applications/Slack.app/
+export MUSIC_PATH=/Applications/Spotify.app/
+export NOTETAKING_PATH=/Applications/Obsidian.app/
+export PROJECTTRACKING_PATH=/Applications/Asana.app/
+export PROJECTDOCS_PATH=/Applications/Notion.app/
+export VIDEOCALL_PATH=$HOME/Applications/Google\ Meet.app/
 
-ALT_COMMUNICATIONS_PATH=/Applications/Signal.app/
-ALT_NOTETAKING_PATH=/Applications/Obsidian.app/
+export ALT_COMMUNICATIONS_PATH=/Applications/Signal.app/
+export ALT_NOTETAKING_PATH=/Applications/Obsidian.app/
 
+valid_selection=true
 case $1 in
     terminal)
         open $TERMINAL_PATH ;;
@@ -32,16 +33,21 @@ case $1 in
         open $PROJECTTRACKING_PATH ;;
     projectdocs)
         open $PROJECTDOCS_PATH ;;
+    *)
+        valid_selection=false
 esac
 
-# If there are 3+ windows in the space, then make selected the largest window
-windows=$(yabai -m query --windows)
-active_space=$(jq 'map(select(."has-focus"==true)) | map(.space) | first' <<< $windows)
-shared_windows=$(jq --argjson space "$active_space" 'map(select(.space==$space)) | map( { ("size"): (.frame.w * .frame.h), "id": .id, "focus": ."has-focus", "title": .title } ) | sort_by(.size)' <<< $windows)
-if [ $(jq 'length' <<< $shared_windows ) -gt 2 ]; then
-    focused_window=$(jq 'map(select(.focus)) | first | .id' <<< $shared_windows)
-    largest_window=$(jq 'last | .id' <<< $shared_windows)
-    if [ "$focused_window" != "$largest_window" ]; then
-        yabai -m window $focused_window --swap $largest_window
+if [ "$valid_selection" = true ] ; then
+    # If there are 3+ windows in the space, then make selected the largest window
+    windows=$(yabai -m query --windows)
+    active_space=$(jq 'map(select(."has-focus"==true)) | map(.space) | first' <<< $windows)
+    shared_windows=$(jq --argjson space "$active_space" 'map(select(.space==$space)) | map( { ("size"): (.frame.w * .frame.h), "id": .id, "focus": ."has-focus", "title": .title } ) | sort_by(.size)' <<< $windows)
+    if [ $(jq 'length' <<< $shared_windows ) -gt 2 ]; then
+        focused_window=$(jq 'map(select(.focus)) | first | .id' <<< $shared_windows)
+        largest_window=$(jq 'last | .id' <<< $shared_windows)
+        if [ "$focused_window" != "$largest_window" ]; then
+            yabai -m window $focused_window --swap $largest_window
+        fi
     fi
 fi
+