(Ubuntu 18.04)是否有命令可以使用给定的图标打开可执行文件?我会提供更多背景信息。我正在尝试创建多个谷歌浏览器“用户”(不是“人员”选项卡,我需要每个用户都有自己的一组人员)。我知道你可以做到这一点,我也做到了,首先跑步
mkdir ~/.config/google-chrome-Theo
和
mkdir ~/.config/google-chrome-Teddy
然后制作一个运行的桌面可执行文件
google-chrome --user-data-dir=$HOME/.config/google-chrome-Theo
和另一个正在运行的
google-chrome --user-data-dir=$HOME/.config/google-chrome-Teddy
这样,当我运行“Theo”可执行文件时,我会得到 Theo 的人员套件、书签等。但是当我运行“Teddy”可执行文件时,我会得到 Teddy 的人员和书签。问题是我可以通过进入属性菜单来更改每个桌面可执行文件的图标,但我无法更改弹出的 chrome 实例的图标。也就是说,当我同时打开 Theo 和 Teddy 的 chrome 时,有两个通用的 chrome 图标,我必须搜索才能找到我想要的图标。是否有命令可以使用给定的图标打开可执行文件?
编辑:我尝试了 fra-san 的答案,但它似乎对我不起作用。我将澄清我的尝试:我最终得到了这两个桌面文件:
Desktop/Chrome-Theo.desktop
包含以下内容:
#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Terminal=false Type=Application Name=Google Chrome Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/theo/.config/google-chrome-Theo" --class=theo Icon=/home/theo/Icon-Blue.png NoDisplay=true StartupWMClass=theo
Desktop/chrome-teddy.desktop
,内容如下:
#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Terminal=false Type=Application Name=Google Chrome Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/ubuntu/.config/google-chrome-Teddy" --class=teddy Icon=home/teddy/Icon-Red.png NoDisplay=true StartupWMClass=teddy
但是,当我打开它们时,它们仍然在侧边栏中显示默认的 chrome 图标。我是不是哪里搞砸了?
编辑 2:我刚刚意识到这两个桌面可执行文件正在打开同一个 chrome 用户...我在 Theo chrome 上为一个页面添加了书签,当我打开 Teddy 页面时,它有相同的书签。我现在真的很困惑。
答案1
假设
我将假设:您使用的是 Ubuntu 18,您的桌面环境是 GNOME 3,您正在使用google-chrome-stable
.
另外,我假设您所指的图标是GNOME 的破折号(实际上,它是 Ubuntu Dock,据我所知,它是破折号的一个分支,但我目前无法链接到任何有意义的文档)。它的默认行为是将多个 Chrome 实例组合在一起。因此,最后我假设您想要不同的图标Chrome 配置文件在码头。
解决方案
基本上,我的回答中解释了您需要重现的步骤这个问题。但这还不够,大概是因为这个错误- 这使得 Google Chrome 忽略该--class
选项,除非--user-data-dir
还指定了该选项(并且使用了不同的目录)。
你需要两件事:
- 对桌面文件进行一些编辑;
- 两个不同的 Chrome 用户数据目录。
第 2 点:幸运的是,您已经拥有它们:~/.config/google-chrome-Theo
和~/.config/google-chrome-Teddy
。
第 1 点:我没有足够的有关您的桌面文件的详细信息,因此我在这里从头开始创建它们。
默认情况下,每个用户桌面文件的位置是~/.local/share/applications
.
因此,我创建:
~/.local/share/applications/chrome-theo.desktop
,内容如下:#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Terminal=false Type=Application Name=Google Chrome Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/your_user/.config/google-chrome-Theo" --class=theo Icon=icon_for_theo NoDisplay=true StartupWMClass=theo
~/.local/share/applications/chrome-teddy.desktop
,内容如下:#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Terminal=false Type=Application Name=Google Chrome Exec=/opt/google/chrome/google-chrome --user-data-dir="/home/ubuntu/.config/google-chrome-Teddy" --class=teddy Icon=icon_for_teddy NoDisplay=true StartupWMClass=teddy
将your_user
路径替换为您的实际用户名。
将icon_for_theo
和替换icon_for_theddy
为:
- 这完整路径到您要使用的图标文件;或者
- 这姓名,如果您要使图标文件在系统范围内可用,则不带扩展名
/usr/share/icons/hicolor/
。
第二个选项的设置要复杂得多,但它允许您拥有不同大小的图标。参考Ask Ubuntu 上的这个答案欲了解更多信息 - 它最终链接到图标主题规范由 freedesktop.org 提供。
它是如何工作的:
- 该
--class=
选项WMCLASS
为两个 Chrome 实例提供了两个不同的 es,使它们在 Dock 中不可分组; StartupWMClass=
在打开的 Chrome 窗口和启动它们的桌面条目之间设置一个链接,让它们将自定义图标保留在 Dock 中;- 由于上述错误,该
--user-data-dir=
选项和两个截然不同的前两点需要用户数据目录才能有效。
注意事项和故障排除
测试环境:实时 Ubuntu 18.04 LTS、Xorg 会话、google-chrome-stable
71.0.3578.98-1。
借用我的评论上述答案:
- 建议在干净的系统上测试此类配置:至少,新的 Chrome 配置文件和用户数据目录;充其量是一个专门的用户(可能仅为测试目的而创建)。
xprop
可用于检查该--class
选项是否得到遵守:## This example uses chromium instead of Google Chrome! ## With default settings: $ xprop WM_CLASS WM_CLASS(STRING) = "chromium", "Chromium" ## With --class=test_class $ xprop WM_CLASS WM_CLASS(STRING) = "chromium", "test_class"