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).
Pour compiler ROXTerm vous aurez besoin des fichiers d'en-tête pour les bibliothèques ci-dessus. Dans les systèmes d'empaquetage, ils sont généralement fournis dans des paquets dont les noms se terminent par "-dev" ou "-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
pour les détails.
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.
Chaque fenêtre peut contenir plusieurs onglets, chacun dans son propre terminal. Contrairement à gnome-terminal et aux versions précédentes de ROXTerm, la barre d'onglets est toujours visible par défaut, même s'il n'y a qu'un onglet, afin d'éviter les inconsistances au redimensionnement, mais cela est 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.
Quand la barre de menu est cachée, le menu popup duplique les mêmes items que dans la barre de menu : cela vous donne un accès complet à toutes les fonctions avec la barre de menu cachée. La barre de menu est effectivement redondante mais cela est fait pour rendre ROXTerm plus facile aux nouveaux utilisateurs. Cela peut être activé ou désactivé pour une fenêtre particulière ou de façon plus permanente à l'aide du gestionnaire de configuration.
Le menu contextuel permet également d'ouvrir les adresses électroniques et Web dans des applications externes si une telle adresse est mise en surbrillance par le curseur au dessus d'elle.
Quand le pointeur est au-dessus d'une adresse que ROXTerm reconnait comme URI (typiquement une URL web ou un email), elle est mise en évidence par un soulignement et un changement de la forme du pointeur. Vous pouvez ouvrir l'adresse soit en cliquant droit et en choisissant Ouvrir... dans le menu ou en maintenant Ctrl et en cliquant gauche. Les applications utilisées pour manipuler ces adresses peuvent être déterminées avec l'outil de configuration, sinon il sera essayé de trouver une application convenable par défaut. Également en maintenant Ctrl, vous pouvez tirer une URI pour la passer à une autre application capable de l'accepter comme URI ou texte ; la tirer dans la fenêtre d'où elle vient colle l'adresse en retour.
Notez que, si le pointeur est au-dessus de la portion d'une URL correspondant à l'adresse du serveur, il met en évidence l'adresse seulement, sans le nom de fichier ; déplacez le pointeur sur le nom de fichier pour obtenir l'URL complète. De le même façon, vous pouvez mettre en évidence une adresse mail avec ou sans le mailto: qui précède.
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.
Vous pouvez maintenant faire glisser des éléments sur les fenêtres de terminal. Les objets texte sont insérés dans le terminal comme s'ils étaient tapés. Les fichiers et les URI ont leur emplacement (nom de fichier ou URI) insérés plutôt que le contenu des objets. Les fichiers graphiques peuvent également être glissés sur la zone appropriée du gestionnaire de configuration pour définir les images de fond des terminaux. Maintenir la touche Ctrl tout en faisant glisser un URI en surbrillance permet de faire glisser l'adresse vers une autre application.
Vous pouvez maintenant faire glisser les onglets par leurs étiquettes pour les réorganiser dans une fenêtre ou de les déplacer vers une autre fenêtre ROXTerm ou, en les déposant à l'extérieur d'une fenêtre ROXTerm, déplacer les onglets de nouvelles fenêtres en propre. Utilisez le bouton 3 de la souris (bouton de droite) pour déplacer un onglet non sélectionné sans le sélectionner. Notez que les versions antérieures à 1.9 utilisaient le bouton 2 (intermédiaire). Le bouton 2 est maintenant un raccourci pour coller le contenu du presse-papiers comme le nom de l'onglet.
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 est basée sur les profils nommés de sorte que vous pouvez enregistrer différents ensembles d'options et basculer entre eux rapidement. Il existe des profils pour les options générales, les couleurs et les raccourcis clavier (parfois aussi appelés accélérateurs). Jeux de couleurs et profils s'appliquent à un onglet à la fois, mais les raccourcis clavier s'appliquent à tous les onglets de la même fenêtre afin d'éviter le risque de confusion de différents onglets présentant des raccourcis différents pour changer d'onglet. Les nouvelles fenêtres et onglets héritent des paramètres de la fenêtre/onglet d'où ils ont été ouverts.
Avant la version 1.15.1, tous les onglets devaient partager le même profil, mais cela a été changé. En conséquence, la police d'un profil et d'autres paramètres qui influent sur la taille d'un terminal peuvent être remplacés pour maintenir une géométrie cohérente à travers un certain nombre d'onglets dans une même fenêtre.
Le menu Préférences vous permet de sélectionner le profil etc courant (ce paramètre ne sera pas mémorisé ; utiliser le gestionnaire de configuration pour définir les paramètres par défaut), d'ouvrir le gestionnaire de configuration pour modifier le profil actuel ou de couleur ou de gérer tous les paramètres. Dans le gestionnaire de configuration, vous pouvez sélectionner l'un des quatre types de groupes d'options et le modifier, le copier, le supprimer ou le renommer. Chaque élément dispose également d'un bouton radio. L'élément avec le bouton radio coché est le défaut pour les nouveaux terminaux. Notez que les codages de caractères sont traités de façon légèrement différente.
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.
Vous pouvez également exécuter le gestionnaire de configuration en sélectionnant "Configurer..." dans le menu de ROX pour l'application ROXTerm ou en exécutant roxterm-config si ROXTerm a été installé de manière classique.
Les fichiers de configuration peuvent facilement être échangés avec d'autres utilisateurs. Chaque profil, couleurs et raccourci clavier régime dispose d'un fichier unique qui lui est associé ; enregistrer un fichier valide dans le répertoire approprié permet de créer un profil, etc avec le même nom que le fichier.
Les emplacements de répertoires pour ces fichiers de configuration suivent la spécification "XDG Base Directory". Dans l'ordre décroissant de priorité, ce sont :
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.
Dans un ou chacun de ces emplacements, les profils sont enregistrés dans un sous-répertoire "Profils", les modèles de couleurs dans "Couleurs" et les jeux de raccourcis clavier dans «Raccourcis». Un fichier appelé "Globals" contient diverses options qui n'entrent pas dans les catégories ci-dessus, y compris le profil par défaut pour les nouveaux terminaux, etc.
ROXTerm accepte un certain nombre d'options de ligne de commande. Lancer :
roxterm --help
pour une liste complète.
Depuis la version 1.1.0, ROXTerm par défaut utilise un seul processus pour tous les terminaux de sorte que vous pouvez faire glisser les onglets entre fenêtres. Si vous exécutez la commande de nouveau, il envoie un message D-BUS pour le processus existant pour signaler d'ouvrir un nouveau terminal, et le second processus se termine. Pour faire qu'une commande roxterm tourne dans son propre processus distinct, utilisez l'option --separate.
Notez que les options --colour_scheme et --shortcut_scheme ont été remplacés par --colour-scheme et --shortcut-scheme respectivement dans la version 1.7.0 (soulignés changés en traits d'union), mais les anciennes versions restent utilisables pour la compatibilité ascendante.
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.
Depuis la version 1.14.0, les utilisateurs avancés peuvent utiliser D-Bus pour configurer les terminaux depuis d'autres applications ou de scripts. Il existe trois méthodes D-Bus spécialement prévues à cette fin, elles ont besoin d'un code d'identification pour cibler un terminal spécifique; le code d'identification de chaque terminal peut être lu à partir de la variable d'environnement ROXTERM_ID dans le shell/application fonctionnant en elle. Le chemin de l'objet D-Bus et l'interface pour les méthodes sont "net.sf.roxterm.Options" et "/net/sf/roxterm/Options" respectivement. Les méthodes sont les suivantes :
SetProfile("id", "nom_du_profil")
Demander au terminal d'utiliser le profil indiqué. Notez que tous les autres onglets dans la même fenêtre seront mises à jour avec même profil. Tous les onglets dans une fenêtre doivent avoir le même profil de sorte que la taille de leur police, et donc la taille du terminal, reste cohérente.
SetColourScheme("id", "nom_du_schema")
Demandez au terminal d'utiliser le jeu de couleurs nommé. Les onglets qui partagent la même fenêtre doivent également partager le même jeu de couleurs.
SetShortcutScheme("id", "nom_du_schema")
Demandez au terminal d'utiliser le jeu de raccourcis clavier nommé. Les onglets qui partagent la même fenêtre doivent également partager le même jeu de raccourcis clavier.
Exemple utilisant dbus-send dans un script shell :
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.SetColourScheme string:$ROXTERM_ID string:GTK
Vous pouvez également envoyer des signaux D-Bus pour modifier les options individuelles dans un système de profil nommé ou dans un jeu de couleurs en utilisant les méthodes StringOption, IntOption (également utilisé pour les options booléennes) et FloatOption. Tous les terminaux utilisant le profil nommé ou le jeu de couleur sont touchés, mais seulement temporairement. Les options ne sont pas enregistrées pour les nouveaux terminaux. Les méthodes prennent tous trois arguments :
Pour voir les noms d'options que vous pouvez utiliser, consultez les fichiers de configuration, à partir desquels les types peuvent être déduits.
Exemple utilisant dbus-send dans un script shell :
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.StringOption \ string:Colours/GTK string:background 'string:#ffffff'
Un troisième utilisation possible consiste à notifier à ROXTerm qu'un profil, un jeu de couleurs ou un jeu de raccourcis a été modifiée par un programme externe et que tous les terminaux utilisant le profil, etc, ont besoin de le recharger :
OptionsChanged("nom_de_famille", "nom_du_profil")
lorsque nom_de_famille est "Profiles", "Colours" ou "Shortcuts". Par exemple :
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.OptionsChanged \ string:Profiles string:Default