Neden bazı açık uygulamalar Unity başlatıcısında “soru işaretleri” olarak görünüyor?


22

Başlatıcıların birlik içinde olduğu birkaç programda sorun yaşıyorum, ancak başlatıldıktan sonra ayrı bir simge oluşturun. Başlatıcı için daha iyi organize etmek için doğurduğu pencereleri izlemesi mümkün mü? Yoksa bu Birliğin kendisinde bir hata mı?

görüntü tanımını buraya girin

Önemli olmayabilir, ancak bu özel program mono bir programdır ve ortaya çıkan simge panel olarak listelenir.


@ j-johan-edwards: Hangi programa bağlanacağını bilmiyorum ama bu Yazılım Merkezinde bulunan KeePass2.
Andrew Redd,

Bazı durumlarda, StartupWMClassözelliği uygulamanın masaüstü başlatıcısındaki özelliği ayarlayarak bunu azaltabilirsiniz : askubuntu.com/questions/36434/…
Glutanimate

Yanıtlar:


23

Ne oluyor

Bunun gibi sorunlar Unity'nin uygulama eşleştirme çerçevesi ile ilgilidir. Teknik detayları basitleştirmek için, program pencereleri ve uygulamaları Ubuntu için iki ayrı şeydir. Ubuntu hangi uygulamanın belirli bir pencereye sahip olduğunu tahmin etmelidir. Ve bazen bu tahmin başarısız olur ve fırlatıcıda bir soru işareti belirir.

Başarısızlık nedeniyle olabilir:

  1. BAMF'deki bir hata (yukarıda belirtilen uygulama eşleme çerçevesi).
  2. Hatalı bir uygulama açıklaması (aka '.desktop' dosyası).
  3. Herhangi bir uygulama açıklamasının olmaması. Pencereleri başlatan çalıştırılabilir dosyaların içeriğinde bu meta veriler yoktur.

Soruda gösterilen uygulama (KeePass2) , uygun hata izleyiciye rapor edilen tip 1 probleminden muzdarip .

Sorun örnekleri

Aşağıdaki örnekler, kendi uygulamalarının Ubuntu başlatıcısında düzgün şekilde görüntülenmesini isteyen programcılara yönelik tekniktir.

Sorun 3 - Uygulama açıklaması yok

Bir uygulamanın Unity ile bütünleşmesi için - yani, Dash’de aranabilir ve başlatıcıya yerleştirilebilir - bir masaüstü girişine sahip olması gerekir. Bu girişler yerleştirilir /usr/share/applications/, /usr/local/share/applications/ve $HOME/.local/share/applications/(son ikisi, üçüncü taraf yazılım için olan sistem genelinde ve kullanıcı sadece sırasıyla). Bir .desktopuzantıyla bitiyorlar ve şu temel formatı takip ediyorlar :

[Desktop Entry]
Type=Application
Name=My Application's Name
Icon=/file/path/of/my/icon
Exec=/file/path/of/my/executable

Bu giriş, bir programı Execçalıştırılabilir dosyayı çağırarak başlatır . Bu program bir pencere veya iletişim kutusu görüntülediğinde, Unity, çalıştırılabilirliğinin bu uygulama açıklamasına "ait" olduğunu fark eder ve verilen Nameve Iconbaşlatıcıyı kullanır.

Bu bir barebones örneğidir. Eforu birçok gelişmiş özellik kapsar.

Problem 2 - Hatalı uygulama açıklaması

my_app.desktopGeçerli bir uygulama dizininde bulunduğunu varsayalım , ancak:

  • /file/path/of/my/icon dosya sisteminde yok.
  • /file/path/of/my/icon bir resim değil.
  • giriş bazı yanlış sözdizimi veya geçersiz etiketler kullanıyor.

Yukarıdaki durumlardan herhangi birinde, Ubuntu, uygulama penceresini başlatıcıda düzgün şekilde listeleyemez.

Sorun 1 - BAMF’da bir hata

Ubuntu 11.10'dan itibaren, BAMF'ın doğru uygulama eşleşmesini engelleyen bir takım hataları var. Yaygın (geçici) tuzaklar şunlardır:

  • ExecBir varlık yolu sembolik bağlantıyı düzenli dosyası yerine
  • Yürütülebilir dosya, ana çalıştırılabilir dosyayı başlatan bir komut dosyasıdır.

Bu durumlarda, programcıların sembolik bağlantı soyutlamasını kaldırmak veya doğrudan çalıştırılabilir dosyaya bağlamak gibi bir geçici çözüm kullanmaktan başka seçeneği yoktur. Bunların hiçbiri masaüstü giriş belirtiminin kendisi için gerekli değildir.


Bir şey daha. Sen olabilir .desktophem aynı uygulamaya ilişkin dosyaları ~/.local/share/applications/ve /usr/share/applications/. Simgede belirtilmemiş olsa bile, ilk dosya ikinciyi geçersiz kılar.

1

Pencere, yalnızca WM_CLASS özelliği ayarlanmışsa uygulamaya uyarlanabilir. Bunu X11'de yapmak için kullandığınız:

XSetClassHint( display, window, &class_hints );

İşaretçiyi 'res_name' ve 'res_class' alanlı bir XClassHint yapısına geçirmeniz gerekir.


-1

Grileşmiş simgeler dahil olmak üzere 16.04 ile ilgili birkaç sorun yaşadım ve bazen dokunmatik yüzey düzensizleşir (Acer V15 nitro) ayrıca yazılım merkezi de (belki de diğer simgeler de) simgeden açılmaz (sadece bir terminal komutundan). GNOME yazılımını kaldırmak ve yeniden kurmak için bir yerde bir tavsiye buldum. Bunu yaptığımdan beri, tüm sistem% 100 sabit kalmıştı, artık ikonları grileştirmiyor ve kusursuz çalışıyor. Bu değişiklikten sonra yeniden başlattığımda başlangıçta korkutucu görünüyordu - yeniden başlatmayla ilgili çok sayıda sistem mesajı- kendi sorumluluğunuzdadır.

sudo apt-get autoremove gnome-software && sudo apt-get install gnome-software

2
Bu soru ile tamamen ilgisiz.
Martin Thornton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.