Bagaimana cara membuat emulator terminator muncul dan menghilang seperti guake?


14

Saya menggunakan terminator 0.96 sebagai terminal emulator. Bagaimana saya bisa membuatnya berjalan di latar belakang dan membuatnya tampak / hilang seperti terminal guake (yaitu menggunakan tombol pintas).



Jawaban:


17

Saya mencoba melakukan hal yang sama (menjadi penggemar guake dan terminator). Inilah yang saya buat (versi khusus dari jawaban desqua untuk pertanyaan ini ):

Untuk meluncurkan aplikasi atau menampilkan jendelanya jika sudah diluncurkan atau untuk memperkecil jika fokus

1) Instal wmctrl & xdotool , atau di terminal:sudo apt-get install wmctrl xdotool

2) Buat skrip:

  • Buat file gedit ~ / bin / launch_focus_min.sh

Dan rekatkan ini:

#!/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
  • Jadikan itu dapat dieksekusi: chmod +x ~/bin/launch_focus_min.sh

3) Buat pintasan keyboard Anda:

  • Buka pengaturan keyboard Anda dan buat shorcut kustom dengan perintah: /home/<user>/bin/launch_focus_min.sh terminator(~ / bin tidak akan berfungsi)

  • tetapkan perintah ini ke Shift + Escape (atau pintasan keyboard apa pun yang Anda gunakan untuk guake).


Saya mencoba ini tetapi sepertinya tidak berhasil untuk saya.
Chirag

Ini adalah solusi sempurna, Yang terbaik dari Guake dengan yang terbaik dari Terminator, Terima kasih.
wranvaud

harus mengubah terminator "~ / bin / launch_focus_min.sh" menjadi "/ home / <user> /bin/launch_focus_min.sh terminator" agar dapat berfungsi untuk saya
Vituel

Saya harus menambahkan bash shebang ke awal file untuk menjalankannya dengan benar di bawah zsh:#!/bin/bash
sean_j_roberts

4

Cara termudah untuk melakukan ini adalah menggunakan xdotool, dan gunakan windowunmap/windowmapperintah untuk menyembunyikan / menyembunyikan kelas windows yang diinginkan. (Pendekatan ini tidak disebutkan dalam jawaban lain yang menyebutkan xdotool.) Solusi ini akan bekerja dengan baik di semua desktop, apa pun manajer jendela yang mereka gunakan. Sebagai catatan manual ,

Dalam terminologi X11, pemetaan jendela berarti membuatnya terlihat di layar.

Jadi, membuka peta suatu jendela akan melakukan yang sebaliknya dan menyembunyikannya. Sayangnya, tidak ada toggle yang tersedia untuk digunakan xdotooluntuk beralih antara peta / status unmap, tetapi dua perintah yang Anda butuhkan ada di bawah ini. Yang pertama menyembunyikan jendela:

xdotool search --class terminator windowunmap %@

dan yang kedua membalikkan efek:

xdotool search --class terminator windowmap %@

Harap dicatat bahwa jika jendela sudah diperkecil, windowunmapperintah tidak akan berhasil.

Untuk informasi lebih lanjut man xdotool, lihat manual Ubuntu online , dan jawaban saya untuk pertanyaan terkait ini .


2

Dengan memilih satu set preferensi di Terminator, Anda dapat membuatnya bekerja hampir mirip dengan Guake.

Lihat artikel berikut untuk penjelasan terperinci.
http://www.webupd8.org/2011/07/install-terminator-with-built-in-quake.html

Saya akan menyarankan Anda untuk mengikuti semua langkah dalam artikel untuk mendapatkan hasil yang diinginkan. Saya melewatkan beberapa langkah, berpikir itu tidak perlu, tetapi sebenarnya diperlukan untuk mengatasi beberapa bug.


0

Saya akan merekomendasikan hanya menggunakan yakuake, terminal dengan gaya yang sama dengan guake untuk desktop KDE.

Anda dapat menginstalnya dengan menjalankan sudo apt-get install yakuake.


Tidak dapat meninggalkan terminator. Saya menggunakannya sejak 2 tahun terakhir. Hampir kecanduan sekarang. :)
Chirag

0

Nah solusi paling sederhana adalah dengan mengunci Terminator ke launcher dan menggunakan pintasan yang disediakan Ubuntu.

Anda dapat memulai aplikasi apa pun yang dikunci ke peluncur menggunakan pintasan peluncur:

Super + 1 hingga 9

Untuk daftar lengkap pintasan yang tersedia, tahan tombol Super .


0

Saya menulis sebuah skrip untuk menaikkan dan meminimalkan terminal gnome dengan byobu di linux mint, karena guake memiliki beberapa kekacauan keluaran konsol yang aneh. Kemudian saya menambahkannya ke cara pintas di bagian administrator keyboard-> shurtcuts.

skrip bernama 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 hanyalah nama jendela di sini.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.