Open Terminal With Specific Size And Location

Discussion in 'Mac Apps and Mac App Store' started by sfordjasiri, Nov 5, 2012.

  1. macrumors newbie

    Joined:
    Nov 5, 2012
    #1
    I have used Unix/Linux for many years, recently on Mac hardware using VMWare to run Ubuntu. I am trying to make the switch to using the Mac OS "directly". I've got VIM working, my .bash_profile shell environment loading properly, command completion, command history editing using VI working, and so on. So far, so good.

    One of the things I have done under Unix/Linux for years is have a script that opens several terminal windows of particular sizes at particular locations on a display. (I tend to work with VIM and other command line tools.) I would like to do the same in Mac OS.

    I can see how to set up a "Terminal" with a particular name using the Mac OS GUI to have a certain number of rows, but what I want to do is have a script, (I assume it has to be an Applescript), that opens up several windows of different sizes at different locations.

    I just don't see how you pass command line parameters to the "Terminal" application like you would with Gnome Shell, for example. For example, I have a bash script named "setupTerms2560x1600" which I will run when I have a 2560x1600 display to create a bunch of terminals of different sizes and different locations:

    gnome-terminal --geometry=80x42+1+23 &
    gnome-terminal --geometry=80x42+1901+23 &
    gnome-terminal --geometry=80x42+1+800 &
    gnome-terminal --geometry=80x42+1901+800 &
    gnome-terminal --geometry=80x85+276+23 &
    gnome-terminal --geometry=80x85+1000+23 &
    gnome-terminal --geometry=80x85+1724+23 &

    Am I trying to do something that Mac OS, or the Terminal application does not want me to do?

    Should I install some other sort of Terminal application that is more Linux like? I tried out iTerm.

    Is the verbose Applescript way of doing things the only way to set parameters of an application you are starting? For example, in the iTerm application help I see example Applescript like this:

    -- reposition window and name it
    set the bounds of the first window to {100, 100, 700, 700}
    set the name of the first window to "A Window Title"

    To me, it seems like I have to run the Applescript editor application to figure out what parameters I can set on an application.

    And, in general, where I can search for these sorts of answers? (Besides this forum.) For example, I assume there are forums that ex-Windows programmers like to use because they can ask questions that make sense to people who are coming from a Windows background. I'm coming from a Unix/Linux background. Is there an applicable forum for us?

    Thanks for any specific or general help.
     
  2. macrumors P6

    Weaselboy

    Joined:
    Jan 23, 2005
    #2
    I think Applescript will do what you want with the "bounds" command.

    Code:
    tell application "Terminal"
        set bounds of window "Terminal" to {0, 0,1024, 768}
    end tell
    The first two numbers are horizontal and vertical positions of the top left corner, and the other two are the bottom right corner.

    Credit: http://hints.macworld.com
     
  3. thread starter macrumors newbie

    Joined:
    Nov 5, 2012
    #3
    Found a solution

    Thanks, your suggestion gave me the buzzwords I needed to find the answers I needed on some other websites. The script at the end of this posting shows how I did it, but I'm sure I am creating the Terminals in a funny way. Another solution I think is to simply use the Terminal application's Window->Save Windows As A Group... menu item to save the windows size and locations.


    -- Create three Terminal windows.
    -- The first Terminal is a tall window.
    -- The second Terminal is medium height and is to
    -- the tall Terminal's right.
    -- The third Terminal is below the medium Terminal
    -- and to the right of the tall Terminal.
    --
    tell application "Terminal"

    -- Running the "clear" command seems to create a
    -- new Terminal window, but I'm sure there is a
    -- better way.
    --
    do script "clear"

    -- Set the position/size of the Terminal window
    -- we just created. Top left corner at x=40, y=40
    -- and make its width 500 and height 1200 pixels.
    -- Note that Mac OS menu bar uses about 20 pixels
    -- of the top of the screen.
    -- So, a Y position of 0 to 20 is hidden "under" the menu bar.
    set the bounds of the front window to {40, 40, 539, 1239}

    -- Open a medium sized Terminal window to the right of
    -- the large window. Width = 500 pixels,
    -- height = 800 pixels.
    --
    do script "clear"
    set the bounds of the front window to {540, 40, 1039, 839}

    -- Open a small Terminal window below the medium window.
    do script "clear"
    set the bounds of the front window to {540, 840, 1039, 1239}

    end tell
     

Share This Page