Wie ändere ich Fenstertitel dauerhaft?

17

Welche Dateien sind an der Generierung des Fenstertitels beteiligt? Wenn Sie beispielsweise Rhythmbox öffnen, wird der Programmname als Fenstertitel angezeigt. Aber es wird nicht von der .desktopDatei generiert . Welche Datei (en) muss ich bearbeiten, um dem Titel einer Anwendung Text hinzuzufügen? Ich möchte, dass die Änderungen dauerhaft sind

Ich verwende Ubuntu GNOME 15.04 mit GNOME 3.16.

Maud Kon
quelle
Hallo Maud. Ich habe Ihre Frage geliebt und sie hat zu einer sehr schönen Lösung geführt. Ich kann jedoch nicht widerstehen, eine Sache zu erwähnen, die bei zukünftigen Fragen zu beachten ist: Bitte ändern Sie die Bedeutung der Frage nicht drastisch, nachdem die Antworten veröffentlicht wurden. Es gibt Antworten, die ursprünglich in der ersten Version der Frage adäquat gepostet und in der bearbeiteten Version anscheinend falsch platziert wurden. Ich denke, genau das ist mit meiner Antwort passiert. Ich würde vorschlagen, stattdessen eine neue Frage zu posten, insbesondere zu Ihrer eigentlichen Frage, wenn Sie Ihre Frage überdenken.
Jacob Vlijm
1
Ich verstehe Ihre Meinung und werde dies mit Sicherheit bei zukünftigen Fragen tun, da ich sehen kann, wie verwirrend es für die Menschen sein kann. Ich unterschätze Ihren Beitrag zum Thread auf keinen Fall, lassen Sie das klar sein. Ich wollte, dass der Titel genauer definiert wird, da der Originaltitel meine eigentliche Frage nicht abdeckte und ein wenig Unsicherheit darüber aufkommen ließ, was mein Ziel mit diesem Thread war. Danke für Ihre Hilfe! :)
Maud Kon

Antworten:

21

Der ursprüngliche Name wird normalerweise durch den (Code innerhalb) der Anwendung selbst festgelegt. Sie können es jedoch ändern, z. B. indem Sie verwenden xdotool, was Sie zuerst installieren müssten:

sudo apt-get install xdotool

Sobald es installiert ist, können Sie einen anderen Fensternamen festlegen, indem Sie (z. B.) den folgenden Befehl ausführen:

xdotool search --name "Unity LauncherSwitcher" set_window --name "Monkey"

Dies wird sich ändern:

Bildbeschreibung hier eingeben

in:

Bildbeschreibung hier eingeben

Hinweis

Wie Sie sehen, besteht der Befehl aus:

xdotool search --name "<current_name>" set_window --name "<new_name>"

Das <current_name>muss genau passen.


Bearbeiten Alternativ

Aus Ihrem Kommentar geht hervor, dass der obige Befehl nicht funktioniert hat. Ich habe es mit verschiedenen Anwendungen getestet und es hat funktioniert ...

Aber aus einem Grund verstehe ich nicht, NICHT mit Rhytmbox (!! könnte ein Bug sein)

Eine Alternative ist die Verwendung wmctrl, die Sie ebenfalls installieren müssten:

sudo apt-get install wmctrl

Dann benutze den Befehl:

xprop -id "$(wmctrl -l | grep 'Rhythmbox' | awk '{ print $1 }')" -set WM_NAME "Music"

Ich habe es erfolgreich getestet auf Rhythmbox:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Änderungen dauerhaft vornehmen?

Wie bereits erwähnt, ist der Standardfenstername im Code der Anwendung definiert.

Wenn Sie den Standard- Fenstertitel ändern, muss der Code geändert werden. Dies ist möglich, wenn der Code verfügbar ist, in vielen Fällen neu kompiliert werden muss und unter anderem von der verwendeten Sprache abhängt. Eine allgemeine Anweisung wäre meiner Meinung nach völlig unmöglich und würde (außerhalb) des Geltungsbereichs der AU liegen.


BEARBEITEN 2

Flexible Verwaltung / Einstellung von benutzerdefinierten Fensternamen pro Anwendung aus einer einzigen Datei

In Ihrer ursprünglichen Frage haben Sie sich gefragt, ob es eine Art Datei gibt, mit der der Titel neuer Fenster einer bestimmten Anwendung festgelegt werden kann. Wie bereits erläutert, ist dies nicht der Fall, kann jedoch erstellt werden.

