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).


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 .


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.


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.


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 .


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.