1. Abrir automaticamente uma nova janela de terminal, mostrando a saída do seu comando
Como você precisa manter o terminal aberto após a execução do comando, coloque:
gnome-terminal -e 'bash -c "git status; read line"'
sob uma combinação de teclas de atalho, fará o trabalho. Ele abrirá uma nova janela gnome-terminal
e executará o comando dentro dela.
Adicione a um atalho
Escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione o comando:
gnome-terminal -e 'bash -c "git status; read line"'
para Ctrl + Digite
Nota
Embora o seu atalho sugerido funcione, você pode escolher outra combinação de teclas e então Ctrl + Enter , pois pelo menos colide com o LibreOffice
de atalho para ir para uma nova página.
Explicação
Para ter uma nova janela gnome-terminal
aberta na linha de comando e executar um comando nela, você pode usar:
gnome-terminal -e 'bash -c <command>'
No entanto, embora o comando seja executado com sucesso, a janela do terminal será fechada imediatamente antes de você poder ler a saída.
A seção:
read line
é então manter o terminal aberto (até você pressionar Enter ) após o comando ser executado.
Outros comandos
Dessa forma, você pode executar qualquer comando (complexo) no terminal, sem que ele seja fechado imediatamente:
$ gnome-terminal -e 'bash -c "wmctrl -d; read line"'
será exibido (se wmctrl
estiver instalado):
DepoisdepressionarEnter,oterminalseráfechado.
2.Executandoumcomandonajanelagnome-terminalativanomomento
Éclaroquevocêpoderiacolocarumsimplesone-linersobumatecladeatalho(supondoquevocêtenhaxdotool
installed):
xdotooltype"<command>"
Isto, entretanto, digitaria o comando cegamente , em qualquer aplicação, e digitando o comando não é a opção mais limpa.
O pequeno script abaixo, portanto:
- verifica se a janela ativa é uma janela
gnome-terminal
(por seu pid)
- se assim for, cola o comando na janela
gnome-terminal
ativa, pressiona Return .
Se não, o script não nada , por isso não vai colar em outras aplicações.
Como o script usa o comando de destino como um argumento, você pode colocar vários comandos em vários atalhos.
O script
#!/usr/bin/env python3
import subprocess
import sys
import time
app = "gnome-terminal"
s = (" ").join(sys.argv[1:])
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8").strip()
def front(app):
try:
# see if gnome-terminal is running at all (raising error if not)
app = get(["pgrep", app])
except subprocess.CalledProcessError:
app = False
if app:
# if so, see if the active window belongs to gnome-terminal comparing pids)
active = get(["xdotool", "getwindowpid", get(["xdotool", "getactivewindow"])])
return True if app == active else False
if front(app):
# copy command to clipboard
cm1 = ["/bin/bash", "-c", 'printf "'+s+'" | xclip -selection clipboard']
# paste in terminal window
cm2 = ["xdotool", "key", "Control_L+Shift_L+v"]
# press return
cm3 = ["xdotool", "key", "Return"]
for cm in [cm1, cm2, cm3]:
subprocess.call(cm)
Como usar
-
O script precisa de xdotool
sudo apt-get instala xdotool
-
Crie uma dirctory ~/bin
, se ainda não existir, efetue logout / in ou execute source ~/.profile
- Copie o script acima em um arquivo vazio, salve-o como
gterm_keys
(sem extensão) em ~/bin
e torne-o executável
Agora você pode executar qualquer comando, a partir de uma tecla de atalho, na janela gnome-terminal
frontmost, adicionando o comando:
gterm_keys <command>
para uma tecla de atalho, conforme descrito em [1]