我下载了 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
- 这就是您想要删除的文件。