O ROXTerm é um emulador de terminal que foi projetado para fornecer funcionalidades semelhantes ao GNOME Terminal (gnome-terminal) e é baseado na biblioteca VTE (libvte). O ROXTerm foi originalmente projetado para ocupar menos espaço e ter uma inicialização mais rápida, não utilizando as bibliotecas do GNOME e utilizando um ‘applet’ (é um pequeno programa que é executado dentro de um programa maior) separado para fornecer a interface gráfica de configurações. No entanto, graças a todas as funcionalidades que adquiriu ao longo dos anos, o ROXTerm provavelmente pode ser acusado de ter um excesso de funcionalidades. Contudo, o ROXTerm é muito mais configurável do que o GNOME Terminal que é voltado para os usuários ‘avançados’ que utilizam intensamente os emuladores de terminais.
O ROXTerm também é compatível com o leiaute do programa da área de trabalho ROX que lhe deu o nome, mas também pode ser instalado de uma maneira mais convencional para ser utilizado em outros ambientes de área de trabalho.
Acesse a página do projeto no GitHub e baixe o programa. Utilize a versão que possui a data e o número mais recente para obter a versão estável. Se você estiver utilizando uma distribuição GNU/Linux do tipo LTS (Long-Term Support ou Suporte de Longo Prazo), que utiliza uma versão antiga do GTK3 (anterior a versão 3.20), utilize o ROXTerm da versão 3.3.1, intale-o a partir do gerenciador de pacotes da sua distribuição. Se a sua distribuição for muito antiga, o ROXTerm da versão 2.x é compatível com o GTK2.
Você precisa das bibliotecas do GTK+3, que são praticamente padrão em todos os derivados livres do Unix atual. É necessário pelo menos a versão 2.16 do Glib e a versão 3.20 do GTK+. Você também precisará da biblioteca Libvte (pelo menos a versão 0.48 do VTE-2.91) que é um componente do GNOME. O D-BUS também é necessário (leia as informações abaixo).
Para compilar o ROXTerm, você precisará dos arquivos do cabeçalho das bibliotecas que foram citas acima. Nos sistemas operacionais que utilizam o empacotamento dos programas, as bibliotecas geralmente vêm nos pacotes cujos nomes terminam com ‘-dev’ ou ‘-devel’.
Antes da versão 3.5.0, o ROXTerm utilizava um sistema de compilação personalizado chamado ‘Maitch’. O ‘Maitch’ requer o Python e o módulo ‘lockfile’ do Python. A versão 3.5.0 utiliza o CMake que é uma ferramenta mais convencional para compilação dos programas.
O D-Bus é um sistema de mensagens que o ROXTerm utiliza para conectar os terminais com a sua ferramenta de configurações. O ROXTerm utiliza o barramento da ‘sessão’, que deve ser iniciado junto com o seu ambiente de área de trabalho. As versões atuais dos gerenciadores de sessão do ROX, GNOME e KDE/Plasma iniciam o D-Bus. Se você utiliza um outro gerenciador de sessão ou ambiente de área de trabalho ou gerenciador de janelas que não inicia o D-Bus, você pode iniciá-lo inserindo no seu arquivo de configurações ‘.xinitrc’ ou ‘.xsession’ os parâmetros abaixo:
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then eval `dbus-launch --sh-syntax --exit-with-session` export DBUS_SESSION_BUS_ADDRESS fi
Para instalar o ROXTerm no ROX, tudo o que você precisa fazer é baixá-lo e/ou descompactá-lo no diretório dos ‘Apps’ (Aplicativos) e executá-lo, mas provavelmente você vai querer renomear a pasta para ROXTerm. Para os outros ambiente de área de trabalho, o ROXTerm pode ser instalado da maneira típica do CMake:
mkdir build cd build cmake .. make -j 4 sudo make install
O ‘-j 4’ é opcional e serve para acelerar o processo de
compilação utilizando várias tarefas (threads) de processamento.
Você pode substitui o 4 pelo número de tarefas ou de núcleos que o seu
processador possui.
Várias outras opções estão disponíveis, execute o comando abaixo para obter mais informações.
cmake --help
Os pacotes oficiais e atualizados do Debian não estão disponíveis no momento, mas os pacotes no formato PPA do Ubuntu podem ser compatíveis com a sua distribuição ou você pode utilizar os arquivos compilados que são fornecidos pelo Debian.
Você pode utilizar o comando ‘sudo apt-get build-dep roxterm’,
mas dependendo da versão existente na sua distribuição, o conjunto dos
pacotes podem estar desatualizados, portanto, esteja preparado para
receber as mensagens de erro referentes as dependências que estão
ausentes e instale os pacotes necessários quando forem solicitados.
Se você não estiver utilizando o programa da versão mais recente, é
uma boa ideia utilizar o ‘dch’ para garantir que o número da
versão mais recente das ‘alterações’ (changelog) do Debian
tenha o número da versão apropriada. Por exemplo, o mesmo número que é
exibido no ‘./version.sh’ para gerar o arquivo ‘version’,
com base na saída do ‘git describe’. Agora, você pode compilar
os pacotes, por exemplo, com o comando ‘debuild -b -uc -us’.
Observe que apenas os pacotes binários com a extensão ‘-b’ podem
ser compilados na ausência de um pacote ‘tarball’ original.
Cada janela pode conter várias abas ou guias, onde cada aba ou guia contém o seu próprio emulador de terminal. Ao contrário do GNOME Terminal e das versões anteriores do ROXTerm, a barra das abas ou guias é sempre exibida por padrão, mesmo se houver apenas uma aba ou guia, para evitar inconsistências ao redimensionar a janela, mas esta opção pode ser modificada.
Se você tiver problemas com os rótulos das abas ou das guias encolhendo após arrastá-las de modo que elas tenham espaço apenas para exibir os três pontos ‘...’, tente garantir que o cursor ou a seta esteja em cima do corpo de um emulador de terminal quando você soltar em cima de uma aba ou guia que foi arrastada, não solte em cima da área da barra das abas ou guias.
Quando a barra do menu está oculta, o menu da caixa de diálogo duplica os mesmos itens na barra do menu. Esta ação dá a você acesso a todas as funcionalidades, mesmo com a barra do menu estando oculta. A barra do menu é efetivamente redundante, mas foi criada com a intenção de tornar o ROXTerm muito mais intuitivo para os usuários iniciantes. Esta funcionalidade pode ser ativada ou desativada em uma janela específica ou de forma mais permanente por meio do gerenciador das configurações.
O menu da caixa de diálogo também permite que os endereços de e-mail e das páginas eletrônicas (URL ou link) sejam abertos com programas externos, se um endereço é destacado ou realçado quando o cursor ou a seta fica posicionado em cima do endereço eletrônico.
Quando o cursor ou a seta estiver posicionado em cima de um endereço que o ROXTerm reconhece como um URI (Identificador Uniforme de Recurso), que normalmente é um URL (Localizador Uniforme de Recursos), também conhecido por página eletrônica, sítio, ‘site’, vínculo, ligação, ‘link’, etc. da internet ou endereço de correspondência eletrônica (e-mail) será destacado ou realçado por um sublinhado e ocorrerá a alteração do formato do cursor ou da seta. Você pode abrir o endereço eletrônico com um clique do botão direito e um clique do botão esquerdo na opção ‘Abrir...’ do menu ou mantendo a tecla ‘Ctrl’ pressionada e clicando com o botão esquerdo em cima do endereço eletrônico. Os programas utilizados para gerenciar os endereços eletrônicos podem ser especificados com a ferramenta de configurações, caso contrário, o ROXTerm tentará encontrar um programa padrão adequado. Também é possível manter a tecla ‘Ctrl’ pressionada e arrastar um endereço de URI para passá-lo para um outro programa que aceite um URI ou um texto, arrastando-o de volta para a mesma janela de onde veio, o endereço será colado.
Observe que, se o cursor ou a seta estiver em cima de uma parte do endereço de URL do servidor, somente será destacado ou realçado o endereço e será omitido o nome do arquivo, mova o cursor ou a seta em cima do nome do arquivo para obter o endereço completo do URL. Da mesma forma, você pode destacar ou realçar o endereço de e-mail, mesmo que não tenha o código ‘mailto:’ no início do respectivo endereço.
A partir da versão 2.9.1, a correspondência dos URIs e dos nomes dos hospedeiros (host) do SSH (Secure Shell ou Shell Seguro) passou a ser compatíveis. Os URIs que incluem um nome do caminho só podem ser copiados para a área de transferência, na ausência de um nome do caminho, o ROXTerm também pode iniciar uma sessão do SSH com o hospedeiro que foi descrito. Os nomes simples dos hospedeiros também são correspondidos, mas somente se começarem com ‘ssh’ ou terminarem com ‘.local’ ou ‘.lan’. Ao tentar corresponder os nomes de hospedeiros mais genéricos causará muitos falsos positivos. Se você utiliza regularmente um servidor de SSH não correspondente, considere adicionar um alias correspondente no arquivo ‘/etc/hosts’.
Você pode arrastar os itens para a janela do emulador de terminal. Os objetos de texto são enviados para o emulador de terminal como se tivessem sido digitados. Os arquivos e os URIs tem a sua localização (o nome do arquivo ou o URI) no lugar do conteúdo do objeto. Os arquivos gráficos também podem ser arrastados para a área apropriada do gerenciador das configurações para definir a imagem do fundo do emulador de terminal. Mantenha a tecla ‘Ctrl’ pressionada enquanto arrasta um URI que foi destacado ou realçado para permitir que o endereço seja arrastado para um outro programa.
Você pode arrastar as abas ou as guias para reordená-las dentro de uma mesma janela, ou pode movê-las de uma janela para outra janela do ROXTerm, se quiser pode arrastar as abas ou as guias e soltar para fora da janela do ROXTerm que esta ação irá criar uma nova janela do ROXTerm. Utilize o botão direito do rato ou ‘mouse’ para mover uma aba ou guia que não foi selecionada. Observe que, as versões anteriores a 1.9 utilizavam o botão do meio do rato ou ‘mouse’. Na versão atual o botão do meio do rato ou ‘mouse’ é um atalho que permite colar o conteúdo da área de transferência como o nome da aba ou guia.
A novidade da versão 3.1.1 é a capacidade de salvar as sessões nomeadas pelo usuário. Clique no menu ‘Arquivo’, na opção ‘Salvar a Sessão...’, insira o nome da sua sessão e clique na opção ‘Salvar’. Uma sessão salva o estado das janelas e das abas ou guias atuais, mas não salva o conteúdo do texto que estiver nos emuladores de terminais. Uma sessão pode ser restaurada com a opção de linha de comando ‘--session’ do ROXTerm, ou será restaurada automaticamente se for nomeada como ‘Padrão’. Manter o campo em branco ou vazio equivale a opção ‘Padrão’.
As configurações se baseiam no nome do perfil para que você possa salvar diferentes definições de opções e trocar rapidamente entre cada um dos perfis. Existem perfis para configurações gerais, para o esquema das cores e para os atalhos do teclado (às vezes também são chamados de ‘aceleradores’). Os esquemas das cores e dos perfis se aplicam a uma aba ou guia de cada vez, mas os atalhos do teclado aplicam-se em todas as abas ou guias de uma mesma janela para evitar a possibilidade de confusão em diferentes abas ou guias, por haver atalhos diferentes do teclado para alternar entre elas. As novas janelas e as novas abas ou guias herdarão as configurações da janela ou da aba de onde foram abertas.
Antes da versão 1.15.1, todas as abas ou guias compartilhavam o mesmo perfil, mas isso foi modificado. Consequentemente, uma fonte de um perfil e as outras definições que afetam o tamanho do emulador de terminal podem ser substituídas para manter uma geometria consistente em várias abas ou guias em uma mesma janela.
O menu das ‘Preferências’ permite selecionar o perfil atual, etc... (estas configurações não serão lembradas ou memorizadas, por tanto, utilize o gerenciador das configurações para definir o padrão), abra o gerenciador das configurações para editar o perfil atual ou o esquema das cores ou para gerenciar todas as configurações. No gerenciador das configurações, você pode selecionar um dos quatro tipos dos grupos das opções e editar, copiar, excluir ou renomear. Cada item tem um campo de seleção. O item com o campo que foi selecionado será o padrão para os novos emuladores de terminais. Observe que, a codificação dos caracteres são tratadas de forma ligeiramente diferente.
O ROXTerm permite que os perfis dos atalhos do teclado sejam editados em um editor de texto, seja por meio do Gerenciador das Configurações ou seja por meio de um emulador terminal (no submenu das ‘Preferências’). Os nomes utilizados nas ações correspondem aos rótulos localizados nos itens do menu. Os novos atalhos do teclado devem ser recarregados automaticamente ao salvar o arquivo de configurações. Opcionalmente, você pode selecionar um esquema no menu das ‘Preferências’ que esta ação forçará o recarregamento das configurações.
Você também pode executar o gerenciador das configurações selecionando a opção ‘Configurações...’ no menu do ROXTerm ou executando o comando ‘roxterm-config’ se o ROXTerm tiver sido instalado de forma convencional.
Os arquivos de configurações podem ser facilmente trocados com outros usuários. Cada perfil, esquema das cores e os atalhos do teclado possui um único arquivo associado a ele. Se você salvar um arquivo válido no diretório adequado, esta ação criará um perfil com o mesmo nome no arquivo de configurações.
Os locais dos diretórios onde são armazenados os arquivos de configurações, seguem as especificações do ‘XDG Base Directory’ (Diretório Base do XDG). Em ordem decrescente de prioridade são:
Os arquivos de configurações serão carregados em todos os locais descritos acima e os arquivos em locais de alta prioridade se sobrepõem aos de mesmo nome em locais de menor prioridade. Os arquivos são salvos apenas no primeiro local.
Em qualquer um destes locais, os perfis são salvos no subdiretório ‘Profiles’ (Perfis), o esquema das cores no subdiretório ‘Colours’ (Cores) e o esquema dos atalhos do teclado no subdiretório ‘Shortcuts’ (Atalhos). Um arquivo chamado ‘Global’ contém várias opções que não se enquadram nas categorias citadas acima, incluindo o perfil padrão para os novos emuladores de terminais.
O ROXTerm aceita várias opções para serem utilizadas na linha de comando. Execute o comando abaixo para obter as informações completa.
roxterm --help
A partir da versão 1.1.0, o ROXTerm utiliza por padrão somente um processo para todos os emuladores de terminais, de modo que você possa arrastar as abas ou guias entre as janelas. Se você executar o comando novamente, ele envia uma mensagem do D-BUS para o processo existente com o objetivo de sinalizar que abra um novo emulador de terminal e o segundo processo termina. Para fazer um comando do ROXTerm executar em seu próprio processo independente, utilize a opção ‘--separate’.
Observe que, as opções ‘--colour_scheme’ e ‘--shortcut_scheme’ foram substituídas, respectivamente por ‘--colour-scheme’ e ‘--shortcut-scheme’ na versão 1.7.0, ou seja, o traço sublinhado foi alterado por hífen, mas as escritas antigas continuam utilizáveis para manter a compatibilidade com as versões anteriores do ROXTerm.
Como qualquer emulador de terminal que é baseado no VTE, você pode aplicar os estilos do GTK personalizando os emuladores de terminais do ROXTerm.
Um caso de uso comum é adicionar o preenchimento ao redor do conteúdo no emulador de terminal. Você pode fazer isso adicionando na sua folha de estilo global do GTK no arquivo ‘~/.config/gtk-3.0/gtk.css’ os parâmetros descritos abaixo:
VteTerminal, vte-terminal { -VteTerminal-inner-border: 20px; padding: 20px; }
É possível personalizar o estilo de cada perfil direcionando as classes específicas na folha de estilo do GTK. Por exemplo, se você quiser aplicar um preenchimento diferente a um perfil chamado de ‘Mínimo’, mantendo o preenchimento padrão, você pode adicionar os parâmetros descritos abaixo após a regra do estilo anterior:
VteTerminal.roxterm-Minimal, vte-terminal.roxterm-Minimal { -VteTerminal-inner-border: 2px; padding: 2px; }
Quando o nome do perfil contém espaços a classe gerada substitui os espaços por hifens.
A partir da versão 1.14.0, os usuários avançados podem utilizar o D-Bus para configurar os emuladores de terminais a partir de outros programas (scripts). Existem três métodos no D-Bus que são dedicados especialmente para esta finalidade, eles exigem um código de identificação para atingir um emulador de terminal especifico, o código de identificação de cada emulador de terminal pode ser lido a partir da variável de ambiente ‘ROXTERM_ID’ no shell (interpretador) e/ou no programa em execução. O caminho do objeto do D-Bus e os métodos da interface são respectivamente ‘net.sf.roxterm.Options’ e ‘/net/sf/roxterm/Options’. Os métodos são:
SetProfile("identificador", "nome_do_perfil")
Você pode solicitar ao emulador de terminal para utilizar o perfil que foi especificado. Observe que, quaisquer outras abas ou guias na mesma janela serão atualizadas para o mesmo novo perfil. Todas as abas ou guias de uma janela devem ter o mesmo perfil para que o tamanho da fonte e o tamanho do emulador de terminal permaneçam consistentes.
SetColourScheme("identificador", "nome_do_esquema")
Você pode solicitar ao emulador de terminal para utilizar o esquema das cores que foi especificado. As abas ou guias que compartilham a mesma janela podem ter os esquemas das cores diferentes umas das outras.
SetShortcutScheme("identificador", "nome_do_esquema")
Você pode solicitar ao emulador de terminal para utilizar o esquema que foi especificado dos atalhos do teclado. As abas ou guias que compartilham a mesma janela, também compartilham o mesmo esquema dos atalhos do teclado.
Exemplo de como utilizar o ‘dbus-send’ em um programa (script) no shell:
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.SetColourScheme string:$ROXTERM_ID string:GTK
Você também pode enviar os sinais do D-Bus para alterar as opções individuais dentro de um perfil que foi especificado ou o esquema das cores utilizando os métodos StringOption, IntOption (também pode ser utilizada as opções booleanas) e o FloatOption. Todos os emuladores de terminais que utilizam o perfil ou o esquema das cores que foram especificados são afetados, mas somente temporariamente. As opções não são salvas para os novos emuladores de terminais. Os métodos podem receber três argumentos:
Para verificar quais são os nomes das opções que você pode utilizar, consulte os arquivos de configurações e de quais tipos podem ser deduzidos.
Exemplo de como utilizar o ‘dbus-send’ em um programa (script) no shell:
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.StringOption \ string:Colours/GTK string:background 'string:#ffffff'
Também é possível notificar o ROXTerm de que um perfil, esquema das cores ou o esquema dos atalhos do teclado foi alterado por um programa externo e todos os emuladores de terminais que utilizam este perfil precisam ser recarregados:
OptionsChanged("nome_da_família", "nome_do_perfil")
Onde o ‘nome_da_família’ é um dos ‘Perfis’, ‘Cores’ ou ‘Atalhos’. Por exemplo:
dbus-send --session /net/sf/roxterm/Options \ net.sf.roxterm.Options.OptionsChanged \ string:Profiles string:Default