그놈 터미널의 단일 인스턴스?


8

터미널을 열고 이미 인스턴스가 열려있을 때 그 인스턴스를 표시하고 새로운 인스턴스를 열지 않는 방식으로 그놈 터미널을 설정하고 싶습니다.


어떤 버전의 우분투를 사용하고 있으며 어떤 환경입니까? 나는 당신이 묘사하는 것이 unity와 gnome-shell의 기본 설정이기 때문에 묻습니다.
martin

Unity-2D와 함께 Ubuntu 11.10을 사용하고 있습니다. 새로 설치하지 않았지만 11.04에서 업그레이드했습니다.
Mood

Ctrl + Alt + T를 바로 가기로 사용합니까?
int_ua

예. Kupfer에 "ter»enter"를 입력하여 터미널을 시작합니다. 그것들은 내가 사용하는 두 가지 방법입니다. Unity 로커를 너무 자주 보지 않기 때문에 3, 4 개의 다른 터미널로 끝납니다.
Mood

답변:


9

터미널에 초점을 맞추기 위해 wmctrl을 사용하여 간단한 쉘 스크립트를 작성했습니다. 내가 원하는 것을 정확하게 수행합니다.

먼저 wmctrl을 설치하십시오 sudo apt-get install wmctrl.

그런 다음 텍스트 편집기를 실행하고 다음 줄을 복사하십시오.

#!/bin/sh
SERVICE='gnome-terminal'

if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
  wmctrl -xa $SERVICE
else
  $SERVICE
fi

일반적으로 쉘 스크립트를 보관하는 곳에 파일을 저장하십시오. 제 경우에는 : ~/bin/single_instance.sh

디렉토리 ( cd ~/bin)로 cd 하고 파일을 실행 가능하게하십시오.chmod +x single_instance.sh

이제 주 메뉴 선택 보조 프로그램»터미널 프레스 속성을 열고 명령을 스크립트로 바꿉니다.~/bin/single_instance.sh

시스템 설정»키보드»단축키를 엽니 다 . 백 스페이스를 제공하여 터미널 시작 바로 가기를 비활성화하십시오 . 사용자 정의 바로 가기를 만듭니다. 스크립트의 경로와 이름을 다시 입력하고 키 조합 ctrl + alt + t를 지정하십시오 .

끝났어, 단일 인스턴스 터미널 ...


왜 스크립트를 기본 터미널 실행기로 만드시겠습니까? 왜 모든 단계에서 바로 가기를 추가해야합니까? 스크립트의 경우 +1, 구현의 경우 -1
Bruno Pereira

솔직히 말해서… 어떻게해야할지 모르겠습니다. 기본 응용 프로그램을 살펴본 결과 터미널이 보이지 않습니다. 또한 이전 버전의 Ubuntu에는 명령을 입력 할 수있는 텍스트 필드가 있다고 확신합니다. 이 기본 앱 버전은 모두 드롭 다운 메뉴입니다.
Mood

2

런처 명령에 --tab 을 추가하십시오 . 그런 다음 하나의 앱으로 끝납니다. 열다.

~$ gnome-terminal --help-all
:
--tab       Open a new tab in the last-opened window with the default profile

아니요, 새 탭을 원하지 않습니다. 마지막으로 남은 상태에서 터미널을 전경으로 옮기기를 원합니다.
Mood

1
이것은 우분투 16.04에서 나를 위해 새 창을 엽니 다
beruic

0

응용 프로그램을 열기 위해 Mod4+#( Mod4= Super = "Windows"키, #실행기 번호 임) 바로 가기를 사용하는 것이 기본 동작 입니다.


예, 알고 있습니다. 그래도 시작하려면 터미널을 열어야합니다. control + alt + t를 누르거나 Kupfer에서 열 때 의미했습니다. 예를 들어 Chrome과 같은 동작을 찾고 있습니다. 인스턴스가 열려 있으면 해당 인스턴스를 표시하고 인스턴스가없는 경우 새 인스턴스를 엽니 다.
Mood

0

@Mood의 스크립트를 약간 일반화하고 단순화했습니다. 이제 명령 행 매개 변수를 사용하고 대신 pgrep을 사용하십시오.

sudo apt-get install procps

스크립트 :

#!/usr/bin/env bash

if pgrep $1
then
    wmctrl -xa $1
else
    $1
fi

0

매우 유용한 스크립트를 추가하고 싶습니다.

  1. 현재 작업 공간에 그놈 터미널이있는 경우, 그 맨 앞을 가져 와서 초점을줍니다.
  2. 현재 작업 공간에 그놈 터미널이 없으면 작업 공간을 전환하고 찾은 첫 번째 기존 그놈 터미널을 가져와 초점을 맞 춥니 다.
  3. 실행중인 gnome-terminal 인스턴스가 없으면 새 인스턴스를 열고 앞쪽으로 가져와 초점을 맞 춥니 다.

이 스크립트를 실행하기 위해 Ctrl + Alt + T 단축키를 구성했으며 Guake 또는 Tilda보다 훨씬 편안합니다.

#!/usr/bin/env sh

# APP is the binary name you see when you do ps
APP="gnome-terminal"
# WIN_CLASS is the window class you see when you do wmctrl -lx
WIN_CLASS="gnome-terminal-server.Gnome-terminal"

# Use the app from current workpace first, or any if not available
WORKSPACE=$(wmctrl -d | grep '\*' | cut -d ' ' -f1)
TPID=$(ps aux | pgrep $APP)
if [ "$TPID" ]
then
  QTERM_WIN=$(wmctrl -lx | grep $WIN_CLASS | grep $WORKSPACE  | awk 'NR == 1 {print $1}')
  if [ "$QTERM_WIN" ]
  then
    wmctrl -ia $QTERM_WIN
  else
    # No valid app found in the current workspace, switch to any
    QTERM_WIN=$(wmctrl -lx | grep $WIN_CLASS | awk 'NR == 1 {print $1}')
    wmctrl -ia $QTERM_WIN
  fi
else
  $APP &
fi

QTerminal과 함께 사용하지만 필요에 맞게 수정했습니다. 행운을 빕니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.