Wie kann ich jedes Firefox-Fenstersymbol einzeln anpassen?

8

Ich bin ein Tab Hoarder und ich gebe es zu. Aber zumindest habe ich sie jetzt in Kontextfenster sortiert, und ich würde gerne verschiedene Symbole für jedes Fenster in der Windows- Taskleiste haben ( nicht die Registerkartenleiste, die von den Favoriten gesteuert wird). Wie kann dies erreicht werden?

Als Beispiel stelle ich mir ein Fenster mit verschiedenen StackExchange-Registerkarten vor, für das ich das StackExchange-Logo als Symbol haben möchte, ein weiteres Fenster mit GitHub-Repos, das das GitHub-Logo haben sollte, und ein drittes Fenster mit projektspezifischen Registerkarten Ich habe ein benutzerdefiniertes Symbol (oder nur einen farbigen Buchstaben auf dem Firefox-Logo).

Ich würde auch eine Lösung akzeptieren, die es schafft, einfach das Favicon des ersten Tabs jedes Fensters zu verwenden, obwohl die Unabhängigkeit davon bevorzugt würde.

Tobias Kienzler
quelle
Meinen Sie damit, dass Sie Elemente an die Taskleiste angeheftet haben und versucht haben, mit der rechten Maustaste auf> Eigenschaften> Symbol ändern zu klicken?
Harrymc
@harrymc Damit kann ich nur das Symbol aller Firefox-Fenster in das gleiche Symbol ändern. Was ich erreichen möchte, ist während einer offenen Sitzung, dass jedes geöffnete Fenster ein anderes Symbol haben sollte. Ich denke, dies kann auf Systemebene nicht erreicht werden (da sich die Titel der jeweiligen Fenster in Abhängigkeit von den aktiven Registerkarten ändern). Die Frage ist also, ob dies in Firefox irgendwie möglich ist, wahrscheinlich über ein Addon.
Tobias Kienzler
Wie gehen Sie mit Ihren Kontextfenstern um? Führen Sie separate Profile aus oder haben Sie nur ein einziges?
Seth
@ Seth Nur eine einzige. Die Verwendung separater Profile klingt nach einem interessanten Ansatz, obwohl ich gerade erst anfange, Firefox-Container zu verwenden, was mir weniger problematisch erscheint
Tobias Kienzler,

Antworten:

3

Dies kann mit dem kostenlosen AutoHotkey erfolgen .

Erstellen Sie eine .ahkTextdatei und geben Sie folgende Inhalte ein:

#Persistent
SetTitleMatchMode, 2    ; A window's title to contain the text anywhere

F9::
ChangeWindowIcon("title text", "\path\to\iconfile.ico")

ChangeWindowIcon(WinSpec, IconFile) {
    hIcon := DllCall("LoadImage", uint, 0, str, IconFile, uint, 1, uint, 0, uint, 0, uint, uint 0x10)
    if (!hIcon) {
        MsgBox, "Icon file missing or invalid in `nChangeWindowIcon(" IconFile ", " WinSpec ")`n`n"
        Throw "Icon file missing or invalid in `nChangeWindowIcon(" IconFile ", " WinSpec ")`n`n"
    }
    hWnd := WinExist(WinSpec)
    if (!hWnd) {
        MsgBox, Window Not Found
        return "Window Not Found"
    }
    SendMessage, WM_SETICON:=0x80, ICON_SMALL:=0, hIcon,, ahk_id %hWnd% ; Set the window's small icon
    SendMessage, WM_SETICON:=0x80, ICON_BIG:=1, hIcon,, ahk_id %hWnd%   ; Set the window's big icon
    SendMessage, WM_SETICON:=0x80, ICON_SMALL2:=2, hIcon,, ahk_id %hWnd%    ; Set the window's small icon
}

Das Skript wird so eingestellt, dass es beim Drücken aktiviert wird. F9Sie können jedoch auch Ihren eigenen Schlüssel festlegen. Fügen Sie der Funktion beliebig viele Aufrufe ChangeWindowIconmit den folgenden Parametern hinzu:

  • Einzigartiger Text, der im Titel zu finden ist
  • Die vollständige Adresse einer Symboldatei

Wenn das Skript ausgeführt wird, können Sie mit der rechten Maustaste auf das grüne H-Symbol in der Taskleiste klicken und zum Beenden Beenden auswählen. Wenn es funktioniert, können Sie es auch Ihrer Startgruppe hinzufügen, um es beim Anmelden auszuführen.

Beachten Sie, dass AutoHotkey auch Ihre bevorzugten Registerkarten starten und deren Layout auf dem Bildschirm anordnen kann. Es gibt nicht wirklich viel, was AutoHotkey nicht kann .

harrymc
quelle
Gute alte AHK 😁 Hm, das wird funktionieren, denke ich, obwohl dies nicht über Sitzungen hinweg bestehen bleibt. Aber ab diesem Zeitpunkt kann AHK möglicherweise auch das Favicon der ersten (oder derzeit aktiven) Registerkarte jedes Fensters abrufen und verwenden, bevor ich das Sitzungsmanagement in AHK erneut implementiere. Aber das Kopfgeld wird wahrscheinlich Ihnen gehören
Tobias Kienzler
1
Das Abrufen des Favikons einer Registerkarte erfordert einige Arbeit, da die Registerkarten in Firefox keine echten grafischen Objekte sind. Firefox malt sie einfach auf die Leinwand. Wahrscheinlich erfordert eine vollständige Lösung ein Greasemonkey-Skript, um das Symbol der aktiven Registerkarte zu erfassen, möglicherweise über die Zwischenablage, und ein AHK-Skript, um die Zwischenablage zu durchlaufen und die Arbeit zu erledigen. Sie sehen eine gute Menge Arbeit. Wenn die Registerkarten in Firefox-Sitzungen gruppiert sind, ist es einfacher, ein festes Symbol pro Gruppe beizubehalten.
Harrymc
Okay, das klingt nach ziemlich viel Mühe. Ich denke, dann könnte ich genauso gut in den Quellcode von Firefox eintauchen, wenn die Addon-API das Fenstersymbol sowieso nicht
Tobias Kienzler
Nun, Sie verdienen das Kopfgeld, keine Frage :) Aber akzeptieren Sie es, ich kann noch nicht, zu viel Handarbeit für die faulen Leute von mir übrig ...
Tobias Kienzler
Sie könnten das Skript wahrscheinlich so einstellen, dass die Befehlszeile auf bestimmte Profilnamen überprüft wird, und eine der Methoden in superuser.com/q/440189/59597 verwenden , um mehrere Instanzen auszuführen, die bestimmten Sites zugeordnet sind. Die Schwierigkeit besteht darin, dass sie wahrscheinlich immer noch als ein Symbol gruppiert werden, denke ich. Ich muss es versuchen.
SilverbackNet