Ubuntu 14.04 활성 화면에서 터미널 시작

Ubuntu 14.04 활성 화면에서 터미널 시작

저는 현재 Ubuntu 14.04에서 작업 중입니다.두 개의 별도 화면.

터미널을 시작하기 위해 키보드 단축키인 Ctrl+Alt+T를 사용하면 작업 중인 화면이 왼쪽에 있는 화면이더라도 터미널은 현재 기본적으로 왼쪽 화면에서 열리도록 설정되어 있습니다.

이 문제는 다음에 적용됩니다.그놈 터미널오직

궁금하네요현재 활성화된 화면에서 터미널이 실행되도록 설정하는 방법이 있습니까??

감사해요.

답변1

Ctrl+ Alt+ 로 시작된 새 터미널 창을 T현재 활성 화면에서 여는 방법은 무엇입니까?

하지만매우많은 관련이 있다이 하나, 속이는 것이 아니며 완전히 다른 솔루션이 필요합니다. 귀하의 질문은 에만 해당되며 gnome-terminal바로가기를 사용하여 응용프로그램을 시작하고 있습니다. 이 둘은 배경 스크립트를 불필요하게 만들고 몇 가지 추가 정보를 요청합니다.

해결책

단축키로 터미널을 시작하기 때문에 깔끔한 영혼을 만드는 것이 상대적으로 쉽습니다. 래퍼 스크립트를 실행하기 위해 Ctrl++ Alt로 호출되는 명령을 간단히 대체할 수 있습니다 . T이 래퍼는 새 인스턴스를 시작하고 새 창이 나타날 때까지 기다린 다음 마우스의 현재 위치를 확인하고 새 gnome-terminal창을 해당 화면으로 이동합니다.

스크립트

#!/usr/bin/env python3
import subprocess
import time

app = "gnome-terminal"

def get(cmd):
    return subprocess.check_output(cmd).decode("utf-8").strip()

def screen_limit():
    screendata = [s for s in get("xrandr").split() if s.count("+") == 2]
    if len(screendata) == 2:
        return int([s.split("x")[0] for s in screendata if "+0+0" in s][0])

rightside = screen_limit()
if rightside:
    ws1 = get(["wmctrl", "-lpG"]); t = 0
    subprocess.Popen(app)
    while t < 30:      
        ws2 = [w for w in get(["wmctrl", "-lpG"]).splitlines() if not w in ws1]
        if ws2:
            try:
                pid = get(["pgrep", "-f", app])
            except subprocess.CalledProcessError:
                pass
            else:
                match = [w for w in ws2 if pid in w]
                if match:
                    match = match[0].split()
                    mousepos = int(get(["xdotool", "getmouselocation"]).split()[0].split(":")[1])
                    check = [mousepos < rightside, int(match[3]) < rightside]
                    if check[0] != check[1]:
                        cmd = ["xdotool", "windowmove", match[0], str(int(match[3]) + rightside), match[4]] \
                              if check[0] == False else \
                              ["xdotool", "windowmove", match[0], str(int(match[3]) - rightside), match[4]]                       
                        subprocess.Popen(cmd)
                    break
        time.sleep(0.5); t += 1
else:
    subprocess.Popen(app)

사용하는 방법

  1. 스크립트에는 wmctrl및 다음이 모두 필요합니다 xdotool.

    sudo apt-get install wmctrl xdotool
    
  2. 위 스크립트를 빈 파일에 복사하고 다른 이름으로 저장하세요.move_terminal.py
  3. Ctrl이제 + Alt+ 로 실행되는 기본 명령을 변경해야 합니다 .T

    • 먼저 다음 명령으로 현재 단축키를 비활성화합니다.

      gsettings set org.gnome.settings-daemon.plugins.media-keys terminal ""
      

      그러면 바로가기를 다시 사용할 수 있게 됩니다.

    • 그런 다음 사용자 정의 단축키에 새 명령을 추가합니다. 시스템 설정 > "키보드" > "단축키" > "사용자 정의 단축키"를 선택합니다. "+"를 클릭하고 다음 명령을 추가합니다.

      python3 /path/to/move_terminal.py
      

      바로가기로 Ctrl+ Alt+T

이제 ++ 에 의해 gnome-terminal시작된 새 창은 항상 현재 활성 화면을 "따릅니다".CtrlAltT

메모

두 번째 화면이 연결되어 있지 않으면 Ctrl+ Alt+는 T새 터미널 창을 엽니다.

관련 정보