ROXTerm is a terminal emulator intended to provide similar features to gnome-terminal, based on the same VTE library. It was originally designed to have a smaller footprint and quicker start-up time by not using the Gnome libraries and by using a separate applet to provide the configuration GUI, but thanks to all the features it's acquired over the years ROXTerm can probably now be accused of bloat. However, it is more configurable than gnome-terminal and aimed more at "power" users who make heavy use of terminals.
It still supports the ROX desktop application layout it was named after, but can also be installed in a more conventional manner for use in other desktop environments.
Visit the github project page to download snapshots. For a stable version use the latest numerical tag. If you are using an old LTS distro with a GTK3 version lower than 3.20 you should use roxterm 3.3.1, preferably from your distro's package manager. In case your distro is really old, roxterm 2.x supports GTK2.
You need the libraries for GTK+3 which is pretty much standard on all free Unix derivatives these days. It needs at least version 2.16 of glib and GTK+ 3.20. You will also need vte/libvte (at least version 0.48 of vte-2.91), a GNOME component. D-BUS is also required (see below).
Para compilar ROXTerm necesitará los archivos de cabeceras de las librerías anteriores. En los sistemas de paquetes se incluyen habitualmente dentro de paquetes cuyos nombres terminan en «-dev» o «-devel».
Prior to 3.5.0 ROXTerm used a bespoke build system called maitch. This requires python and the python 'lockfile' module. 3.5.0 uses the more conventional CMake.
D-Bus is a messaging system which ROXTerm uses to connect terminals with its configure tool. ROXTerm uses the "session" bus, which should be started along with your desktop environment. Current versions of ROX, GNOME and KDE/Plasma session managers all launch D-Bus. If you use some other session/desktop/window manager which doesn't launch D-Bus you can start it by inserting something like this near the start of your .xinitrc or .xsession:
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then eval `dbus-launch --sh-syntax --exit-with-session` export DBUS_SESSION_BUS_ADDRESS fi
To install ROXTerm for ROX all you need to do is check it out or unpack it into your Apps directory and run it from there, but you will probably want to rename the folder to ROXTerm. For other systems ROXTerm may be installed in the typical CMake way:
mkdir build cd build cmake .. make -j 4 sudo make install
The -j 4 is optional, to accelerate the build by using
multiple processing threads. Replace the 4 with the number of "threads"
or cores your CPU has.
Various other options are available, run
cmake --help
para más detalles.
Up-to-date official Debian packages are not currently available, but packages from the Ubuntu PPA may be compatible, or you can take advantage of the debian build files provided.
You can use sudo apt-get build-dep roxterm at this
point, but depending on the version already in your distro the set of
packages may be out-of-date, so be prepared for dependency errors later
and install the necessary packages at that point.
If not using a release snapshot it's a good idead to use
dch to ensure the newest version number in
debian/changelog has an appropriate version number eg what
./version.sh generates in the file version,
based on the output of git describe. Now you can build the
packages eg with debuild -b -uc -us. Note the
-b:- only binary packages can be built in the absence of
an orig tarball.
Cada ventana puede contener un número de pestañas, cada una con su propia terminal. A diferencia de gnome-terminal y versiones anteriores de ROXTerm, la barra de pestañas se muestra de manera predeterminada, incluso cuando solo hay una pestaña, para evitar inconsistencias al redimensionar, pero esto es 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.
Cuando la barra de menú está oculta el menú emergente contiene los mismos elementos que la barra de menú; esto le proporciona acceso a todas las funciones con la barra de menú oculta. La barra de menú es efectivamente redundante pero se incluye para hacer el aspecto de ROXTerm más sencillo para los usuarios principiantes. Se puede habilitar y deshabilitar para una ventana particular o de forma permanente a través del gestor de configuración.
El menú emergente también permite abrir direcciones web y de correo electrónico en aplicaciones externas si la dirección aparece resaltada cuando se sitúa el puntero sobre ella.
Cuando el puntero está sobre una dirección que ROXTerm reconoce como URI (normalmente una dirección web o de correo electrónico) se resalta mediante subrayado y cambiando la forma del puntero. Puede abrir la dirección pulsando el botón derecho del ratón y seleccionando Abrir... en el menú o manteniendo pulsado la tecla Control mientras pulsa el botón izquierdo. La aplicación utilizada para manejar estas direcciones se puede cambiar mediante la herramienta de configuración, o ROXTerm intentará encontrar una aplicación predeterminada. También al mantener pulsado Control puede arrastrar una URI para soltarla sobre otra aplicación que la acepte como URI o como texto; si se suelta sobre la misma ventana desde la que se arrastró se consigue pegar la dirección como entrada.
Tenga en cuenta que si el puntero está sobre la dirección del servidor en una URL solo se resalta la dirección, omitiendo el nombre del archivo; mueva el puntero sobre el nombre del archivo para obtener la URL completa. De forma similar puede resaltar una dirección de correo precedida o no por la cadena 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.
Ahora puede arrastrar elementos en las ventanas de terminal. Los objetos de texto se escriben en la terminal como si se utilizase el teclado. Para los archivos y URIs se obtiene su localización (nombre del archivo o URI) en lugar del contenido del objeto. Los archivos de imagen también se pueden arrastrar sobre el área apropiada del gestor de configuración para ponerlos como imagen de fondo de la terminal. Si mantiene pulsada la tecla Control mientras arrastra una URI resaltada puede pegar la dirección sobre otra aplicación.
Ahora puede arrastrar pestañas por sus etiquetas para reordenarlas dentro de una ventana o moverlas hasta otra ventana de ROXTerm o, al soltarlas fuera de una ventana de ROXterm, mover las pestañas hasta una ventana nueva propia. Utilice el botón 3 del ratón (el derecho) para mover una pestaña no seleccionada sin seleccionarla. Tenga en cuenta que las versiones anteriores a la 1.9 utilizaban el botón 2 del ratón (el del medio). Ahora el botón 2 es un atajo para pegar los contenidos del porta-papeles como el nombre de la pestaña.
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'.
La configuración se basa en perfiles con nombre en los que puede guardar diferentes conjuntos de opciones y cambiar entre ellos de forma rápida. Hay perfiles para opciones generales, esquemas de color y atajos de teclado (también llamados aceleradores). Los esquemas de color y los perfiles se aplican a una pestaña cada vez, pero los atajos de teclado se aplican a todas las pestañas en la misma ventana para evitar la potencial confusión por tener diferentes atajos de teclado en diferentes pestañas al cambiar de pestaña. Las ventanas y pestañas nuevas heredan la configuración de la ventana/pestaña desde la que se abrieron.
Antes de la versión 1.15.1 todas las pestañas compartían el mismo perfil, pero esto se ha cambiado. Como consecuencia una tipografía de perfil y otras configuraciones que afectan al tamaño de la terminal pueden ser ignoradas para mantener la geometría consistente a través de las pestañas de una ventana.
El menú de preferencias le permite seleccionar el perfil actual (esta configuración no será recordada; utilice el gestor de configuración para establecer el perfil predeterminado), abrir el gestor de configuración para editar el perfil actual o el esquema de color o para gestionar todas las configuraciones. En el gestor de configuración puede seleccionar uno de los cuatro tipos de grupos de opciones y editarlo, copiarlo, borrarlo o renombrarlo. Cada elemento tiene un campo de selección. El elemento seleccionado es el predeterminado para las terminales nuevas. Tenga en cuenta que las codificaciones de caracteres se gestionan de forma diferente.
ROXTerm 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.
También puede ejecutar el gestor de configuración seleccionando «Configurar...» en el menú de ROX para la aplicación ROXTerm o ejecutando roxterm-config si ROXTerm se ha instalado de forma convencional.
Los archivos de configuración se pueden intercambiar fácilmente con otros usuarios. Cada perfil, esquema de color y esquema de atajos de teclado tiene un único archivo asociado a él; guardar un archivo válido en el directorio adecuado creará un perfil o esquema con el mismo nombre que el archivo.
Las rutas donde se almacenan estos archivos de configuración siguen la especificación XDG Base Directory. En orden de prioridad descendente son:
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.
En cada una de estas rutas, los perfiles se guardan en un subdirectorio «Profiles», los esquemas de color en «Colours» y los esquemas de atajos de teclado en «Shortcuts». Un archivo llamado «Globals» contiene varias opciones que no encajan en las categorías anteriores, incluyendo el perfil predeterminado para terminales nuevas.
ROXTerm acepta varias opciones por línea de comandos. Ejecute:
roxterm --help
para una lista completa.
Desde la versión 1.1.0 ROXTerm utiliza solo un proceso para todas las terminales de forma predeterminada de forma que se pueden arrastrar pestañas entre ventanas. Si ejecuta el comando de nuevo se envía un mensaje D-BUS al proceso existente para solicitarle que abra una nueva terminal, y el segundo proceso termina. Para hacer que la terminal se ejecute como un proceso independiente utilice la opción --separate.
Tenga en cuenta que las opciones --colour_scheme y --shortcut_scheme se han reemplazado por --colour-scheme y --shortcut-scheme respectivamente desde la versión 1.7.0 (guión bajo cambiado por guión) pero las opciones antiguas se mantienen utilizables para mantener la compatibilidad.
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.
Desde la versión 1.14.0 los usuarios avanzados pueden usar D-Bus para configurar los terminales desde otras aplicaciones y scripts. Hay tres métodos D-Bus específicos para este propósito; requieren un código identificador para seleccionar una terminal específica; cada identificador de terminal se puede leer mediante la variable de entorno ROXTERM_ID desde la consola/aplicación que ejecuta. La ruta de objetos D-Bus y el interfaz para métodos son «net.sf.roxterm.Options» y «/net/sf/roxterm/Options» respectivamente. Los métodos son:
SetProfile(«identificador», «nombre_del_perfil»)
Pide a la terminal que utilice el perfil indicado. Tenga en cuenta que cualquier otra pestaña en la misma ventana será actualizada con el mismo perfil. Todas las pestañas de una ventana deben tener el mismo perfil para que el tamaño de letra y por lo tanto el tamaño de terminal permanezcan consistentes.
SetColourScheme(«identificador», «nombre_del_esquema»)
Pide a la terminal que utilice el esquema de color indicado. Las pestañas que comparten la misma ventana pueden tener esquemas de color diferentes.
SetShortcutScheme(«identificador», «nombre_del_esquema»)
Pide a la terminal que utilice el esquema de atajos de teclado indicado. Las pestañas que comparten la misma ventana también comparten el esquema de atajos de teclado.
Ejemplo utilizando dbus-send en un script:
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.SetColourScheme string:$ROXTERM_ID string:GTK
También puede enviar señales D-Bus para cambiar opciones individuales en un perfil o esquema de color determinado con los métodos StringOption, IntOption (también utilizada para opciones booleanas) y FloatOption. Todas las terminales que usan el mismo perfil o esquema de color se ven afectadas, pero solo temporalmente. Las opciones no se guardan pera terminales nuevas. Todos los métodos toman 3 argumentos:
Para ver los nombres de opción disponibles, consulte los archivos de configuración, desde los cuales se pueden deducir los tipos
Ejemplo utilizando dbus-send en un script:
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.StringOption \ string:Colours/GTK string:background 'string:#ffffff'
Un posible tercer uso es notificar a roxterm que un perfil, esquema de color o esquema de atajos ha sido modificado por otro programa y todos los terminales utilizando ese perfil, etc. necesitan recargarlo:
OptionsChanged(«nombre_de_familia», «nombre_del_perfil»)
donde nombre_de_familia es uno de «Profiles», «Colours» o «Shortcuts». Por ejemplo:
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.OptionsChanged \ string:Profiles string:Default