Ubuntu 14.04 在活動畫面上啟動終端

Ubuntu 14.04 在活動畫面上啟動終端

我目前正在使用 Ubuntu 14.04兩個獨立的螢幕

當我使用鍵盤快捷鍵 Ctrl+Alt+T 啟動終端機時,終端機目前預設在左側螢幕上打開,即使我正在處理的螢幕是左側螢幕。

此問題適用於gnome 終端僅有的

我在想有什麼方法可以將終端設定為在目前活動的畫面中啟動

謝謝。

答案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. 該腳本需要wmctrlxdotool

    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-terminalCtrl++啟動的新視窗將始終「跟隨」目前活動畫面。AltT

筆記

如果沒有附加第二個螢幕,Ctrl++AltT只開啟一個新的終端機視窗。

相關內容