Browse Source

Make a cleaner version of the OS X tab function

Ben Langfeld 14 years ago
parent
commit
c52fea8082
1 changed files with 28 additions and 7 deletions
  1. 28 7
      plugins/osx/osx.plugin.zsh

+ 28 - 7
plugins/osx/osx.plugin.zsh

@@ -1,11 +1,32 @@
+function savepath() {
+  pwd > ~/.current_path~
+}
+
 function tab() {
-  osascript 2>/dev/null <<EOF
-    tell application "System Events"
-      tell process "Terminal" to keystroke "t" using command down
-    end
-    tell application "Terminal"
+savepath
+osascript >/dev/null <<EOF
+on do_submenu(app_name, menu_name, menu_item, submenu_item)
+    -- bring the target application to the front
+    tell application app_name
       activate
-      do script with command "cd \"$PWD\"; $*" in window 1
     end tell
+    tell application "System Events"
+      tell process app_name
+        tell menu bar 1
+          tell menu bar item menu_name
+            tell menu menu_name
+              tell menu item menu_item
+                tell menu menu_item
+                  click menu item submenu_item
+                end tell
+              end tell
+            end tell
+          end tell
+        end tell
+      end tell
+    end tell
+end do_submenu
+
+do_submenu("Terminal", "Shell", "New Tab", 1)
 EOF
-}
+}