ฉันจะทำให้เทอร์มินัลอีมูเลเตอร์ปรากฏขึ้นและหายไปได้อย่างผิด ๆ ?


14

ฉันใช้ terminator 0.96 เป็นเทอร์มินัลอีมูเลเตอร์ ฉันจะทำให้มันทำงานในพื้นหลังและทำให้มันปรากฏ / หายไปเช่น guake terminal (เช่นการใช้ปุ่มทางลัด)


1
@hashken คำตอบทำให้เป็นเรื่องง่ายมาก: webupd8.org/2011/07/install-terminator-with-built-in-quake.html
Brandon Bertelsen

คำตอบ:


17

ฉันพยายามทำสิ่งเดียวกัน (เป็นแฟนของทั้ง guake และ terminator) นี่คือสิ่งที่ฉันคิดขึ้นมา ( คำตอบของdesquaรุ่นที่กำหนดเองสำหรับคำถามนี้ ):

เพื่อเปิดแอปพลิเคชันหรือแสดงหน้าต่างของมันหากเปิดใช้แล้วหรือย่อเล็กสุดหากมีการโฟกัส

1) ติดตั้งwmctrl & xdotoolหรือในเทอร์มินัล:sudo apt-get install wmctrl xdotool

2) สร้างสคริปต์:

  • ทำไฟล์ gedit ~ / bin / launch_focus_min.sh

และวางสิ่งนี้:

#!/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) ทำให้แป้นพิมพ์ลัดของคุณ:

  • เปิดการตั้งค่าแป้นพิมพ์และสร้าง shorcut ที่กำหนดเองด้วยคำสั่ง: /home/<user>/bin/launch_focus_min.sh terminator(~ / bin จะไม่ทำงาน)

  • กำหนดคำสั่งนี้ให้กับ Shift + Escape (หรือแป้นพิมพ์ลัดใด ๆ ที่คุณใช้เพื่อกิน guake)


ฉันลองสิ่งนี้ แต่ดูเหมือนจะไม่เหมาะกับฉัน
Chirag

นี่คือทางออกที่สมบูรณ์แบบ Guake ที่ดีที่สุดของ Terminator ขอบคุณ
wranvaud

ต้องเปลี่ยน "~ / bin / launch_focus_min.sh terminator" เป็น "/ home / <user> /bin/launch_focus_min.sh terminator" เพื่อให้ใช้งานได้สำหรับฉัน
Vituel

ฉันต้องเพิ่ม bash shebang ไปที่จุดเริ่มต้นของไฟล์เพื่อให้มันทำงานอย่างถูกต้องภายใต้ zsh:#!/bin/bash
394

4

วิธีที่ง่ายที่สุดในการทำเช่นนี้คือใช้xdotoolและใช้windowunmap/windowmapคำสั่งเพื่อซ่อน / เลิกซ่อนคลาสของหน้าต่างที่ต้องการ (วิธีการนี้ไม่ได้กล่าวถึงในคำตอบอื่น ๆ ที่กล่าวถึงxdotool) โซลูชันจะทำงานได้ดีกับเดสก์ท็อปทั้งหมดไม่ว่าจะใช้ตัวจัดการหน้าต่างใด ในฐานะที่เป็นบันทึก manpage ,

ในคำศัพท์ X11 การแมปหน้าต่างหมายถึงทำให้มองเห็นได้บนหน้าจอ

ดังนั้นการเปิดหน้าต่างออกจะทำตรงกันข้ามและซ่อนหน้าต่าง น่าเสียดายที่ไม่มีการสลับใช้งานด้วยxdotoolเพื่อสลับไปมาระหว่าง map / unmap state แต่คำสั่งสองคำสั่งที่คุณต้องการอยู่ด้านล่าง วิธีแรกซ่อนหน้าต่าง:

xdotool search --class terminator windowunmap %@

และครั้งที่สองกลับผล:

xdotool search --class terminator windowmap %@

โปรดทราบว่าหากหน้าต่างถูกย่อให้เล็กสุดแล้ว windowunmapคำสั่งจะไม่สำเร็จ

ดูข้อมูลเพิ่มเติมได้man xdotoolที่Ubuntu จัดการออนไลน์และตอบคำถามที่เกี่ยวข้องนี้


2

ด้วยการเลือกชุดของการตั้งค่าใน Terminator คุณสามารถทำให้มันทำงานคล้ายกับ Guake

อ้างถึงบทความต่อไปนี้สำหรับคำอธิบายโดยละเอียด
http://www.webupd8.org/2011/07/install-terminator-with-built-in-quake.html

ฉันอยากแนะนำให้คุณทำตามขั้นตอนทั้งหมดในบทความเพื่อให้ได้ผลลัพธ์ที่ต้องการ ฉันข้ามไปสองสามก้าวโดยคิดว่าพวกเขาไม่จำเป็น แต่จริงๆแล้วก็ต้องการเอาชนะข้อบกพร่องบางอย่าง


0

ฉันอยากจะแนะนำเพียงแค่ใช้yakuakeเทอร์มินัลในลักษณะเดียวกับ guake สำหรับเดสก์ท็อป kde

sudo apt-get install yakuakeคุณสามารถติดตั้งได้โดยการเรียกใช้


ไม่สามารถออกจาก terminator ฉันใช้มันตั้งแต่ 2 ปีที่แล้ว เกือบจะติดมันแล้ว :)
Chirag

0

ทางออกที่ง่ายที่สุดคือล็อคเทอร์มิเนเตอร์เพื่อเรียกใช้และใช้ทางลัดที่อูบุนตูเตรียมไว้ให้

คุณสามารถเริ่มแอพพลิเคชั่นใด ๆ ที่ล็อคไว้กับตัวเรียกใช้โดยใช้ทางลัดของตัวเรียกใช้งาน:

Super + 1 ถึง 9

สำหรับรายการทางลัดที่พร้อมใช้งานทั้งหมดให้กดปุ่มSuperค้างไว้


0

ฉันเขียนสคริปต์เพื่อเพิ่มและลด terminal gnome ด้วย byobu ใน linux mint เพราะ guake มีคอนโซลเอาต์พุตแปลก ๆ จากนั้นฉันเพิ่มลงในทางลัดในส่วนคีย์บอร์ดผู้ดูแลระบบ -> shurtcuts

สคริปต์ชื่อ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 เป็นเพียงชื่อหน้าต่างที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.