Jak mogę dodać aplikację do menedżera okien GNOME?

50

Dokumentacja pokładowa GNOME obejmuje tylko rzeczy, które każdy może łatwo odgadnąć. Mam do tego aplikację, którą mogę uruchomić tylko z wiersza poleceń. Nie żebym miał coś przeciwko użyciu terminala, ale ...

W każdym razie, jak dodać polecenie (a najlepiej ładne logo) do GNOME WM?

targowisko
źródło
Czy po kliknięciu prawym przyciskiem pojawi się element „Edytuj menu”?
slm
nie, w ogóle nie ma menu kliknięcia prawym przyciskiem myszy.
mart

Odpowiedzi:

88

W GNOME i innych środowiskach pulpitu zgodnych z freedesktop.org , takich jak KDE i Unity , aplikacje są dodawane do menu pulpitu lub powłoki pulpitu za pomocą wpisów pulpitu , zdefiniowanych w plikach tekstowych z .desktoprozszerzeniem (zwanych plikami na pulpicie ). Środowiska pulpitu tworzą menu dla użytkownika na podstawie połączonych informacji wyodrębnionych z dostępnych pozycji pulpitu.

Pliki pulpitu można tworzyć w jednym z dwóch miejsc:

  • /usr/share/applications/ dla wpisów pulpitu dostępnych dla każdego użytkownika w systemie
  • ~/.local/share/applications/ dla wpisów na pulpicie dostępnych dla jednego użytkownika

Może być konieczne zrestartowanie GNOME, aby nowe dodane aplikacje działały.

Zgodnie z konwencją pliki pulpitu nie powinny zawierać spacji ani znaków międzynarodowych w nazwie.

Każdy plik pulpitu jest podzielony na grupy , każdy rozpoczynający się od nagłówka grupy w nawiasach kwadratowych ( []). Każda sekcja zawiera kilka par kluczy , wartości , oddzielonych znakiem równości ( =).

Poniżej znajduje się przykładowy plik pulpitu:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Application Name
Comment=Application description
Icon=/path/to/icon.xpm
Exec=/path/to/application/executable
Terminal=false
Categories=Tags;Describing;Application

Wyjaśnienie

  • [Desktop Entry]Desktop Entrynagłówku grupy identyfikuje plik jako wejścia stacjonarnym
  • Type typ wejścia, wartości są ważne Application, LinkiDirectory
  • Encodingkodowanie pliku na pulpicie
  • Name nazwa aplikacji widoczna w menu lub programach uruchamiających
  • Comment opis aplikacji użytej w podpowiedziach
  • Icon ikona pokazana dla aplikacji w menu lub programach uruchamiających
  • Exec polecenie używane do uruchamiania aplikacji z powłoki.
  • Terminal czy aplikacja powinna być uruchomiona w terminalu, prawidłowe wartości to truelubfalse
  • Categories;oddzielona średnikiem ( ) lista kategorii menu, w których należy wyświetlić wpis

Argumenty wiersza poleceń w Execkluczu można oznaczać następującymi zmiennymi:

  • %f pojedyncza nazwa pliku.
  • %F wiele nazw plików.
  • %u pojedynczy adres URL.
  • %U wiele adresów URL.
  • %d pojedynczy katalog. Używany w połączeniu z %fdo lokalizacji pliku.
  • %D wiele katalogów. Używany w połączeniu z %Fdo lokalizowania plików.
  • %n pojedyncza nazwa pliku bez ścieżki.
  • %N wiele nazw plików bez ścieżek.
  • %k identyfikator URI lub lokalna nazwa pliku lokalizacji pliku na pulpicie.
  • %v nazwa pozycji urządzenia.

Zauważ, że ~lub zmienne środowiskowe, takie jak, $HOMEnie są rozwijane w plikach pulpitu, więc wszelkie pliki wykonywalne, do których się odwołujesz, muszą znajdować się w $PATHścieżce bezwzględnej lub znajdować się w niej odwołania.

Pełna specyfikacja wpisu na pulpicie jest dostępna w Centrum deweloperów GNOME .

Uruchom skrypty

