Ícones inconsistentes no Ubuntu Unity

1

Eu fiz o download do IntelliJ Idea, depois o descompactei e executei o programa idea.sh no terminal e fiz um novo projeto. Eu queria ver o que aconteceria se eu simplesmente right click on icon at the left side bar in Unity -> lock to Launcher em vez da maneira padrão de fazer o novo arquivo idea.desktop também ser usado para fazer o ícone do lançador do Eclipse. E isso só fez ícone no lançador que executa esse projeto específico. Depois disso, eu fiz o modo padrão idea.desktop e ficou assim:

[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

Agora, quando clico no padrão idea.desktop , ele executa outra instância do aplicativo (aquela que fiz com right click on icon on left side bar in Unity -> lock to Launcher ) e resulta com a situação mostrada na imagem abaixo.

Estou tentando encontrar o ícone something.desktop que fiz com lock to Launcher , se houver, e excluí-lo, mas não consigo encontrá-lo em /usr/share/applications .

  • O que o Ubuntu realmente faz quando clico em lock to Launcher ?
  • Se ele cria algum arquivo .desktop ou outra coisa?
  • Como posso excluir um ícone feito por lock to Launcher ?
por foki 21.07.2014 / 12:05

1 resposta

0

Eu tive um problema parecido, resolvi onde o firefox criava essas entradas "más gêmeas". O processo envolvido na correspondência de aplicativos em execução com ícones é chamado de bamfdaemon . Em primeiro lugar, encontre a versão da sua sessão deste daemon:

$ 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

Agora vamos rastrear a inicialização do seu aplicativo - então feche-o.

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

Agora recebi um aviso sobre a incapacidade de me conectar a esse pid, então eu o corri novamente com sudo .

Inicie seu aplicativo e aguarde até que o ícone seja exibido. Em seguida, retorne à sua instância strace e mate-a com Ctrl-C .

Agora olhe pelo arquivo ~ / bamf.txt - o que eu encontrei foi bamf percebe meu novo processo (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)=[{"130,
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
access("/opt/firefox-4.0/firefox", X_OK) = -1 ENOENT (No such file or directory)
clock_gettime(CLOCK_MONOTONIC, {13405, 712196198}) = 0
write(8, "
$ 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
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)=[{"130,
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
access("/opt/firefox-4.0/firefox", X_OK) = -1 ENOENT (No such file or directory)
clock_gettime(CLOCK_MONOTONIC, {13405, 712196198}) = 0
write(8, "%pre%%pre%%pre%%pre%%pre%%pre%%pre%", 8)         = 8
futex(0x9319698, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x9308780, FUTEX_WAKE_PRIVATE, 1) = 1
", 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
03%pre%%pre%new: ID=\"compiz-2674"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 224 recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"130,%pre%04%pre%%pre%ting\ Firefox\ Web\ "..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 96 recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"130,%pre%04%pre%%pre%ications/firefox.des"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 64
%pre%%pre%%pre%%pre%", 8) = 8 futex(0x9319698, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x9308780, FUTEX_WAKE_PRIVATE, 1) = 1
", 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
03%pre%%pre%new: ID=\"compiz-2674"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 224 recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"130,%pre%04%pre%%pre%ting\ Firefox\ Web\ "..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 96 recvmsg(6, {msg_name(0)=NULL, msg_iov(1)=[{"130,%pre%04%pre%%pre%ications/firefox.des"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 64

Em seguida, procura o executável (para o firefox seu in lib), em seguida, abre o arquivo .desktop que ele encontrou como melhor correspondência:

%pre%

Hmmm, ... isso é engraçado - o firefox-4.0 era uma versão beta que eu instalei yonks atrás, então ele procura pelo arquivo exec no .desktop :

%pre%

E, no meu caso, recebi um ícone ruim porque o executável desapareceu desde 2011! Mova esse .destkop para fora e, de repente, o firefox corresponde ao seu ícone novamente.

No seu caso, você provavelmente pode parar no ponto em que você vê qual arquivo .desktop é aberto - esse é o que você deseja excluir.

    
por Greg 08.07.2015 / 15:11