Each window can contain a number of tabs, each with its own terminal. Unlike gnome-terminal and earlier versions of ROXTerm, the tab bar is always shown by default, even if there is only one tab, to avoid resizing inconsistencies, but this is configurable.
If you experience a problem with tab labels shrinking after dragging tabs so that they only have room to display '...', try making sure the pointer is over the body of a terminal when you drop a dragged tab, not over the tab bar area.
When the menu bar is hidden the popup menu duplicates the same items as in the menu bar; this gives you full access to all the functions with the menu bar hidden. The menu bar is effectively redundant but provided to make ROXTerm appear more straightforward for first-time users. It can be turned on and off for a particular window or more permanently by using the configuration manager.
The popup menu also allows email and web addresses to be opened in external applications if such an address is highlighted by the pointer being over it.
When the pointer is over an address that ROXTerm recognises as a URI (typically a web URL or email address) it is highlighted by underlining and a change of pointer shape. You can open the address either by right-clicking on it and choosing Open... in the menu or by holding Ctrl and left-clicking. The applications used to handle these addresses may be set with the configuration tool, otherwise it will try to find a suitable default. Also by holding Ctrl you can drag a URI to pass it to another application which is willing to accept it as a URI or text; dragging it into the same window it came from pastes the address back in.
Note that if the pointer is over the server address portion of a URL it only highlights the address, omitting the filename; move the pointer over the filename to get the whole URL. Similarly you can highlight an email address with or without a leading mailto:.
As of version 2.9.1 ssh URI and hostname matching is supported. URIs including a path name can only be copied to the clipboard; in the absence of a pathname ROXTerm can also start a ssh session to the described host. Plain hostnames are also matched, but only if they start with "ssh" or end with ".local" or ".lan". Attempting to match more generic hostnames would cause too many false positives. If you regularly use a non-matching ssh server consider adding a matching alias in /etc/hosts.
You can now drag items onto terminal windows. Text objects are fed to the terminal as if typed. Files and URIs have their location (filename or URI) fed in rather than the object's contents. Graphical files can also be dragged onto the appropriate area of the configuration manager to set terminal background images. Holding down Ctrl while dragging a highlighted URI allows the address to be dragged to another application.
You can now drag tabs by their labels to reorder them within a window or to move them to another ROXTerm window or, by dropping them outside a ROXTerm window, move tabs to new windows of their own. Use mouse button 3 (the right button) to move an unselected tab without selecting it. Note that versions prior to 1.9 used button 2 (middle). Button 2 is now a shortcut to paste the contents of the clipboard as the tab's name.
New in version 3.1.1 is the ability to save named user sessions. Click Save Session... in the File menu to name your session and save it. A session saves the state of current windows and tabs but not the terminals' text content. A session can be restored with roxterm's --session command-line option, or will be restored automatically if named 'Default'. Leaving the field blank is equivalent to 'Default'.
Configuration is based on named profiles so you can save different sets of options and switch between them quickly. There are profiles for general options, colour schemes and keyboard shortcuts (sometimes also referred to as accelerators). Colour Schemes and Profiles apply to one tab at a time, but Keyboard Shortcuts apply to all tabs in the same window to avoid the potential for confusion from different tabs having different shortcuts for switching tabs. New windows and tabs inherit settings from the window/tab they were opened from.
Prior to version 1.15.1 all tabs had to share the same Profile, but this has been changed. In consequence a profile's font and other settings which affect a terminal's size may be overridden to keep geometry consistent across a number of tabs in one window.
The Preferences menu allows you to select the current profile etc (this setting will not be remembered; use the configuration manager to set the defaults), open the configuration manager to edit the current profile or colour scheme or to manage all settings. In the configuration manager you can select one of the four types of option groups and edit, copy, delete or rename it. Each item also has a radio button. The item with the selected radio is the default for new terminals. Note that character encodings are handled slightly differently.
There is no editor for keyboard shortcuts; instead, prior to GTK+ 3.10 they can be changed by pressing keys while the mouse is hovering over a menu item in the terminal. This feature must be enabled with the "Enable editing" option under the "Keyboard shortcuts" section of the Configuration Manager. There is also a "hidden" global GNOME setting to determine whether GTK applications can have their shortcuts edited in this way. The global option is managed by gconf, which roxterm is not linked with, so in some circumstances the global and roxterm options may conflict with each other.
The above method for editing shortcuts has been disabled from GTK+ 3.10 onwards. Instead ROXTerm 2.9.1 onwards allows the shortcuts profiles to be edited in a text editor, either via the Configuration Manager or from a terminal's menu (Preferences submenu). The action names correspond to the localised labels used in the menu items. The new shortcuts should automatically be reloaded when you save the file. Alternatively, selecting a scheme in the Preferences menu now forces it to be reloaded.
If you have GTK+ 3.10 or newer, but can't upgrade from an older ROXTerm you will have to open the config files in a text editor yourself, then restart roxterm. The default file is ~/.config/roxterm.sourceforge.net/Shortcuts/Default. If one does not already exist you can copy the Default file provided with roxterm and use it as a template. This can be found as Config/Shortcuts/Default in the source tree, or /usr/share/roxterm/Config/Shortcuts/Default in most installed packages.
You can also run the configuration manager by selecting "Configure..." in ROX's menu for the ROXTerm application or by running roxterm-config if ROXTerm has been installed conventionally.
Configuration files can easily be swapped with other users. Each profile, colour scheme and keyboard shortcut scheme has a single file associated with it; saving a valid file in the appropriate directory will create a profile etc with the same name as the file.
The directory locations for these configuration files follow the XDG Base Directory specification. In descending order of priority they are:
Files will be loaded from any and all the above locations; files in high priority locations shadow ones with the same name in lower priority locations. Files are only saved in the first location.
Within any or each of those locations, profiles are saved in a "Profiles" subdirectory, colour schemes in "Colours" and keyboard shortcut schemes in "Shortcuts". A file called "Globals" contains miscellaneous options which don't fall into the above categories, including the default profile etc for new terminals.
ROXTerm accepts a number of command-line options. Run:
roxterm --help
for a full list.
From version 1.1.0 ROXTerm defaults to using only one process for all terminals so that you can drag tabs between windows. If you run the command again it sends a D-BUS message to the existing process to signal it to open a new terminal, and the second process exits. To make a roxterm command run in its own separate process use the --separate option.
Note that the --colour_scheme and --shortcut_scheme options have been replaced by --colour-scheme and --shortcut-scheme respectively in 1.7.0 (underscores changed to hyphens) but the old versions remain usable for backwards compatibility.
Like any VTE-based terminal, you can apply custom GTK styles on ROXTerm terminals.
A common use-case is to add padding around the terminal content. You can do this by adding the following to your global GTK stylesheet in ~/.config/gtk-3.0/gtk.css:
VteTerminal, vte-terminal { -VteTerminal-inner-border: 20px; padding: 20px; }
Per-profile styling is possible by targeting specific classes in the GTK stylesheet. For example, if you want to apply a different padding to a profile named "Minimal", while still keeping your default padding, you can add this style rule after the previous one:
VteTerminal.roxterm-Minimal, vte-terminal.roxterm-Minimal { -VteTerminal-inner-border: 2px; padding: 2px; }
When a profile name contains spaces, the generated class replaces them with hyphens.
From version 1.14.0 advanced users can use D-Bus to configure terminals from other applications and scripts. There are three D-Bus methods especially for this purpose; they require an id code to target a specific terminal; each terminal's id code can be read from the environment variable ROXTERM_ID in the shell/application running in it. The D-Bus object path and interface for the methods are "net.sf.roxterm.Options" and "/net/sf/roxterm/Options" respectively. The methods are:
SetProfile("id", "profile_name")
Ask the terminal to use the named profile. Note that any other tabs in the same window will be updated to the same new profile. All tabs in one window must have the same profile so that their font size and therefore terminal size remain consistent.
SetColourScheme("id", "scheme_name")
Ask the terminal to use the named colour scheme. Tabs sharing the same window may have different colour schemes from each other.
SetShortcutScheme("id", "scheme_name")
Ask the terminal to use the named keyboard shortcut scheme. Tabs sharing the same window must also share the same shortcut scheme.
Example using dbus-send in a shell script:
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.SetColourScheme string:$ROXTERM_ID string:GTK
You may also send D-Bus signals to change individual options within a named profile or colour scheme using the methods StringOption, IntOption (also used for boolean options) and FloatOption. All terminals using the named profile or colour scheme are affected, but only temporarily. The options are not saved for new terminals. The methods all take 3 arguments:
To see which option names you can use, check the config files, from which the types can be deduced.
Example using dbus-send in a shell script:
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.StringOption \ string:Colours/GTK string:background 'string:#ffffff'
A third possible use is to notify roxterm that a profile, colour scheme or shortcuts scheme has been changed by an external program and all terminals using that profile etc need to reload it:
OptionsChanged("family_name", "profile_name")
where family_name is one of "Profiles", "Colours" or "Shortcuts". For example:
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.OptionsChanged \ string:Profiles string:Default