Search code examples
linuxbashunixgnome-terminal

Starting terminals in a specific way?


I am trying to write a script to let me start a set of terminals of specific size at a specific position on screen (for instance, four terminals spread across my screen in a grid model each active). If there is already a tool that can do this, that would be great too... Any suggestions?


Solution

  • I'm sure there will be better answers but one thing I did find useful was this:

    gnome-terminal --geometry=130x25+20+525

    So on my large monitor, the following is giving me two nice terminals:

    #!/bin/sh
    
    gnome-terminal --geometry=150x125+20+25
    gnome-terminal --geometry=150x125+1020+25
    

    And the following is the explanation from the man page for quick reference:

       -geometry WIDTHxHEIGHT+XOFF+YOFF 
    
       (where WIDTH,  HEIGHT,  XOFF,
       and  YOFF are numbers) for specifying a preferred size and location for
       this application's main window.
    
       The WIDTH and HEIGHT parts of the geometry  specification  are  usually
       measured  in either pixels or characters, depending on the application.
       The XOFF and YOFF parts are measured in pixels and are used to  specify
       the  distance  of  the window from the left or right and top and bottom
       edges of the screen, respectively.  Both types of offsets are  measured
       from  the indicated edge of the screen to the corresponding edge of the
       window.  The X offset may be specified in the following ways:
    
       +XOFF   The left edge of the window is to be placed XOFF pixels in from
               the left edge of the screen (i.e., the X coordinate of the win-
               dow's origin will be XOFF).  XOFF may  be  negative,  in  which
               case the window's left edge will be off the screen.
    
       -XOFF   The  right  edge  of  the window is to be placed XOFF pixels in
               from the right edge of the screen.  XOFF may  be  negative,  in
               which case the window's right edge will be off the screen.
    
       The Y offset has similar meanings:
    
       +YOFF   The  top  edge of the window is to be YOFF pixels below the top
               edge of the screen (i.e., the Y coordinate of the window's ori-
               gin  will  be  YOFF).   YOFF may be negative, in which case the
               window's top edge will be off the screen.
    
       -YOFF   The bottom edge of the window is to be YOFF  pixels  above  the
               bottom edge of the screen.  YOFF may be negative, in which case
               the window's bottom edge will be off the screen.
    

    This approach is very simple and using a command like this:

    gnome-terminal -x sh -c "ls|less"

    In addition to the above commands, one can do even more fancy things :) For instance, you can make it launch itself into a specific directory (very useful if you're editing source code in one window and debugging using the other like I am).