Im Setup unten können Sie ganz einfach pro Anwendung definieren, wie neue Fenster benannt werden. Erstellen Sie einfach eine Datei mit dem Namen in ~(Ihrem Home-Verzeichnis) window_names.txt. Fügen Sie für jede Anwendung, für die Sie einen bestimmten Fensternamen festlegen möchten, eine Zeile mit der Anwendung und dem gewünschten Fensternamen hinzu:

Eine Textdatei, die Fensternamen pro Anwendung definiert

gnome-terminal Monkey eats
gedit Banana
rhythmbox if he runs out of peanuts

Bildbeschreibung hier eingeben

Erläuterung

Das Setup besteht aus einem einfachen Hintergrundskript. Das Skript ist sehr leicht, so dass es keinen merklichen Einfluss auf die Leistung hat.

Sobald das Skript gestartet ist, liest es die Datei ~/window_names.txtund lädt die Einstellungen pro Anwendung. Dann behält es neu im Auge erstellte Fenster im behalten. Wenn ein Fenster angezeigt wird, das zu einer der in der Datei definierten Anwendungen gehört, wird der Fenstername entsprechend festgelegt.

Wie stellt man das ein

  1. Das Skript verwendet beide wmctrlund xdotool:

    sudo apt-get install wmctrl
    sudo apt-get install xdotool
    
  2. Kopieren Sie das Skript in eine leere Datei und speichern Sie es unter setwindowname.py

  3. Erstellen Sie die Datei ~/window_names.txt(genau benannt window_names.txt) und fügen Sie Ihre Anwendungen im folgenden Format hinzu:

    <application> <window_name>
    

    z.B

    gedit Text editor
    

    Der Fenstername kann Leerzeichen enthalten.

  4. Führen Sie das Skript mit dem folgenden Befehl vom Terminal aus:

    python3 /path/to/setwindowname.py
    
  5. Wenn alles wie erwartet funktioniert, fügen Sie es zu den Startanwendungen hinzu: Dash> Startanwendungen> Hinzufügen

    Beachten Sie, dass in einigen Fällen ein Skript möglicherweise unterbrochen wird, wenn der Desktop noch nicht vollständig geladen ist. In diesem Fall lautet der Befehl zum Hinzufügen zu Startanwendungen wie folgt:

    /bin/bash -c "sleep 15&&python3 /path/to/setwindowname.py"
    

Das Drehbuch

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

f = os.environ["HOME"]+"/"+"window_names.txt"

change = []
lines = open(f).read().splitlines()
for l in lines:
    try:
        change.append([l.split()[0], (" ").join(l.split()[1:])])
    except IndexError:
        pass

get = lambda cmd: subprocess.check_output(cmd).decode("utf-8").strip()
curr_1 = []

while True:
    try:
        curr_2 = get(["wmctrl", "-lp"]).splitlines()
        new = [w for w in curr_2 if not w in curr_1]
        for item in new:
            line = item.split(); pid = line[2]
            procs = get(["ps", "-e"]).splitlines()
            match = [l for l in procs if pid in l][0]
            for app in [app for app in change if app[0] in match]:
                subprocess.Popen(["xdotool", "set_window", "--name", app[1], line[0]])
        curr_1 = curr_2
        time.sleep(0.3)
    except:
        pass

Anmerkungen

  • Wenn die Datei ~/window_names.txtbearbeitet wird, muss das Skript neu gestartet werden.
  • Es funktioniert unabhängig davon, wie eine Anwendung gestartet wird. Es funktioniert auch, wenn Anwendungen vom Terminal / und oder mit ausgeführt werden sudo.
  • Es beeinträchtigt nicht die Rechtsklick-Option von any Anwendung .
  • Das Skript "pflegt" auch den Fensternamen; Wenn ein anderer Prozess den Fensternamen danach ändert (Tabs öffnen, Verzeichnisse wechseln, z. B.), sieht das Skript das Fenster als "neues Fenster" und behält den Fensternamen Ihrer Wahl bei.
