Sto usando il terminatore 0.96 come emulatore di terminale. Come posso farlo funzionare in background e farlo apparire / scomparire come un terminale falso (cioè usando un tasto di scelta rapida).
Sto usando il terminatore 0.96 come emulatore di terminale. Come posso farlo funzionare in background e farlo apparire / scomparire come un terminale falso (cioè usando un tasto di scelta rapida).
Risposte:
Stavo provando a fare la stessa cosa (essendo un fan sia di guake che di terminator). Ecco cosa mi è venuto in mente (una versione personalizzata della risposta di desqua a questa domanda ):
Avviare un'applicazione o mostrare la sua finestra se già avviata o minimizzare se è focalizzata
1) Installa wmctrl & xdotool o in un terminale:sudo apt-get install wmctrl xdotool
2) Crea una sceneggiatura:
E incolla questo:
#!/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
chmod +x ~/bin/launch_focus_min.sh
3) Crea la scorciatoia da tastiera:
Apri le impostazioni della tastiera e crea uno shorcut personalizzato con il comando: /home/<user>/bin/launch_focus_min.sh terminator
(~ / bin non funzionerà)
assegna questo comando a Shift + Escape (o qualsiasi scorciatoia da tastiera che hai usato per guake).
#!/bin/bash
Il modo più semplice per farlo sarebbe usare xdotool
e usare il windowunmap/windowmap
comando per nascondere / scoprire la classe di finestre desiderata. (Questo approccio non è stato menzionato nelle altre risposte che menzionano xdotool
.) La soluzione funzionerà bene su tutti i desktop, indipendentemente dal gestore delle finestre che stanno utilizzando. Come osserva la pagina man ,
Nella terminologia X11, mappare una finestra significa renderla visibile sullo schermo.
Quindi, decomprimere una finestra farà il contrario e nasconderà la finestra. Sfortunatamente, non è disponibile alcun interruttore da utilizzare xdotool
per alternare gli stati mappa / non mappa, ma i due comandi necessari sono di seguito. Il primo nasconde la finestra:
xdotool search --class terminator windowunmap %@
e il secondo inverte l'effetto:
xdotool search --class terminator windowmap %@
Si noti che se la finestra è già ridotta a icona, il windowunmap
comando non avrà esito positivo.
Per ulteriori informazioni man xdotool
, consultare le manpage di Ubuntu online e la mia risposta a questa domanda correlata .
Selezionando una serie di preferenze in Terminator, puoi farlo funzionare in modo simile a Guake.
Fare riferimento al seguente articolo per una spiegazione dettagliata.
http://www.webupd8.org/2011/07/install-terminator-with-built-in-quake.html
Ti consiglierei di seguire tutti i passaggi nell'articolo per ottenere i risultati desiderati. Ho saltato alcuni passi, pensando che non fossero necessari, ma che in realtà erano necessari per superare alcuni bug.
Bene, la soluzione più semplice sarebbe quella di bloccare Terminator al launcher e usare le scorciatoie fornite da Ubuntu.
È possibile avviare qualsiasi applicazione bloccata all'avvio mediante il collegamento all'avvio:
Super + 1 a 9
Per un elenco completo delle scorciatoie già disponibili, tieni premuto il tasto Super .
Ho scritto una sceneggiatura per aumentare e minimizzare il terminale gnome con byobu in Linux Mint, perché Guake ha alcuni strani errori di output della console. Quindi l'ho aggiunto alle scorciatoie nella sezione della tastiera dell'amministratore-> shurtcuts.
script chiamato 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 è solo il nome della finestra qui.