THIS IS THE README FILE, YOU CAN ALSO FIND IN EVERY PACKAGE, WRITTEN BY HAL BURGISS
Multi Gnome Terminal ==================== This package contains an extended version of gnome-terminal with many, many enhancements over the original. In fact, the list of enhancements is longer than gnome-terminal's feature list in toto ;-) Feature Summary --------------- In addition to the features of gnome-terminal, MGT adds: -Multiple terminals opened within the same X window -Terminal windows can be split horizontally and vertically -Terminals can also be 'bonded' -Terminals can be moved to and from other MGT windows -Each terminal is 'Tabbed' for easy navigation -Notification of terminal buffer change (colors on Tabs) -Shading and tinting of the MGT window -Configurable key-bindings for MGT features and other uses -Configurable 'Commands' to initialize new terminals -Adds a Toolbar and Buttonbar, can be hidden or moved -Search the scrollback buffer -Text 'shadowing' for better contrast on pixmap/transparent Windows -A rich set of command line options for opening Tabs, splits, etc. -Improved Class handling with many enhancements. Class per Tab or Window. -Different Font and/or Foreground Color for Bold Text. -Adjust contrast and gamma correction for pixmap backgrounds. -Pseudo-graphics characters (like xterm). Requirements ------------ You need at least: gtk+-1.2.5 gnome-libs-1.0.59 gdk-pixbuf-0.7.0 Some hints for installing Multi Gnome Terminal ------------------------------------------------ 1) To build from tar archived sources: -untar sources -change to untarred sources directory -run: ./configure [ --prefix=/where/to/install ] -run: make -run: make install -to execute: multi-gnome-terminal [ options... ] & You can run './configure --help' to see what options are supported. The default install path is /usr/local. CVS sources require autoconf and automake. For CVS sources, run 'autogen.sh --prefix=/usr/local' instead of './configure' as above. Then 'make', etc. (Red Hat users see BUGS section below.) For CVS sources, you should also have Docbook (and related packages), and [open]jade installed, in order to build the User Guide (if not you will probably get very out of date, or no, Help files). Also, scroll-keeper, gettext, intltool, and libtool are requirements to build cvs sources. 2) For a proper installation you have to go in the directory where 'mgt-pty-helper' executable is installed and: chown root.tty mgt-pty-helper chmod g+s mgt-pty-helper This way 'finger' and 'who' for example will show all terminals opened by MGT. The group owner needs to be whoever the group of the utmp/wtmp logs is, which may differ from distro to distro. On Redhat, it is utmp for instance. RPM (and possibly other packages) should do this for you. 3) If you haven't installed MGT in the GNOME standard directory you have to copy '
/etc/CORBA/servers/multi-gnome-terminal.gnorba' in the ' /CORBA/servers/' dir of your system. For SuSE 7.x for example =/etc/opt/gnome. This is needed if you want to use '--start-factory-server/--use-factory' options. 4) Red Hat users (and other distros based on RH) may suffer non-responsive Home and End keys. This is solved by setting CFLAGS like: 'make CFLAGS=-DREDHAT_TERM'. (The supplied RPMs do this for you.) Command Line Options -------------------- Please see the man page, or User Guide/Terminal Help for the many options, including many to open new Windows, Tabs and split terminals from the command line. Great for scripting! Using Multi Gnome Terminal -------------------------- Multi Gnome Terminal offers many useful and powerful extensions to gnome-terminal. The extensions are these: 1) Multi terminal support (like KDE's konsole), which I implemented using GtkNotebook widget. This means that in each window one can have many terminals, not just one! Each terminal has its own 'Tab' for easy navigation between available terminals in that window. Each Window/Tab can also be split horizontally or vertically. 2) Switch to other terminals using: - Shortcuts: SHIFT-Right: next terminal SHIFT-Left: previous terminal CTRL- where n=0....9: switch to n-th terminal direct - buttons on the bottom of the screen (which I called "buttonbar") - buttons in the toolbar - Clicking on notebook Tabs (bookmarks) - using notebook popup menu (right click on Tabs) 3) Change of the title of a terminal (notebook label text) using: - buttons on the bottom of the screen (buttonbar) - buttons in the toolbar - menubar (File) - Shortcut: CTRL-F2 4) Creation of new terminals using: - buttons on bottom of the window (buttonbar) - popup menu (Right Clicking on the terminal) - menubar - Shortcuts (using letter "L"): CTRL-l r: root shell CTRL-l n: bash shell CTRL-l m: Midnight Commander 5) Execution of commands in new terminals: these commands can be edited using the "Edit Commands" window (created with glade -> see edit_cmd.glade). One can open the Command window using the menubar item "Edit Commands" under Settings (Settings->Edit Commands). This Window contains a List of all existing commands, and also is where you can add new ones, or remove existing ones (this is inspired by screen). Notice that the Command name (first column in the List) is what appears in the menus. The 'Commands' are used to open new terminal windows within the parent window (or Tab), and optionally run a command there (e.g. a shell script). The first Tab is for general commands. The second Tab is used for commands to open new tabs on startup (if the 'Don't Open Startup Tabs' button is unchecked). These can be copied from the first Tab by highlighting a selection, and then using the 'Get' button. The third Tab is for general New Term Menu configuration, and enabling the built-in shell Commands. Any defined command should either start an interactive shell, or at least include some command to keep the shell from exiting (e.g. 'read'), or else the terminal will close immediately after command execution. Example: add a command with 'name' (first column) of 'my test', and a 'command' of 'myscript' (third column). 'myscript' is a script: #/bin/sh ls read Or: #/bin/sh ssh -t $some_host pine Then click 'update', 'apply', and 'OK', and it appears on the 'New Term' menu. You can think of something better ;-) As an alternate approach, the included mgt-helper script can be used to overcome this, and other problems. E.g.: mgt-helper -x ls && read, or mgt-helper -x ls | less. 6) Hide/Show/Move toolbar, buttonbar, scrollbar and menubar using the Preferences window or popup menu (to satisfy the taste of everyone!). 7) Shortcuts for user-defined commands: If you type CTRL-F1 n (n =0....9), you execute the n-th command in a new terminal. 8) Each terminal notifies its state, i.e. if it's display is changing or it has changed or it's unchanged, by using different colors. These can be customized, as can Tab labels. The default is 'red' if the terminal is actively changing, then turns to 'blue' to indicate that the new activity has stopped, but not viewed yet. 9) Using buttons on the buttonbar or on the toolbar you can easily reorder Tabs moving the current Tab to right or to left. 10) You can now tint and shade the background image using 'Settings->Preferences->Image'. The background must be set to 'Transparent' for shading and tinting. 11) Like gnome-terminal, MGT supports a "Class" concept, which is basically a config preferences profile. You can have different fonts, colors, backgrounds, etc for each Class. Then activate a given Class either at startup (--tclass or --wclass) or interactively from the Settings menu. As of 1.6.0, Classes can be specified for all Tabs of that Window, or that Tab only! This means each Tab (and all terminals belonging to that Tab) can have their own fonts, colors, backgrounds, etc. 12) You can remove Classes that you don't need any more, in 'Settings->Preferences->General'. New Classes can be added here too by cloning the settings of the currently active Class. 13) Each terminal can set its window Title which changes if you switch terminals. You can also place the window Title on Tabs, and you can even choose the maximum text length for Titles. 14) You can change the Tab position or even hide Tabs if you prefer using the Preferences window (Settings->Preferences->General->Tab position). 15) Checking 'Settings->Preferences->General->Title Tabs' window title will be used also as Tab label, you can even choose the maximum number of characters to be printed using the textbox on the left. So for applications that change the Window title (like vim), this is reflected on the Tab label. 16) The title of a main MGT window is by default MGT - [ ... ], using the command line option '--title' you can change MGT to whatever you like. 17) Command Grouping: in 'Settings->Edit Commands' windows if you use a '/' character you can create sub-menus. For example a name of 'Shells/bash', will create a new sub-menu named 'Shells' in which you'll find the command called 'bash', that's really useful if you have many commands and you want to keep the New Term menu short and organized. These can be nested like: 'Projects/Sourceforge/MGT', to give a menu three layers deep. 18) Key Bindings: The shortcut keys used for various MGT functions and other useful purposes can be customized from the 'Settings' menu (Settings->Keybindings) to the user's preferences. Any user defined 'Commands' are available as Keybindings. Select 'Command -> New Tab' from the Actions list, then click the list button next to the 'String' field. 19) The terminal scrollback buffer can be searched from the 'Edit' selection of the menubar. 20) Currently opened Tabs can now be saved and various related configuration options in 'Settings->Preferences->Tabs'. Separate, user definable Tabs that are to be initialized during startup are configured in 'Settings->Edit Commands' in the lower section. 21) MGT now has multi-byte support. See 'Settings->Preferences-General'. 22) Text shadowing for better font contrast on transparent or pixmap backgrounds. Select from 'Settings->Preferences->Image'. The shadow color can be be set under 'Preferences->Colors'. 23) To split the terminal window vertically or horizontally, select 'Menubar->New Term', then choose which shell command you want. Then there is a sub-menu, select either HSplit or VSplit. The new terminal will be part of the parent Tab. Also, there are command line options that will do the same. 24) Terminals that are 'bonded' have the the command from one terminal replicated in all 'bonded' terminals. See 'All bonded' from the File menu. Use with caution, as this does not play well with all commands. For instance, compiling in bonded terminals will result in multiple, simultaneous compile sessions of the same sources. 25) New Windows and New Tabs can be created with command line options now. Example: multi-gnome-terminal --add-window --tname=Main --tcommand=vi \ --tpath=$HOME/multignometerm --tclass=Default --add-tab \ --tname=mgt1 --hsplit --tname=mgt2 --vsplit --tname=mgt3 \ --tcommand=mc & This opens a new window and one Tab with vi running, and then adds another Tab (mgt1) which is split horizontally first, and then vertically, where Midnight Commander is launched. 26) Terminals can be moved from one window to another. The target window must have been opened either via the 'New Window' feature, or with --use-factory command line option. This is done from the 'New Term' menu. Select either 'Split' or 'New Tab with...' from the window that will be the destination. Then left click the terminal from the source window and it magically appears in the other window. 27) A terminal can be opened in 'View' mode. Such terminals echo the output ONLY from one terminal to a 'read only' terminal in another MGT window. 28) Bold text fonts can be different than normal text fonts, and can be displayed in a different color. See and 'Preferences -> General' and 'Preferences -> Colors'. 29) The contrast and gamma correction of Pixmapped backgrounds can be adjusted from 'Preferences -> Image'. Upgrading --------- This section will address possible configuration issues that might arise from upgrading. There are always new features ;-) See NEWS for new features, and major bug fixes. And ChangeLog for all the agonizing, gory details. 1.4.x -> 1.5.x -------------- There are various new keybinding actions available in 1.5.0. If upgrading, your list of defined shortcuts will not reflect the new actions (e.g. open a new split Tab). The easiest way to incorporate new actions, is to delete the old ones, and add new ones from the 'Actions' list as replacements. The are many, many new command line options for opening and moving terminals. This can be done for the current, active window, or other windows (of the same process, i.e. opened with 'New Window'). 1.5.x -> 1.6.x -------------- There are *major* changes to Class handling. There are now Window and Tab Classes, which give much more flexibility for having custom Tab configurations. As a result of these changes, any classes defined in earlier MGT versions, will be migrated as tclass classes (Tab classes). This will break any start-up Tab configuration (unavoidable, sorry). Tclass attributes are those attributes that can be defined on a per Tab basis. See 'Settings -> Tab Preferences' to get an idea of which attributes belong to tclass. The only wclass (window class) available after upgrading, is 'default'. To enable any other wclass classes so as to have Window Classes, these will have to be defined from scratch. Wclass names and Tclass names can be the same, e.g. you can have tclass=myclass and wclass=myclass and both can be active at the same time. But the attributes of each Class are still mutually exclusive. Startup Tabs are still defined in Edit Commands, and you can set up startup Tabs to belong to both tclass and wclass from here. The former Preferences configuration Window is now split into two separate Windows: Win Preferences and Tab Preferences. Tab Class is for all attributes that can be associated with a Tab, e.g. backgrounds, fonts, etc. Win Class is for attributes that logically belong to a Window such as whether the Toolbar is enabled or not. If this sounds confusing, read the User Guide, for a more detailed accounting. mgt-helper ---------- mgt-helper is a bash script now bundled with MGT that adds additional functionality at the shell level. Since it runs in the bash world, it can do things that MGT cannot do [easily]. See 'mgt-helper --usage' for what it might be useful for. Some highlights: mgt-helper -h , can be used to create a unique bash history file for that terminal. Use with Edit Commands. mgt-helper -u,-f,-m,-F, can be used as a GNOME URL/Document Handler, allowing text based clients to open in a split or new Tab. Set up in GNOME. Example entry from ~/.gnome/Gnome: http-show=mgt-helper -u "%s" mgt-helper -x, to run compound shell commands from Edit Commands, rather than having to write a simple script, example: mgt-helper -x ps | less && echo Say goodnight now ; echo goodnight now works. See the mgt-helper man page or User Guide for more info. Or read the script ;-) Bugs ---- Please find ;-) When reporting bugs, please include specific details: MGT version, X version, distribution, GTK and GNOME versions, relevant configuration options (eg transparent background with text shadowing, etc), and most importantly, steps that will reproduce the problem. ToDo ---- The big item on the list: GNOME-2: There currently is no support for GNOME-2. This is underway now, but is a complex task, and will take time and effort :( Volunteers to help with porting are welcome ! Possibly a beta will be ready by late summer or early fall '02. 1.6.x will be the last GNOME 1.x release. Other items on the wish-list for after GNOME-2 port: -Better support for saving split terminal configurations. -TrueType font and anti-aliasing support. -utf8 support. -Print via GNOME Print. -Detach a session (like screen does), and resume on a later login. Bug Reporting, Feature Requests and Mailing Lists ------------------------------------------------- Please report bugs: http://sourceforge.net/tracker/?group_id=34480&atid=411232 Feature requests: http://sourceforge.net/tracker/?atid=411235&group_id=34480&func=browse Mailing lists: http://sourceforge.net/mail/?group_id=34480 Patches: http://sourceforge.net/tracker/?atid=411234&group_id=34480&func=browse Home Page: http://multignometerm.sourceforge.net/ Documentation ------------- The User Guide has much more complete information on MGT configuration and usage. It can be accessed through the Help Menu->Terminal Help. There is only an English version, sorry (translators wanted!). Copyright and License --------------------- Written by and Copyright (C) 2001 Cristiano De Michele This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. The GNU General Public License should be included with this file. If not, you can view it at http://www.gnu.org/copyleft/gpl.html or write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. enjoy, Cristiano De Michele ------------------------------------------------------------------------- $Id: README,v 1.37 2002/08/31 00:33:06 hal9 Exp $