Jeśli uruchamiana aplikacja wymaga wykonania pewnych kroków przed jej wywołaniem, możesz utworzyć skrypt powłoki, który uruchamia aplikację, i skierować pozycję pulpitu na skrypt powłoki. Załóżmy, że aplikacja wymaga uruchomienia z określonego bieżącego katalogu roboczego. Utwórz skrypt uruchamiania w odpowiednim do lokalizacji ( ~/bin/na przykład). Skrypt może wyglądać mniej więcej tak:

#!/bin/bash
pushd "/path/to/application/directory"
./application "$@"
popd

Ustaw bit wykonywalny skryptu:

$ chmod +x ~/bin/launch-application

Następnie wskaż Execklucz we wpisie pulpitu na skrypt uruchamiania:

Exec=/home/user/bin/launch-application
Thomas Nyman
źródło
Zrobiłem to, widzę ikonę pod aplikacjami, ale po kliknięciu aplikacja się nie uruchamia, kursor zmienia się tylko na symbol ładowania na kilka sekund. Brak komunikatu o błędzie.
mart
@mart Czy możesz nam powiedzieć, do której aplikacji próbujesz dodać program uruchamiający?
Thomas Nyman
1
FTL - niezależna gra, którą kupiłem gdzieś w sieci. Począwszy od konsoli działa.
mart
1
@mart <path>/.FTLwskazywałby na ukryty plik o nazwie .FTL, który nie jest taki sam jak ./FTL, który wskazuje na plik wywoływany FTLw bieżącym katalogu. Możesz spróbować uruchomić FTLza /full/path/path/to/FTLpomocą terminala, aby zobaczyć, czy pojawi się jakiś znaczący błąd. Na przykład, jeśli plik wykonywalny szuka bibliotek w bieżącym katalogu roboczym, może być konieczne wykonanie skryptu uruchamiania, który robi coś wzdłuż linii pushd <path>; ./FTL; popdi Execzamiast tego skierowanie specyfikatora w pliku pulpitu na skrypt uruchamiania.
Thomas Nyman,
1
korekta: działa z poziomu katalogu
mart
12

Bardzo dobra odpowiedź Thomasa Nymana.

Gnome zawiera narzędzie GUI gnome-desktop-item-editwspomagające tworzenie plików * .desktop. Musimy użyć go z wiersza poleceń lub utworzyć dla niego plik na pulpicie.

Instrukcje tworzenia aplikacji Gnome gnome-desktop-item-edit

  1. Otwórz okna terminala i wpisz następujące polecenie:

    gnome-desktop-item-edit --create-new / home / [twoja nazwa użytkownika] /. local / share / applications

  2. W otwartym oknie wypełnij następujące pola: wprowadź opis zdjęcia tutaj

    Name: Gnome Applicaiton

    Command: gnome-desktop-item-edit --create-new /home/[your user name]/.local/share/applications

    Kliknij ikonę, aby wybrać inną ikonę.

  3. Kliknij przycisk OK, aby zamknąć okna

  4. Zamknij okno terminala

Testowanie nowo wygenerowanego Gnome Application

  1. Otwórz deskę rozdzielczą
  2. Wpisz aplikację
  3. Powinieneś zobaczyć Gnome Applicationwpisane wcześniej
  4. Wybierz to
  5. Utwórz kolejną aplikację
Dudi Boy
źródło
Działa to naprawdę dobrze, dzięki. Czy jest jakiś sposób, aby zmienić menu, w którym pojawi się nowa aplikacja? Mój pojawił się w Aplikacje-> Inne
SteveP
-1

Poprzednie odpowiedzi Thomasa Nymana i Dudi Boya są bardzo dobre i szczegółowe. Publikuję to, ponieważ nie znalazłem odpowiedzi na moje wątpliwości w innych postach i musiałem szukać problemów z git.

Po tym, jak podążyłem za wskazówkami sugerowanymi przez Thomasa Nymana, byłem w stanie sprawić, by ikona mojego programu pojawiała się w menu aplikacji. Problem polega na tym, że używam Dasha do dokowania jako paska bocznego i nie mogłem przypiąć ikony jako ulubionej, podobnie jak inne ikony. Po przeszukaniu stwierdziłem, że musisz dodać linię StartupWMClass=ApplicationNamew .desktoppliku. Następnie pojawi się opcja dodania do ulubionych, klikając prawym przyciskiem myszy ikonę w Dash to Dock.

JonLord
źródło