niedziela, 25 września 2016

Uruchamiamy program konsolowy w Plasma 5

Obecnie większość aplikacji dostarcza plik *.desktop, który potrafi zinterpretować każde środowisko graficzne, dodać go do menu i uruchomić. Programy konsolowe uruchamiamy najczęściej poprzez uruchomienie emulatora terminala (np. Konsole) i wpisanie tam odpowiedniej komendy. Niektóre programy konsolowe również dostarczają pliki *.desktop. Nic nie stoi na przeszkodzie stworzeniu takiego pliku samodzielnie. I wszystko byłoby cudownie, jednakże często próba uruchomienia takiego programu nie powoduje żadnej reakcji. Ot, jedynie - jeśli ktoś ma to tak ustawione - pooglądamy, że program próbuje się uruchomić, albowiem ukazuje się nam na pasku zadań ikonka, bądź poobraca się nam wskaźnik myszy i... tyle.
Problem daje się łatwo rozwiązać i jest znanym błędem w środowisku Plasmy. Otóż za uruchamianie aplikacji w pliku *.desktop odpowiada polecenie Exec. Dla programów graficznych ma ono (podstawową) strukturę następującą:
Exec=/usr/bin/aplikacja
W przypadku programów konsolowych, będzie to:
Exec=sh -c '/usr/bin/aplikacja'
Oczywiście mogą tu być jeszcze jakieś dodatkowe zmienne.
I tego ostatniego polecenia Plasma nie jest w stanie zinterpretować. Wystarczy jednak umieszczenie go w znaku cudzysłowia i wszystko wraca do normy. Chcąc zatem uruchamiać taki program konsolowy bezpośrednio z menu musimy doprowadzić ową linię do następującej postaci:
Exec="sh -c '/usr/bin/aplikacja'"
I wszystko winno już wrócić do normy.