Я хочу создать файл .desktop
, например, , описанный здесь .
[Desktop Entry]
Name=Sublime Text 2
GenericName=Sublime Text 2
Comment=Edit text files
Exec=/home/user/opt/sublime/Sublime Text 2/sublime_text %U
Однако, запустив это из контекстного меню Наутилуса, используя Открыть с , это дает мне
Не удалось найти '/ home / user / opt / sublime / Sublime'
Поэтому я попытался
Exec="/home/user/opt/sublime/Sublime Text 2/sublime_text" %U
и получил
Текст закончился до того, как была найдена соответствующая цитата для ". (Текст был '" / home / user / opt / sublime / Sublime ')
Как правильно экранировать пробелы в строке Exec
файлов .desktop
?
Перед каждым пробелом ставится обратная косая черта:
[Desktop Entry]
Name=Sublime Text 2
GenericName=Sublime Text 2
Comment=Edit text files
Exec=/home/user/opt/sublime/Sublime\ Text\ 2/sublime_text %U
Вы пытались использовать кавычки вместо цитат? У меня есть настроенный файл .desktop с пробелами в строке Exec, а мой работает с кавычками.
У меня такая же проблема, когда я следую инструкциям по установке из ( http://monkeyhacks.com/post/how-to-install-sublime-text-2-on-ubuntu-14-04 ]) site .. Итак, мое решение было:
Удалить / удалить программную ссылку под названием «возвышенная» из /usr/bin
Удалить все пробелы в папке «Sublime Text 2», переименовав ее в «SublimeText2»
Re Создать мягкую ссылку в
/usr/bin/
:
sudo ln -s /opt/SublimeText2/sublime_text /usr/bin/sublime
Exec=/opt/SublimeText2/sublime_text %U
Icon=/opt/SublimeText2/Icon/48x48/sublime_text.png
У меня была точно такая же проблема! Попробовав различные шаблоны экранирования / цитирования, я решил, что самым простым решением было бы иметь символическую ссылку на sublime_text
на моем $ PATH (или вы могли бы использовать псевдоним командной строки).
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[C]=/usr/share/Sublime Text 2/Icon/256x256/sublime_text.png
Name[C]=Sublime Text 2
Exec=Sublime-Text-2 %U
Comment[C]=Text Editor
Name=Sublime Text 2
Comment=Text Editor
Icon=/usr/share/Sublime Text 2/Icon/256x256/sublime_text.png
X-Desktop-File-Install-Version=0.21
Я столкнулся с той же проблемой, используя GNOME nautilus 3.4.2 в Ubuntu 12.04. Я нашел этот альтернативный обходной путь в отчете об ошибке для той же проблемы в Moblin UI Framework , который я предпочитаю тому, о котором вам нужно добавить каждую папку в $ PATH.
Обходной путь заключается в следующем:
«Создайте символическую ссылку в пути без пробелов и укажите поле EXEC на эту ссылку».
Согласно спецификации записи рабочего стола пространство ASCII может быть представлено escape-последовательностью \s
(для значений string
и localestring
).
Файлы .desktop не обрабатывают кавычки, пробелы и экранированные символы так, как это делают оболочки. Вероятно, лучшим вариантом было бы вызвать оболочку в вашей строке exec для получения ожидаемого поведения, например:
[Desktop Entry]
Name=Sublime Text 2
GenericName=Sublime Text 2
Comment=Edit text files
Exec=sh -c "/home/user/opt/sublime/Sublime Text 2/sublime_text" %U
Для получения дополнительной информации см. man sh
. Это также избавляет от необходимости создавать и поддерживать символические ссылки, как вы это сделаете с другими ответами.
Я последовал ответу moon.musick, который указал на спецификацию freedesktop для использования \s
вместо пробела , но у меня были некоторые проблемы с этим, поскольку записи «Путь» и «Выполнение», похоже, интерпретируются по-разному.
Это рабочий пример с использованием как «Exec», так и «Path»:
Exec="/home/janek/.steam/steam/steamapps/common/Torchlight\sII/Torchlight2.bin.x86_64"
Path=/home/janek/.steam/steam/steamapps/common/Torchlight\sII
Обратите внимание, что строка «Exec» заключена в кавычки, иначе она будет интерпретировать часть после пробела как аргумент. Однако «Путь» не заключен в кавычки, потому что кажется, что он указан программой, читающей файл. Я попробовал это из меню «Пуск» и с помощью gtk-launch
в командной строке, оба в итоге работали в этом формате, но не работали, когда путь также был указан в кавычках:
❯ gtk-launch "Torchlight II"
gtk-launch: error launching application: Failed to change to directory “"/home/janek/.steam/steam/steampps/common/Torchlight II"” (No such file or directory)
Что сработало для меня, так это замена пробелов одним подчеркиванием (это 1 подчеркивание для нескольких последовательных пробелов) в значке [Desktop Entry]
. ] ценность.
Не нужно удалять пробелы из каталога файлов.
Также не заключайте значение Icon
в кавычки.