Empêcher Ctrl-Alt-T d'ouvrir une nouvelle fenêtre de terminal s'il en existe une?

4

J'aimerais savoir s'il existe un moyen de faire en sorte que le raccourci Ctrl-Alt-T se comporte comme il le ferait sous xfce. C'est-à-dire: si aucun terminal n'est ouvert, ouvrez-en un, sinon concentrez-vous sur l'existant au lieu d'en ouvrir un nouveau. Idéalement sans avoir à installer des choses comme xdotool.

J'utilise manjaro linux avec cannelle (3.0.7) et gnome-terminal (3.20.2).

K. Rauscher
la source
Je sais que ce n'est pas techniquement répondez à votre question, mais jetez un oeil à Guake , c’est un terminal qui glisse par le haut et peut être ouvert en utilisant un raccourci clavier personnalisé (il ouvre le terminal existant par défaut)
cascer1

Réponses:

0

Le code en https://stackoverflow.com/questions/1380784/how-to-get-list-opened-windows-in-pygtk-or-gtk-in-ubuntu vous dira si un terminal est ouvert et vous devrez alors focaliser le terminal. (Bien sûr, s'il n'y a pas de terminal, ouvrez-en un nouveau.) De plus, vous devrez brancher le raccourci Ctrl-Alt-T au mini programme que vous créez et qui contrôle tout.

Modifier avec le code de travail:

#!/usr/bin/python

import gi
gi.require_version('Wnck', '3.0')
from gi.repository import GdkX11, Gdk, Wnck
import subprocess   

screen = Wnck.Screen.get_default()
screen.force_update()  # recommended per Wnck documentation

# loop all windows
for window in screen.get_windows():
    window_name = window.get_name()
    print window_name
    if window_name == "your_terminal_name_here":
        now = GdkX11.x11_get_server_time(Gdk.get_default_root_window())
        window.activate(now)
        break
    continue
else:
    subprocess.call("gnome-terminal")

    # clean up Wnck (saves resources, check documentation)
window = None
screen = None
Wnck.shutdown()

Placez ce code dans un fichier appelé check_window.py et associez-lui un raccourci dans Préférences & gt; Clavier & gt; Raccourcis Rendre le fichier exécutable avec chmod +x check_window.py Remplacer if window_name == "your_terminal_name_here": avec le nom de votre terminal. Si vous lancez cette application une fois avec la fenêtre de votre terminal ouverte, vous obtiendrez le nom de vos fenêtres.

theGtknerd
la source