Jacob Vlijm
quelle
Es tut mir leid, das hat bei mir nicht funktioniert.
Maud Kon
xdotool search --name "Rhythmbox" set_window --name "Music" Ich habe den Befehl mit der Anwendung geöffnet, geschlossen und einen Neustart (Alt + F2 + R) durchgeführt, um zu überprüfen, ob es funktioniert hat, aber es zeigt immer noch den gleichen Fenstertitel.
Maud Kon
Beeindruckend! Dieses Mal bin ich wirklich beeindruckt! Ich werde es gleich morgen früh versuchen. Ich muss sagen, das sieht sehr vielversprechend aus :) Danke für deine harte Arbeit und das Posten, Jacob!
Maud Kon
Ich habe das Skript genau so ausprobiert, wie Sie es gesagt haben, aber es funktioniert nicht. Ist es möglich, dass dies mit GNOME 3.16 nicht funktioniert, oder sollte es etwas in meinem Setup sein? Ich rätsele jetzt und hoffe, dass es auf meinem System funktioniert. Wenn ich den Grund finde, warum es noch nicht funktioniert, melde ich mich umgehend bei Ihnen.
Maud Kon
1
@MaudKon Sie müssen die Einstellungsdatei bearbeitet und versehentlich eine oder mehrere Whitelines hinzugefügt haben, wahrscheinlich am Ende. Ich habe das Skript dafür "immunisiert". Sie können jetzt so viele Whitelines verwenden, wie Sie möchten :)
Jacob Vlijm
9

Der Titel wird von der ausführbaren Datei der Anwendung generiert, und es gibt keine einfache Möglichkeit, ihn zu bearbeiten.


Ändern des Titels einer Anwendung, sobald diese geöffnet ist:

  • Installieren Sie xdotoolmitsudo apt-get install xdotool
  • Holen Sie sich die PID der Anwendung mit pgrep myapp(ie pgrep rythmbox)
  • Ändern Sie den Fenstertitel (durch HERE_THE_PIDdie Prozess-ID der Anwendung ersetzen ):

    xdotool search --onlyvisible --pid HERE_THE_PID --name "\a\b\c" set_window --name "$new_name"
    

Erstellen eines Skripts zum Starten einer Anwendung mit einem benutzerdefinierten Titel:

  • Erstellen Sie ein Bash-Skript change-titlemit den folgenden Inhalten:

    #!/bin/bash
    
    ## The new name of the window is the first argument passed to the script:
    new_name="${1}"
    
    ## application is all arguments but the first (the title)
    application=${@:2}
    
    ## Run the app in background and in quiet mode:
    $application &> /dev/null &
    
    ## Get the pid of the app:
    app_pid=$!
    
    ## Wait until the window appears:
    until xdotool search --onlyvisible --pid $app_pid &> /dev/null; do sleep 0.01; done
    
    ## Change the window name:
    xdotool \
             search \
                    --onlyvisible \
                    --pid $app_pid \
                    --name "\a\b\c" \
             set_window \
                    --name "$new_name"
    
    ## Comment this line to run the app in background:
    wait $app_pid
    
  • Machen Sie es ausführbar mit chmod a+x change-title

  • Führen Sie es mit ./change-title "NewTitle" theapp --its-arguments

So machen Sie die Änderung dauerhaft:

  • Run gksudo gedit /usr/local/bin/custom-title(fx. User / local / bin / music)
  • Fügen Sie im Texteditor das obige Skript ein und speichern Sie es.
  • Lauf sudo chmod a+x /usr/local/bin/custom-title
  • Lauf gksudo gedit /usr/share/applications/rhythmbox.desktop
  • In dieser Datei befindet sich eine Zeile (die Zeilennummer ist 35 in meiner), die besagt:

    Exec=rhythmbox %U
    
  • Ersetzen Sie es durch den Namen der erstellten Datei:

    Exec=custom title (fx. Exec=music)
    
  • Speichern Sie die Datei unter dem Namen custom-name.desktop fx. music.desktop. Achten Sie darauf, dass Sie die Originaldatei nicht überschreiben!

Damit wird die Änderung für die Funktion "Öffnen mit" wirksam

  • Lauf gksudo gedit /usr/share/applications/rhythmbox-device.desktop
  • Ändern Sie rhythmboxden Namen in der vorherigen .desktop-Datei.
  • Speicher die Datei.
  • Beenden Sie aktive Prozesse der Rhythmbox mit dem Systemmonitor oder mit sudo kill rhythmbox
  • Schließen Sie Ihr Telefon / Ihren Musikplayer an und drücken Sie "Öffnen mit (Musikanwendung)", um zu prüfen, ob es funktioniert hat.

