Como faço para que o emulador de terminador apareça e desapareça como guake?

Respostas:

17

Eu estava tentando fazer a mesma coisa (sendo um fã de ambos, guake e terminator). Aqui está o que eu criei (uma versão personalizada da resposta da desqua para esta pergunta ):

Para iniciar um aplicativo ou mostrar sua janela, se já estiver iniciado, ou para minimizar se estiver focado

1) Instale o wmctrl & xdotool , ou em um terminal:sudo apt-get install wmctrl xdotool

2) Faça um script:

  • Crie um arquivo gedit ~ / bin / launch_focus_min.sh

E cole este:

#!/bin/bash                                                                                                            
#
# This script does this:
# launch an app if it isn't launched yet,
# focus the app if it is launched but not focused,
# minimize the app if it is focused.
#
# by desgua - 2012/04/29
# modified by olds22 - 2012/09/16
#  - customized to accept a parameter
#  - made special exception to get it working with terminator


# First let's check if the needed tools are installed:

tool1=$(which xdotool)
tool2=$(which wmctrl)

if [ -z $tool1 ]; then
  echo "Xdotool is needed, do you want to install it now? [Y/n]"
  read a
  if [[ $a == "Y" || $a == "y" || $a = "" ]]; then
    sudo apt-get install xdotool
  else
    echo "Exiting then..."
    exit 1
  fi
fi

if [ -z $tool2 ]; then
  echo "Wmctrl is needed, do you want to install it now? [Y/n]"
  read a
  if [[ $a == "Y" || $a == "y" || $a = "" ]]; then
    sudo apt-get install wmctrl
  else
    echo "Exiting then..."
    exit 1
  fi
fi


# check if we're trying to use an app that needs a special process name
# (because it runs multiple processes and/or under a different name)
app=$1
if [[ $app == terminator ]]; then
  process_name=usr/bin/terminator
else
  process_name=$app
fi

# Check if the app is running (in this case $process_name)

#pid=$(pidof $process_name) # pidof didn't work for terminator
pid=$(pgrep -f $process_name)

# If it isn't launched, then launch

if [ -z $pid ]; then
  $app

else

  # If it is launched then check if it is focused

  foc=$(xdotool getactivewindow getwindowpid)

  if [[ $pid == $foc ]]; then

    # if it is focused, then minimize
    xdotool getactivewindow windowminimize
  else
    # if it isn't focused then get focus
    wmctrl -x -R $app
  fi
fi

exit 0
  • Torne executável: chmod +x ~/bin/launch_focus_min.sh

3) Faça o atalho do teclado:

  • Abra as configurações do teclado e crie um atalho personalizado com o comando: /home/<user>/bin/launch_focus_min.sh terminator(~ / bin não funcionará)

  • atribua este comando a Shift + Escape (ou qualquer atalho de teclado que você usou para guake).

olds22
fonte
Eu tentei isso, mas parece não funcionar para mim.
Chirag
Esta é a solução perfeita, o melhor do Guake com o melhor do Terminator, obrigado.
Wranvaud
teve que mudar "~ / bin / terminador launch_focus_min.sh" em "terminator /home/<user>/bin/launch_focus_min.sh" para que ele funcione para mim
Vituel
Eu tive que adicionar um shebang bash para o início do arquivo para que ele seja executado corretamente sob zsh:#!/bin/bash
sean_j_roberts
4

A maneira mais fácil de fazer isso seria usar xdotoole usar o windowunmap/windowmapcomando para ocultar / mostrar a classe desejada de janelas. (Essa abordagem não foi mencionada nas outras respostas mencionadas xdotool.) A solução funcionará bem em todos os desktops, independentemente do gerenciador de janelas que eles estiverem usando. Conforme observa a página de manual ,

Na terminologia X11, mapear uma janela significa torná-la visível na tela.

Portanto, desmarcar uma janela fará o oposto e ocultará a janela. Infelizmente, não há alternância disponível para xdotoolalternar entre os estados map / unmap, mas os dois comandos necessários estão abaixo. O primeiro oculta a janela:

xdotool search --class terminator windowunmap %@

e o segundo reverte o efeito:

xdotool search --class terminator windowmap %@

Observe que, se a janela já estiver minimizada, o windowunmapcomando não terá êxito.

Para obter mais informações man xdotool, consulte o Ubuntu, páginas de manual online e minha resposta para esta pergunta relacionada .

Comunidade
fonte
2

Ao selecionar um conjunto de preferências no Terminator, você pode fazê-lo funcionar quase como o Guake.

Consulte o seguinte artigo para obter uma explicação detalhada.
http://www.webupd8.org/2011/07/install-terminator-with-built-in-quake.html

Aconselho você a seguir todas as etapas do artigo para obter os resultados desejados. Eu pulei alguns passos, pensando que eles não eram necessários, mas na verdade eram necessários para superar alguns bugs.

Hashken
fonte
0

Eu recomendaria simplesmente usar yakuake, um terminal no mesmo estilo que o guake para a área de trabalho do kde.

Você pode instalá-lo executando sudo apt-get install yakuake.

Alex L.
fonte
Não é possível sair do terminador. Estou usando desde então, nos últimos 2 anos. Quase viciado nisso agora. :)
Chirag
0

Bem, a solução mais simples seria apenas bloquear o Terminator no iniciador e usar os atalhos que o Ubuntu fornece.

Você pode iniciar qualquer aplicativo bloqueado no iniciador usando o atalho do iniciador:

Super + 1 a 9

Para obter uma lista completa dos atalhos disponíveis, mantenha pressionada a tecla Super .

Waqleh
fonte
0

Eu escrevi um script para aumentar e minimizar o terminal gnome com byobu no linux mint, porque o guake tem algumas bagunças estranhas na saída do console. Em seguida, adicionei-o aos atalhos na seção administrador do teclado-> shurtcuts.

script chamado guake-toggling-for-gnome-terminal.sh :

#!/usr/bin/env bash
if ! pgrep -x "gnome-terminal" > /dev/null
then
    gnome-terminal --app-id us.kirkland.terminals.byobu -e byobu
fi

byobuVisible=$(xdotool search --onlyvisible byobu)
byobuNotVisible=$(xdotool search byobu)
xdotool windowminimize ${byobuVisible}
xdotool windowraise ${byobuNotVisible}

Byobu é apenas o nome da janela aqui.

metanerd
fonte