有没有办法从命令行更改应用程序窗口的图标?
例如,我希望在不同的配置文件(不同的进程)下为 Firefox 窗口提供单独的图标,如果终端运行则更改终端的图标tmux
,等等。
我所说的“图标”是指窗口切换器显示的小图片,通常使用Alt+调用Tab。特别是,我对此感兴趣xfwm4
,但更通用的解决方案将受到欢迎。
显然,两者都没有xdotool
能力wmctrl
做到这一点。
答案1
西塞蒂康让你能够做到这一点。
答案2
如果运行xprop
并单击一个窗口,您会看到该图标位于分配给 X 服务器中窗口结构的“元数据”中,位于 name 和 type 下_NET_WM_ICON(CARDINAL)
。这些参数可以由其他 X 应用程序更改,例如,窗口管理器在其中编写和更改一大堆内容。关键功能将是XChangeProperty
.
我不知道有任何工具可以通过命令行轻松完成此操作,但这并不意味着它们不存在。
无论如何,它可以从头开始编写,这并不难(尽管原始编写xlib
会让你的胸毛竖起来,并可能给你带来创伤后应激障碍)。
答案3
对于不同的操作系统/风格可能会有所不同。大多数情况下,可以通过直接在 /usr/share/applications 编辑桌面文件或在 /home/username/.local/share/applications/ 复制或创建桌面文件来实现。
图标=/usr/share/icons/HighContrast/48x48/apps/firefox.png
请参考http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html