Ubuntu Unity 中的图标不一致

Ubuntu Unity 中的图标不一致

   我下载了 IntelliJ Idea,然后解压并通过idea.sh终端中的执行运行它,并创建了一个新项目。我想看看如果我只是简单地使用制作 Eclipse 启动器图标的right click on icon at the left side bar in Unity -> lock to Launcher标准方法而不是制作新idea.desktop文件的方法会发生什么。它只是在运行该特定项目的启动器上制作了图标。之后,我以idea.desktop标准方式制作了图标,它看起来像这样:

[Desktop Entry]
Name=IntelliJ IDEA
Type=Application
Exec=idea.sh
Terminal=false
Icon=/opt/idea/idea-IC-135.909/bin/idea.png
Comment=Integrated Development Environment
NoDisplay=false
Categories=Development;IDE;
Name[en]=IntelliJ IDEA
X-Desktop-File-Install-Version=0.22

现在,当我单击该标准时,idea.desktop它会运行应用程序的另一个实例(我用它制作的实例right click on icon on left side bar in Unity -> lock to Launcher),结果如下图所示。 结果情况

我试图找到something.desktop我制作的这个图标(lock to Launcher如果有)并将其删除,但我在 中找不到它/usr/share/applications
   

  • 当我点击时 Ubuntu 实际上做了什么lock to Launcher
  • 它是否会创建一些.desktop文件或其他东西?
  • 我怎样才能删除 制作的图标lock to Launcher

答案1

我遇到了一个类似的问题,我刚刚解决了这个问题,即 Firefox 正在创建这些“邪恶双胞胎”条目。将正在运行的应用程序与图标匹配的过程称为bamfdaemon。首先找到此守护进程的会话版本:

$ ps x | grep bamf
1147 pts/11   S+     0:00 grep --color=auto bamf
2597 ?        Sl     0:22 /usr/lib/i386-linux-gnu/bamf/bamfdaemon

现在我们要跟踪您的应用程序的启动 - 因此请将其关闭。

$ strace -o ~/bamf.txt -p 2597

现在我收到无法连接到该 pid 的警告,因此我用 重新运行它sudo

启动你的应用并等待图标出现。然后返回到你的 strace 实例并使用 将其终止Ctrl-C

现在查看 ~/bamf.txt 文件 - 我发现 bamf 注意到了我的新进程(firefox)

poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=3, events=POLLIN}], 3, -1) = 1 ([{fd=6, revents=POLLIN}])
recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"\241\10\353\220,\0\300\2\243\1\0\0new: ID=\"compiz-2674"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 224
recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"\241\10\353\220,\0\300\2\244\1\0\0ting\\ Firefox\\ Web\\ "..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 96
recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"\241\10\353\220,\0\300\2\244\1\0\0ications/firefox.des"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 64

然后查找可执行文件(对于 Firefox,它在 lib 中),然后打开.desktop它找到的最佳匹配的文件:

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb5854000
_llseek(12, 0, [0], SEEK_CUR)           = 0
read(12, "/usr/lib/firefox/firefox\0", 4096) = 25
read(12, "", 3072)                      = 0
close(12)                               = 0
munmap(0xb5854000, 4096)                = 0
open("/usr/share/applications/firefox-4.0.desktop", O_RDONLY|O_LARGEFILE) = 12
fstat64(12, {st_mode=S_IFREG|0644, st_size=3740, ...}) = 0
read(12, "[Desktop Entry]\nVersion=1.0\nName"..., 4096) = 3740
read(12, "", 4096)                      = 0
close(12)                               = 0

嗯,...这很有趣 - firefox-4.0 是我很久以前安装的测试版,因此它会在以下内容中查找 exec 文件.desktop

access("/opt/firefox-4.0/firefox", X_OK) = -1 ENOENT (No such file or directory)
clock_gettime(CLOCK_MONOTONIC, {13405, 712196198}) = 0
write(8, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x9319698, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x9308780, FUTEX_WAKE_PRIVATE, 1) = 1

而我的情况是,我得到的图标很糟糕,因为那个可执行文件自 2011 年起就消失了!将它移开.destkop,Firefox 突然又能匹配它的图标了。

就您而言,您可能可以在看到它打开的文件时停下来.desktop- 这就是您想要删除的文件。

相关内容