knn1. Ярлыки .desktop не поддерживается
2. Если строка начинается с кавычки, то ищется вторая кавычка и то что в кавычках берётся как исполняемый файл, остаток является параметром и к нему добавляется ссылка. Можно параметр указать как url и тогда параметр будет "url ссылка", потому что я читал что некоторые браузеры требуют url перед ссылкой, но умеют понять ссылку и без url. Тем самым я устранил проблему, что путь может содержать пробел, это 99% в Windows, так как там "Program Files" с пробелом и если это игнорировать, то прога будет думать, что "Program" это прога, а "Files" это параметр и 99% на Windows работать не будет. Да и на линукс не исключаю кто-то может в отдельную папку положить.
3. Если первая не кавычка, то предположим что это путь, если строка-путь существует, то считаем что это исполняемый файл. Это защита от дурака, пользователь может вставить путь без кавычки и даже думать не будет о параметрах, вот чтобы этот способ (без кавычек) не поломался на пробеле, такой трюк с проверкой пути.
4. Ну и последнее если нет кавычки и это не путь, то проверяем пробел. Всё что до первого пробела - то исполняемый файл, всё что после пробела - параметры. Это 100% укладывается в стратегию линукса, там первым указывается исполняемый файл (без пути, без пробела), а после пробела это всегда будет параметр.
Во всех случаях к параметру добавляется ссылка через пробел.
пока в обоих сучаях Прога пишет, что программа не установленна...
# как понял - кавычки должны быть двойными ("...") тк иначе не подхватывало второе слово.
============================
зы
"falkon --no-sandbox" - аналогично.
Вот правильная запись с кавычками:
browser="/usr/bin/falkon" --no-sandbox
так как если будет пробел, то кавычки помогут определить исполняемый файл
browser="/usr/bin/fal kon" --no-sandbox
так тоже кавычки помогут воспринять исполняемый файл как целое
browser="fal kon" --no-sandbox
Вот проблема, тут "fal" исполняемый файл, а "kon --no-sandbox" это параметры.
browser=fal kon --no-sandbox
не важно сколько параметров, перед первым пробелом "falkon" является исполняемый файл, всё остальное интерпретируется как параметр.
browser=falkon --no-sandbox
Если есть файл "/usr/bin/fal kon", то он запустится без поиска пробела. Явно, что если бы был там параметр " --no-sandbox", то такого бы пути не было бы и логика продолжила ветвь алгоритма с поиском пробела.