(Zusammenfassung) Übersicht über die Dateien, die Sie haben sollten

Um die Anwendung voll funktionsfähig zu machen, sollten Sie 3 .desktop-Dateien haben, /usr/share/applicationswenn Sie fertig sind:

  1. music.desktop oder den Namen, den Sie der Anwendung gegeben haben

    mit Exec=musicund Hidden=true(füge den letzten hinzu, falls nicht vorhanden)

  2. rhythmbox.desktop

    mit Exec=rhythmbox %UundHidden=true

  3. rhythmbox-device.desktop

    mit Exec=music --select-source %Uund OHNE den Versteckten Eintrag

Das bedeutet, dass Sie immer die letzte Datei öffnen und der Titel immer so ist, wie er sollte. Die einzige Möglichkeit zum Zurücksetzen ist, wenn Sie Ihre Sitzung mit ALT + F2 + R aktualisieren.

  1. Und Sie sollten /usr/local/binnatürlich das Bash-Skript haben.

Schlussbemerkungen:

  • Wenn ich benutze, --name "\a\b\c"ist es, einen Fehler zu beheben , ersetzen Sie nicht mit den Namen der Anwendung!
  • Wenn Sie die letzte Zeile des Skripts auskommentieren, wird das Skript erst beendet, wenn die App geschlossen wird.
  • Erklärung ${@:2}im von @Maud Kon angeforderten Code :

    1. $@ ist ein Array, das alle Positionsparameter speichert.
    2. ${@:2}bedeutet: Alle Positionsparameter außer dem ersten
    3. Angenommen, ich rufe ein Programm folgendermaßen auf:

      awesome-program foo bar baz fooz
      
      • ${@:1} wäre foo bar baz fooz
      • ${@:2} wäre bar baz fooz
      • ${@:3} wäre baz fooz
      • ${@:4} wäre fooz
      • ${@:5} ist leer, weil es keine weiteren Positionsparameter gibt.
    4. $@, ${@}und ${@:1}sind dasselbe: Alle Positionsparameter.

    5. Weitere Informationen zu diesem Thema finden Sie hier: http://wiki.bash-hackers.org/scripting/posparams
Helio
quelle
Ich habe beide Methoden ausprobiert (auch die hier unten) und Ihr Bash-Skript funktioniert teilweise. Es öffnet sich ein neues Fenster mit dem neuen Namen, aber wenn ich es von der Übersicht aus erneut starte, hat es immer noch den alten Eintrag ... mache ich etwas falsch?
Maud Kon
@MaudKon: Was ist die Übersicht? Probieren Sie das Skript jetzt aus. Wenn Sie "Übersicht" zum Bindestrich aufrufen (großes Panel mit vielen Apps), sage ich Ihnen, dass mein Skript keine dauerhafte Änderung vornimmt.
Helio
Ich meine die Anwendungsübersicht, ich habe mich schon selbst versteckt, haha. Hmm, ja, als dein Skript funktioniert. Gibt es sowieso, um die Änderung dauerhaft zu machen? Als würde man eine ausführbare Datei mit fx bearbeiten. GHex? Oder die ausführbare Datei in der .desktop-Datei ändern?
Maud Kon
Versuch's jetzt. Verwenden Sie das neue Skript und befolgen Sie die Anweisungen im Abschnitt So machen Sie die Änderung dauerhaft . Jetzt habe ich verstanden, dass Sie eine Tarnung Ihres Ubuntu machen ;-)
Helio
1
@Helio Ich habe deinen Beitrag mit den Schritten aktualisiert, die für mich funktioniert haben. Ich habe auch den Prozess hinzugefügt, damit die Funktion "Öffnen mit" funktioniert.
Maud Kon
2

Verwenden Sie einfach die Übersetzungsdatei!

Ich bin genau darauf gestoßen Problem gestoßen mit Thunar genau : Es wurde ärgerlich, als Compiz Scale den Titel des Thunar-Fensters als "AnyFolder - File Manager" anzeigte und den Speicherplatz mit unnötigen Informationen ausfüllte.

Ich habe die oben genannten Möglichkeiten mit xdotoolund ausprobiertwmctrl , aber sie waren nicht von Dauer , da Thunar seinen Fenstertitel in einem anderen Ordner jedes Mal , wenn ich ändert. Und es war übertrieben, ein Drehbuch im Hintergrund herumstehen zu lassen, um den Titel jedes Mal zu ändern, wenn Thunar ihn ändert.

