Terminatör emülatörünün guake gibi görünmesini ve kaybolmasını nasıl sağlarım?


14

Terminal emülatörü olarak 0.96 terminatörünü kullanıyorum. Nasıl arka planda çalışmasını ve guake terminali gibi görünmesini / kaybolmasını sağlayabilirim (yani bir kısayol tuşu kullanarak).


1
@hashken cevabı bunu gerçekten kolaylaştırıyor: webupd8.org/2011/07/install-terminator-with-built-in-quake.html
— Brandon Bertelsen

Yanıtlar:


17

Aynı şeyi yapmaya çalışıyordum (hem guake hem de terminatörün hayranı olmak). İşte geldiklerim ( desqua'nın bu soruya cevabının özelleştirilmiş bir versiyonu ):

Bir uygulamayı başlatmak veya zaten başlatılmışsa penceresini göstermek veya odaklanmışsa simge durumuna küçültmek için

1) wmctrl & xdotool'u veya bir terminale takın :sudo apt-get install wmctrl xdotool

2) Bir senaryo oluşturun:

  • Bir dosya yapın gedit ~ / bin / launch_focus_min.sh

Ve bunu yapıştırın:

#!/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
  • Yürütülebilir yap: chmod +x ~/bin/launch_focus_min.sh

3) Klavye kısayolunuzu yapın:

  • Klavye ayarlarınızı açın ve şu komutla özel bir kısayol oluşturun: /home/<user>/bin/launch_focus_min.sh terminator(~ / bin çalışmaz)

  • bu komutu Shift + Escape'e (veya guake için kullandığınız klavye kısayoluna) atayın.


Bunu denedim ama benim için işe yaramıyor.
— Chirag

Bu mükemmel bir çözüm, Terminatör en iyi ile Guake iyi, Teşekkürler.
— wranvaud

benim için çalışması için "~ / bin / launch_focus_min.sh terminator" yerine "/ home / <user> /bin/launch_focus_min.sh terminator" ifadesini değiştirmek zorunda kaldım
— Vituel

#!/bin/bash
— Zsh

4

Bunu yapmanın en kolay yolu kullanmak xdotoolve windowunmap/windowmapistenen pencereleri gizlemek / göstermek için bu komutu kullanmak olacaktır . (Bu yaklaşım söz konusu diğer cevaplarda belirtilmemiştir xdotool.) Çözüm, hangi pencere yöneticisini kullanırlarsa kullansın tüm masaüstü bilgisayarlarda iyi sonuç verecektir. Gibi manpage notları ,

X11 terminolojisinde, bir pencerenin eşlenmesi, pencerenin ekranda görünür kılınması anlamına gelir.

Bu nedenle, bir pencerenin eşleştirmesini kaldırmak tam tersini yapar ve pencereyi gizler. Ne yazık ki, xdotoolharita / eşleme durumları arasında geçiş yapmak için kullanılabilecek bir geçiş yok , ancak ihtiyacınız olan iki komut aşağıda. İlki pencereyi gizler:

xdotool search --class terminator windowunmap %@

ve ikincisi etkiyi tersine çevirir:

xdotool search --class terminator windowmap %@

Pencere zaten küçültülmüşse, windowunmapkomutun başarısız olacağını lütfen unutmayın .

Daha fazla bilgi için bkz man xdotool. Ubuntu çevrimiçi yönetiyor ve bu soruya cevabım .


2

Terminator'de bir dizi tercih seçerek, neredeyse Guake'e benzer bir şekilde çalışmasını sağlayabilirsiniz.

Ayrıntılı açıklama için aşağıdaki makaleye bakın.
http://www.webupd8.org/2011/07/install-terminator-with-built-in-quake.html

İstenilen sonuçları almak için makaledeki tüm adımları izlemenizi tavsiye ederim. Gerekli olmadığını düşünerek birkaç adım atladım, ancak bazı hataların üstesinden gelmek için gerçekten gerekliydi.


0

Basitçe yakuake, kde masaüstü için guake ile aynı tarzda bir terminal kullanmanızı tavsiye ederim .

Çalıştırarak kurabilirsiniz sudo apt-get install yakuake.


Sonlandırıcıdan ayrılamaz. Son 2 yıldan beri kullanıyorum. Şimdiye kadar neredeyse bağımlısı. :)
— Chirag

0

En basit çözüm, Terminator'u başlatıcıya kilitlemek ve Ubuntu'nun sağladığı kısayolları kullanmak olacaktır .

Başlatıcı kısayolunu kullanarak başlatıcıya kilitlenmiş herhangi bir uygulamayı başlatabilirsiniz:

Süper + 1 ila 9

Kullanılabilir hazır kısayolların tam listesi için Süper tuşunu basılı tutun .


0

Linux nane içinde byobu ile gnome terminalini yükseltmek ve en aza indirgemek için bir senaryo yazdım, çünkü guake'nin garip konsol çıktı karışıklıkları var. Sonra bunu yönetici klavyesi-> kapatma yolları bölümündeki kısayollara ekledim.

guake-toggling-for-gnome-terminal.sh adlı script :

#!/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 sadece buradaki pencere adı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.