¿Cómo hago que el emulador de terminador aparezca y desaparezca como guake?

Respuestas:

17

Intentaba hacer lo mismo (ser fanático de guake y terminator). Esto es lo que se me ocurrió (una versión personalizada de la respuesta de desqua a esta pregunta ):

Para iniciar una aplicación o mostrar su ventana si ya se inició o minimizar si está enfocada

1) Instale wmctrl y xdotool , o en un terminal:sudo apt-get install wmctrl xdotool

2) Hacer un guión:

  • Haga un archivo gedit ~ / bin / launch_focus_min.sh

Y pegue esto:

#!/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
  • Hazlo ejecutable: chmod +x ~/bin/launch_focus_min.sh

3) Haz tu atajo de teclado:

  • Abra la configuración del teclado y cree un shorcut personalizado con el comando: /home/<user>/bin/launch_focus_min.sh terminator(~ / bin no funcionará)

  • asigne este comando a Shift + Escape (o cualquier método abreviado de teclado que haya utilizado para guake).

olds22
fuente
Intenté esto pero no parece funcionar para mí.
Chirag
Esta es la solución perfecta, lo mejor de Guake con lo mejor de Terminator, gracias.
wranvaud
tuvo que cambiar "~ / bin / launch_focus_min.sh terminator" en "/ home / <user> /bin/launch_focus_min.sh terminator" para que funcione para mí
Vituel
Tuve que agregar un bash shebang al comienzo del archivo para que se ejecute correctamente en zsh:#!/bin/bash
sean_j_roberts
4

La forma más fácil de hacer esto sería usar xdotooly usar el windowunmap/windowmapcomando para ocultar / mostrar la clase de ventanas deseada. (Este enfoque no se mencionó en las otras respuestas que mencionan xdotool). La solución funcionará bien en todos los escritorios, independientemente del administrador de ventanas que estén utilizando. Como señala la página de manual ,

En la terminología X11, mapear una ventana significa hacerla visible en la pantalla.

Entonces, desasignar una ventana hará lo contrario y ocultará la ventana. Desafortunadamente, no hay una palanca disponible para usar xdotoolpara cambiar entre estados de mapa / no mapa, pero los dos comandos que necesita están a continuación. El primero esconde la ventana:

xdotool search --class terminator windowunmap %@

y el segundo revierte el efecto:

xdotool search --class terminator windowmap %@

Tenga en cuenta que si la ventana ya está minimizada, el windowunmapcomando no tendrá éxito.

Para obtener más información man xdotool, consulte las páginas de manual de Ubuntu en línea y mi respuesta a esta pregunta relacionada .

Comunidad
fuente
2

Al seleccionar un conjunto de preferencias en Terminator, puede hacer que funcione casi de manera similar a Guake.

Consulte el siguiente artículo para obtener una explicación detallada.
http://www.webupd8.org/2011/07/install-terminator-with-built-in-quake.html

Le aconsejaría que siga todos los pasos del artículo para obtener los resultados deseados. Me salté algunos pasos, pensando que no eran necesarios, pero en realidad eran necesarios para superar algunos errores.

Hashken
fuente
0

Recomendaría simplemente usar yakuakeun terminal en el mismo estilo que guake para el escritorio kde.

Puede instalarlo ejecutando sudo apt-get install yakuake.

Alex L.
fuente
No se puede dejar el terminador. Lo estoy usando desde hace 2 años. Casi adicto a eso por ahora. :)
Chirag
0

Bueno, la solución más simple sería simplemente bloquear Terminator en el iniciador y usar el accesos directos que proporciona Ubuntu.

Puede iniciar cualquier aplicación que esté bloqueada en el iniciador utilizando el acceso directo del iniciador:

Súper + 1 a 9

Para obtener una lista completa de los accesos directos disponibles, mantenga presionada la tecla Súper .

Waqleh
fuente
0

Escribí un script para aumentar y minimizar el terminal gnome con byobu en linux mint, porque guake tiene algunos problemas extraños en la salida de la consola. Luego lo agregué a los accesos directos en la sección de teclado de administrador-> accesos directos.

script llamado 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 es solo el nombre de la ventana aquí.

metanerd
fuente