如何单独定制每个 Firefox 窗口图标?

如何单独定制每个 Firefox 窗口图标?

我承认我是个标签囤积者。但至少我现在已经将它们分类到上下文窗口中,而且我希望 Windows 任务栏中的每个窗口都有不同的图标(不是标签栏,由图标控制)。如何实现呢?

举例来说,假设我有一个带有各种 StackExchange 选项卡的窗口,我希望将 StackExchange 徽标作为图标;另一个带有 GitHub 存储库的窗口应带有 GitHub 徽标;第三个窗口带有特定于项目的选项卡,我为其自定义了图标(或者只是 Firefox 徽标上方的彩色字母)。

我还会接受一种解决方案,即简单地使用每个窗口的第一个选项卡的图标,尽管我更喜欢独立于此。

答案1

您可以使用免费自动热键

创建一个.ahk文本文件并输入以下内容:

#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
}

该脚本设置为在点击 时激活F9,但您可以设置自己的键。根据需要添加对该函数的任意多个调用ChangeWindowIcon,每个调用都带有以下参数:

  • 标题中可以找到的独特文本
  • 图标文件的完整地址

当脚本运行时,您可以右键单击托盘栏中的绿色 H 图标并选择退出以终止。如果有效,您还可以将其添加到启动组中,以便在登录时运行。

请注意,AutoHotkey 还可以启动您最喜欢的选项卡并在屏幕上排列它们的布局。AutoHotkey 的功能并不多不能做。

相关内容