Portál AbcLinuxu, 7. května 2025 07:28
[Desktop Entry] Exec=/usr/bin/xterm -hold -e /usr/local/bin/wtf.sh %f MimeType=image/jpeg;image/x-canon-cr2;image/x-canon-crw;image/x-panasonic-raw;image/x-panasonic-raw2;image/x-olympus-raw ;image/x-olympus-orf Name=WTF Type=Application Terminal=No NoDisplay=Yes Icon=camera-photo-symbolicKdyž jej spustím např. přes digiKam (pravé tlačítko myšky na obrázku, Otevřít s..., WTF), tak v terminálu akorát vidím chybu:
/usr/bin/xterm No absolute path found for shell: /srv/Photos/2016-07/XXX/beauty.jpeg
což primárně značí, že digiKam/MATE desktop/kdo-ví-co se snaží spustit něco jako
/usr/bin/xterm /srv/Photos/2016-07/XXX/beauty.jpeg
což selže s tou výše uvedenou chybovou hláškou.
Co mne mate nejvíce je, že chyba je stejná, i když vyhodím všechny parametry a ponechám pouze Exec=xterm
- tedy něco se pokouší otevřít xterm s jediným parametrem, jímž je %f. Chyba se liší až v momentu, kdy to odkážu na něco nesmyslného, např. Exec=xtermX
:
/bin/sh: xtermX: command not found
Tj. všechny parametry za prvním příkazem v řádku Exec jsou zřejmě ignorovány.
Co s tím? To mám ke všem svým skriptům napsat wrapper pro .desktop, který by spouštěl "xterm -hold -e ..."?
P.S. Archlinux.
Řešení dotazu:
$ /usr/bin/xterm -hold -e /usr/local/bin/wtf.sh /srv/Photos/2016-07/XXX/beauty.jpegfunguje skvěle. Nemusím říkat, že to funguje i bez
xterm ... -e
.
Stejná chyba je i při spuštění ze souborového manažeru Caja (MATE desktop), není to tedy nová vychytávka digiKamu či jeho KDE závislostí. A cca před měsícem nebyl problém. Takže buď bug nebo nová feature. (To jsou ty nevýhody rolling distribucí.)
P.S. Skript má za úkol projít všechny JPEGy v aktuálním adresáři, najít novější verze (dle suffixu) a přejmenovat je na základní verzi při zachování IPTC/Exif/XMP metadat z té původní verze. Dále prohledá adresář raw a nalezne-li RAW soubor, k němuž neexistuje JPEG (shodného jména), tento RAW soubor přehodí do jiného adresáře. Prostě taková úklidovka řešící problémy při používání více editorů fotek a RAW konvertorů.
/usr/bin/xterm No absolute path found for shell: /srv/Photos/2016-07/XXX/beauty.jpeg
Za slovem „xterm“ se ztratila dvojtečka, že?
Pokud ano, tak to je chybová hláška programu xterm, který zřejmě byl spuštěn bez parametru „-e“, a tak si myslí, že první neznámý přepínač je shell, který se má spustit místo výchozího. No a „/srv/Photos/2016-07/XXX/beauty.jpeg“ nesplňuje podmínky, který xterm klade na shell.
Doporučuji nástrojem „strace“, zjistit, jak se ten xterm opravdu zavolá po kliknutí na ve vašem oblíbeném programu a kdo ho volá.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.