Eine einfachere Lösung war die Verwendung der Übersetzungsdatei, die mit jeder Anwendung geliefert wird. Sie müssen lediglich die Übersetzungsquelldatei mit einem msgfmtim gettextPaket enthaltenen Tool neu kompilieren . Ich habe das nur für gThumb gemacht - nur zum Spaß - und dort funktioniert es auch.

1. Holen Sie sich den Quellcode für die betreffende Anwendung.
Geben Sie http://packages.ubuntu.com ein oder gehen Sie zu http://packages.ubuntu.com , rufen Sie die Quelle ab und suchen Sie nach einem Ordner mit dem Namen : Es enthält Dateien in Klartext. Suchen Sie nach Ihrer Sprache. Nehmen wir an, Sie kommen aus Brasilien. Diese Datei wäre$ sudo apt-get source APPLICATIONpopt_BR.po

2. Ändern Sie die Datei auf Ihre Bedürfnisse
Achten Sie auf die genaue! Fenstertitel, den Sie entfernen oder ändern möchten. In Thunars Fall war es "Dateimanager" und in pt_BR.pofand ich

:. set window title
: ../thunar/thunar-window.c:3154 ../Thunar.desktop.in.in.h:3
: ../thunar/thunar-settings.desktop.in.h:1
msgid "File Manager"
msgstr "Gerenciador de arquivos"

wo msgidist das Signal sendet die Anwendung und msgstrwas der langpack übersetzt sie in.
Ändern Sie msgstrnach Belieben, dh msgstr "o_-".
Ich habe erfahren, dass msgstr ""die Anwendung zurückgreift , wenn Sie die Übersetzung so leer lassen msgid. Wenn Sie möchten, dass es "leer" ist, verwenden Sie Leerzeichen. Oder ein Punkt. Oder irgendein flippiges ASCII-Symbol.

3. Holen Sie sich den Compiler.
Wie bereits erwähnt, benötigen Sie ihn msgfmtaus dem gettextPaket. Sie müssen ihn also eingeben
$ sudo apt-get install gettext

4. Kompilieren
Öffnen Sie ein Terminal, gehen Sie in den Ordner mit Ihren pt_BR.poÄnderungen und lassen Sie msgfmt die Datei auf Fehler überprüfen:
$ msgfmt --check --check-accelerators=_ -o /dev/null pt_BR.po
Wenn es in Ordnung ist, kompilieren Sie es:
$ msgfmt -c -o pt_BR.mo pt_BR.po

5. Datei platzieren
Sehen Sie sich an, wie die Originalübersetzung in / usr / share / locale / YOUR_LANGUAGE / LC_MESSAGES / oder / usr / share / locale-langpack / YOUR_LANGUAGE / LC_MESSAGES / benannt ist, und platzieren Sie Ihre Datei dort. Wenn es nicht an beiden Stellen existiert, legen Sie es in eine von ihnen und experimentieren Sie ein wenig mit dem Dateinamen: Kleinbuchstaben, Camelcase oder so ähnlich, dh gthumb.mooder YOUR-APP.mo.
Erstellen Sie zuerst eine Sicherungskopie des Originals und kopieren Sie dann Ihre neue Übersetzung dorthin
$ sudo cp /usr/share/locale/YOUR_LANGUAGE/LC_MESSAGES/YOUR-APP.mo /usr/share/locale/YOUR_LANGUAGE/LC_MESSAGES/YOUR-APP.mo.BAK

$ sudo cp pt_BR.mo /usr/share/locale/YOUR_LANGUAGE/LC_MESSAGES/YOUR-APP.mo

Wenn YOUR_APP ausgeführt wird, schließen Sie alle Instanzen davon.
Probier es aus!

Tipp Wenn Sie Ubuntu mit der aktuellen EN-Lokalisierung ausführen, verwenden Sie einfach eine beliebige * .po, löschen oder kommentieren Sie alle unveränderten msgid / msgstr-Paare und legen Sie sie in / usr / share / locale / de / LC_MESSAGES / ab. .

Quellen:
http://wiki.xfce.org/translations/translation_guidance_in_xfce

