터미널을 자주 사용하여 빠른 명령을 내린 다음 백그라운드에서 그대로 두어 작업하는 동안 20 개 이상의 터미널 세션을 열었습니다. 바로 가기 키를 사용하고 명령을 입력하는 것이 매우 빠르기 때문입니다.
바로 가기 키를 설정하여 새 터미널 창을 만드는 대신 마지막 터미널 창을 표시하는 방법이 있습니까?
터미널을 자주 사용하여 빠른 명령을 내린 다음 백그라운드에서 그대로 두어 작업하는 동안 20 개 이상의 터미널 세션을 열었습니다. 바로 가기 키를 사용하고 명령을 입력하는 것이 매우 빠르기 때문입니다.
바로 가기 키를 설정하여 새 터미널 창을 만드는 대신 마지막 터미널 창을 표시하는 방법이 있습니까?
답변:
10 번 위치에 Unity 런처 사이드 바에 터미널이 고정되어 있습니다.이 방법으로 Super+ 0를 눌러 런처 아이콘을 "클릭"하여 최신 터미널 창을 맨 위에 올릴 수 있습니다.
런처에 설치해도 괜찮은 경우 (처음 10 자리 중 하나, 그렇지 않으면 바로 가기가 표시되지 않습니다!)이 작동합니다.
나는 구크를 사용 하고 매우 기쁘다. F12를 누르면 터미널 창이 나타나고 F12를 다시 누르면 사라지지만 백그라운드에서 계속 실행됩니다. 또한 : 정말 멋지다.
아래의 스크립트를 키 조합으로 넣을 수 있습니다. 키 조합을 누르면 터미널 창이 사라집니다 (완전히). 다시 누르면, 원래 상태 그대로 다시 나타납니다.
터미널 창 이름에 식별 문자열을 추가하는 것만으로도 한 번만 수행하면됩니다 (터미널 창의 이름은 대부분 동일한 경우)
모두 설치 xdotool
및 wmctrl
:
sudo apt-get install xdotool
sudo apt-get install wmctrl
hide_terminal.py
키 조합으로 실행하십시오.
python3 /path/to/hide_terminal.py
#!/usr/bin/env python3
import subprocess
import os
home = os.environ["HOME"]
hidden_windowid = home+"/.window_id.txt"
get = lambda cmd: subprocess.check_output(cmd).decode("utf-8")
# --- set the identifying string in the terminal window's name below (you mentioned "Terminal"
window_idstring = "Special_window"
# ---
def execute(cmd):
subprocess.check_call(cmd)
w_id = [l.split()[0] for l in get(["wmctrl", "-l"]).splitlines() if window_idstring in l]
if len(w_id) !=0:
for w in w_id:
execute(["xdotool", "windowunmap", w])
with open(hidden_windowid, "a") as out:
out.write(w+"\n")
else:
try:
with open(hidden_windowid) as read:
for w in [w.strip() for w in read.readlines()]:
try:
execute(["xdotool", "windowmap", w])
except subprocess.CalledProcessError:
pass
with open(hidden_windowid, "wt") as clear:
clear.write("")
except FileNotFoundError:
pass
gnome-terminal
. 또한 열려있는 터미널이 둘 이상 있으면 중단됩니다. 내 시스템에서 첫 번째 실행은 활성을 숨기고 두 번째 실행은 두 번째를 숨기고 세 번째 실행은 두 번째 터미널 만 반환합니다. 첫 번째는 영원히 잃어 버렸습니다.
이것은 bash로 작성된 Jacob Vlijm의 대답과 동일합니다.
#!/usr/bin/env bash
## window_name will be the first argument passed or, if no
## argument was given, "Terminal"
window_name=${1:-"Terminal"}
## Get the list of open terminals
terms=( $(wmctrl -l | grep "$window_name" | cut -d ' ' -f 1) )
## If all terminals are hidden
if [ -z "${terms[0]}" ]
then
## Read the IDs of hidden windows from .hidden_window_id
while read termid
do
xdotool windowmap "$termid"
done < ~/.hidden_window_id
## If there are visible terminals
else
## Clear the .hidden_window_id file
> ~/.hidden_window_id
## For each open terminal
for i in "${terms[@]}"
do
## Save the current ID into the file
printf "%s\n" "$i" >> ~/.hidden_window_id
## Hide the window
xdotool windowunmap "$i"
done
fi
로 저장하면 ~/bin/show_hide.sh
숨기려는 창의 식별 문자열을 제공하여 실행할 수 있습니다. 문자열이 제공되지 않으면 다음과 같이 작동합니다 Terminal
.
show_hide.sh Terminal
다음 접근법이 나를 위해 일했습니다.
#!/usr/bin/env bash
# Written by Eric Zhiqiang Ma (http://www.ericzma.com)
# Last update: Jul. 9, 2014
# Read the tutorials at
# http://www.systutorials.com/5475/turning-gnome-terminal-to-a-pop-up-terminal/
# Required tools: xdotool
terminal="gnome-terminal"
stat_file="/dev/shm/actiavte-termianl.term.$USER"
termtype="Terminal"
wait_sec=1
max_wait_cnt=4
# parse options first
if [ "$1" != "" ]; then
terminal="$1"
fi
term_exists () {
allterms=`xdotool search --class "$termtype"`
for e in $allterms; do [[ "$e" == "$1" ]] && return 0; done
return 1
}
create_terminal () {
echo "Create new terminal"
$terminal --maximize &
exists=1
wait_cnt=0
until [ "$exists" == "0" ]; do
# sleep a while
sleep $wait_sec
# Note that the focus window may be from a terminal that
# already exists; the makes create_terminal choose the existing terminal
# Making the wait_sec large enough so that the terminal can be created and
# displayed can make the false choosing more unlikely.
term=$(xdotool getwindowfocus)
term_exists "$term"
exists=$?
# avoid infinite wait
let wait_cnt=wait_cnt+1
if [ $wait_cnt -gt $max_wait_cnt ]; then
echo "Wait for too long. Give up."
term=""
exists=0
fi
done
echo "Created terminal window $term"
# save the state
echo "$term" >$stat_file
}
# read the state
if [ -f $stat_file ]; then
term=$(cat $stat_file)
fi
# check whether it exists
term_exists "$term"
exists=$?
if [[ "$exists" != "0" ]]; then
create_terminal
exit 0
fi
# check whether it is already activated
curwin=$(xdotool getwindowfocus)
if [ "$term" == "$curwin" ]; then
# deactivate (minimize) the terminal if it is currently activated
xdotool windowminimize $curwin
else
# activate the terminal if it is not currently activated
xdotool windowactivate $term
fi
exit 0
그런 다음 실행 권한을 부여하고 스크립트를 설정의 키에 바인딩하십시오.
출처:
http://www.systutorials.com/5475/turning-gnome-terminal-to-a-pop-up-terminal/