Terminal de inicio de Ubuntu 14.04 en pantalla activa

Terminal de inicio de Ubuntu 14.04 en pantalla activa

Actualmente estoy trabajando en Ubuntu 14.04 endos pantallas separadas.

Cuando uso el método abreviado de teclado para iniciar el terminal, Ctrl+Alt+T, el terminal actualmente está predeterminado para abrirse en la pantalla de la izquierda, incluso si la pantalla en la que estoy trabajando es la de la izquierda.

Este problema se aplica aterminal-gnomesolo

me pregunto¿Hay alguna forma de configurar el terminal para que se inicie en cualquier pantalla que esté actualmente activa??

Gracias.

Respuesta1

¿Cómo hacer que se abra una nueva ventana de terminal, iniciada por Ctrl+ Alt+ Ten la pantalla actualmente activa?

A pesar deMuymuy relacionado conÉste, no un engañado, y requiere una solución completamente diferente. Su pregunta es específica gnome-terminaly está utilizando un acceso directo para iniciar la aplicación. Estos dos hacen innecesario un script en segundo plano y solicitan información adicional.

La solución

Dado que inicia el terminal con una tecla de acceso directo, es relativamente fácil crear una solución limpia; simplemente podemos reemplazar el comando, llamado por Ctrl+ Alt+ T, para ejecutar un script contenedor. Este contenedor iniciará una nueva instancia, esperará a que aparezca la nueva ventana, observará la posición actual del mouse y moverá la nueva gnome-terminalventana a la pantalla correspondiente.

La secuencia de comandos

#!/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)

Cómo utilizar

  1. El guión necesita ambos wmctrly xdotool:

    sudo apt-get install wmctrl xdotool
    
  2. Copie el script anterior en un archivo vacío, guárdelo comomove_terminal.py
  3. Ahora necesitamos modificar el comando predeterminado, ejecutado por Ctrl+ Alt+T

    • Primero deshabilite el acceso directo actual con el comando:

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

      Esto hará que el acceso directo esté disponible nuevamente.

    • Luego agregue un nuevo comando a las teclas de acceso directo personalizadas: elija: Configuración del sistema > "Teclado" > "Atajos de teclado" > "Atajos de teclado personalizados". Haga clic en "+" y agregue el comando:

      python3 /path/to/move_terminal.py
      

      al atajo Ctrl+ Alt+T

Ahora su nueva gnome-terminalventana, iniciada por Ctrl+ Alt+ Tsiempre "seguirá" la pantalla actualmente activa.

Nota

Si no hay una segunda pantalla adjunta, Ctrl+ Alt+ Tsimplemente abrirá una nueva ventana de terminal.

información relacionada