ronso0
quelle
Nur für das Protokoll; Ich bezweifle, dass Sie das Skript tatsächlich ausprobiert haben, da es den in der Antwort genannten Namen beibehält .
Jacob Vlijm
Du hast recht, ich habe dieses Skript nicht ausprobiert, sondern ein ähnliches (einfacheres) von irgendwo anders, und die Tricks mit xdotool und wmctrl. Wie bereits erwähnt, fühlt es sich für mich so an, als würde man mit einer Kanone auf Spatzen schießen, statt eine Zeile in einer Quelldatei zu ändern . Trotzdem kann man viel aus den Skripten lernen.
Ronso0
Ich bin gespannt, was passiert, wenn die Anwendung aktualisiert wird. Werden * .desktop-Dateien und Lokalisierungsdateien überschrieben?
Ronso0
Wie bereits erläutert hier askubuntu.com/a/703942/72216 , ich die fobia für einen Hintergrund Skript nicht teilen, wenn es gut geschrieben und hat wichtige Funktionen hinzufügen. Zu .desktopDateien: Auch hier müssen Sie meine Antwort mit einer anderen verwechseln, die Sie möglicherweise gelesen haben. Die Antwort bearbeitet .desktopkeine Dateien und es ist keine Aktion erforderlich, wenn eine Anwendung erneut installiert wird.
Jacob Vlijm
Dies war eine allgemeine Frage, da Antwort 2 .desktopDateien ändert und ich dies mit Übersetzungsdateien tue. Weißt du es? Und ich kann JEDER Skriptlösung eine zweite Chance geben, da ich jetzt lese, dh "mu__Incoming -", wo ich "mu__Incoming - File Manager" hatte . Für Anwendungen, die einen statischen Fenstertitel ohne "Pfad / zu / Ordner" haben, funktionieren meine Lösungen einwandfrei.
ronso0
1

Ersetzen Sie (Teile von) Fenstertiteln durch wmctrl

Da meine eigene Antwort mithilfe der Übersetzungsdatei der Anwendung für mehrere Fälle nicht ausreichte, baute ich auf der Lösung von Jacob Vlijm auf und änderte sein Skript, um bestimmte Zeichenfolgen in Fenstertiteln zu ersetzen. Ich hoffe, es ist in Ordnung, hier eine separate Antwort zu posten. Dank geht an Jacob Vlijm für die Idee und das Einrichten des Drehbuchs!

Zum Beispiel lese ich gerne Some fancy websitestatt Some fancy website - Mozilla Firefox. Das Compiz Scale Plugin ist jetzt viel klarer, da ich es auch entfernt habe- File manager andere Zeichenfolgen entfernt habe.

Änderungen, die ich vorgenommen habe:

  1. Verwenden Sie //als Trennzeichen inwindow_names.txt , um Leerzeichen zuzulassen
  2. Verwenden Sie wmctrlanstelle vonxdotool , um den Fenstertitel zu ändern (da xdotool Nicht-ASCII-Zeichen nicht sehr gut verarbeitet):wmctrl -i -r [WindowIdentifier] -N 'new Title'
  3. Einige zusätzliche Zeilen im Skript, um die Zeichenfolge zu ersetzen usw.

Die Modifikation window_names.txtist wie folgt aufgebaut:
[process name]//[exact text to replace]//[replacement text]

firefox// - Mozilla Firefox// (whitespace!)
thunar// - File Manager// ° xyz
gedit// - gedit// - 123

Das gekuppelte Drehbuch:

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

f = os.environ["HOME"]+"window_names.txt"

change = []
lines = open(f).read().splitlines()
for l in lines:
    try:
        change.append(l.split("//"))
    except IndexError:
        pass

get = lambda cmd: subprocess.check_output(cmd).decode("utf-8").strip()
curr_1 = []

while True:
    try:
        curr_2 = get(["wmctrl", "-lp"]).splitlines()
        new = [w for w in curr_2 if not w in curr_1]

        for item in new:
            line = item.split(None, 4)
            winID = line[0] ; pid = line[2] ; currentTitle = line[4]
            procs = get(["ps", "-e"]).splitlines()
            match = [l for l in procs if pid in l][0]
            for app in [app for app in change if app[0] in match]:
                newTitle = str.replace(currentTitle, app[1], app[2])
                subprocess.Popen(["wmctrl", "-i", "-r", winID, "-N", newTitle])
        curr_1 = curr_2
        time.sleep(0.3)
    except:
        pass

Nochmals: Dank geht an Jacob Vlijm für die Idee und das Einrichten des Drehbuchs!

ronso0
quelle