터미널 에뮬레이터로 터미네이터 0.96을 사용하고 있습니다. 백그라운드에서 실행하여 구크 터미널처럼 표시되거나 사라지는 방법 (예 : 바로 가기 키 사용)
터미널 에뮬레이터로 터미네이터 0.96을 사용하고 있습니다. 백그라운드에서 실행하여 구크 터미널처럼 표시되거나 사라지는 방법 (예 : 바로 가기 키 사용)
답변:
나는 똑같은 일을하려고 노력했다 (구아와 터미네이터의 팬이 됨). 다음은 내가 생각해 낸 내용입니다 ( 이 질문에 대한 desqua 의 답변 의 사용자 정의 버전 ).
응용 프로그램을 시작하거나 이미 시작된 경우 창을 표시하거나 초점이 맞춰진 경우 최소화
1) wmctrl & xdotool 또는 터미널에 설치하십시오.sudo apt-get install wmctrl xdotool
2) 스크립트를 작성하십시오.
그리고 이것을 붙여 넣으십시오 :
#!/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 (또는 구킹에 사용한 키보드 단축키)에 할당하십시오.
#!/bin/bash
가장 쉬운 방법은 use xdotool
이며 windowunmap/windowmap
명령을 사용 하여 원하는 창 클래스를 숨기거나 숨기기를 해제합니다. (이 접근법은 언급 된 다른 답변에서는 언급되지 않았습니다 xdotool
.) 솔루션은 사용중인 창 관리자에 관계없이 모든 데스크탑에서 잘 작동합니다. 현상태대로 맨 노트 ,
X11 용어에서 창을 매핑하면 화면에서 창을 볼 수 있습니다.
따라서 창의 매핑을 해제하면 반대의 작업이 수행되고 창이 숨겨집니다. 불행히도, xdotool
맵 / 맵 해제 상태를 전환하는 데 사용할 수있는 토글은 없지만 필요한 두 명령은 다음과 같습니다. 첫 번째는 창을 숨 깁니다.
xdotool search --class terminator windowunmap %@
두 번째는 효과를 되돌립니다.
xdotool search --class terminator windowmap %@
창이 이미 최소화 된 경우 windowunmap
명령이 실패합니다.
자세한 내용은 다음을 참조 man xdotool
는 온라인 우분투 맨 페이지를 , 그리고 이 관련 질문에 대한 내 대답 .
터미네이터에서 환경 설정 세트를 선택하면 Guake와 거의 유사하게 작동 할 수 있습니다.
자세한 설명은 다음 기사를 참조하십시오.
http://www.webupd8.org/2011/07/install-terminator-with-built-in-quake.html
기사의 모든 단계를 수행하여 원하는 결과를 얻는 것이 좋습니다. 나는 그것이 필요하지 않다고 생각하면서 몇 단계를 건너 뛰었지만 실제로 몇 가지 버그를 극복하기 위해 필요했습니다.
guake에는 이상한 콘솔 출력 엉망이 있기 때문에 리눅스 민트에서 byobu로 그놈 터미널을 올리고 최소화하는 스크립트를 작성했습니다. 그런 다음 관리자 키보드-> 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는 여기서 창 이름 일뿐입니다.