Як уникнути пробілів у .desktop-файлах Рядок Exec


15

Я хочу створити .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

Однак, запускаючи це з контекстного меню Nautilus, використовуючи Open, це дає мені

Не вдалося знайти "/ home / user / opt / sublime / Sublime"

Тому я спробував

Exec="/home/user/opt/sublime/Sublime Text 2/sublime_text" %U

і отримав

Текст закінчився, перш ніж було знайдено відповідні цитати для ". (Текст був" "/ home / user / opt / sublime / Sublime")

Який правильний спосіб уникнути пробілів у Execрядку .desktopфайлів?

Відповіді:


5

Попередньо пробіл перед кожним пробілом:

[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

4
Це не працює:Text ended just after a '\' character. (The text was '/home/user/opt/sublime/Sublime\')
nh2

Смішно, це працює для мене.
січня

Чи використовуємо ті самі версії? GNOME nautilus 3.4.212.04.
nh2

Для мене працює на Ubuntu 16.04, а також подвійні цитати до речі. Однак НЕ уникайте пробілів і не цитуйте значень Path and Icon, це може спричинити запуск програми (на моєму комп’ютері піктограма тире блимає, але нічого не робить, навіть не відкриває термінал, навіть якщо Terminal = true). Це ж питання, якщо, до речі, ви не уникнете Exec, тож ви можете уявити, що мені знадобилося певний час, щоб знайти що робити з кожним рядком .desktop!
hsandt

Дивно ... Це працює, якщо я запускаю пускову установку вручну, але вона не працює при автозапуску. Ця функція дуже помилкова.
Адріан Лопес

3

У мене були саме такі проблеми! Спробувавши різні шаблони сканування / цитування, я вирішив, що найпростішим рішенням є символічне посилання 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

4
Це розумне вирішення, але ми все ще не знаємо, як ми маємо на увазі використовувати пробіли у .desktopфайлах.
nh2

2
Домовились, хоча мені просто здається, що баггі в дорозі Execрозбирається, а не ми реалізуємо неправильно. Він інтерпретує простір як кінець значення, яке є дивним, оскільки ви можете використовувати промальовані пробіли / рядки без котирування для шляхів до інших властивостей!
c24w

3

Ви спробували використовувати "" лапки замість "" лапок? У мене є налаштований .desktop файл з пробілами в рядку Exec, і моя працює з цитатами ''.


3

У мене така ж проблема, коли дотримуйтесь інструкцій із встановлення з ( http://monkeyhacks.com/post/how-to-install-sublime-text-2-on-ubuntu-14-04 ) сайту. Тому моє рішення було :

  1. Видаліть / видаліть з нього м'яке посилання під назвою "піднесене" /usr/bin

  2. Видаліть усі пробіли з папки "Піднесений текст 2", перейменувавши її на "SublimeText2"

  3. Re Створіть м'яке посилання в /usr/bin/:

    sudo ln -s /opt/SublimeText2/sublime_text /usr/bin/sublime
    
  4. Зробіть .desktop файл, включаючи:

    Exec=/opt/SublimeText2/sublime_text %U
    Icon=/opt/SublimeText2/Icon/48x48/sublime_text.png
    


0

Я зіткнувся з тією ж проблемою, використовуючи GNOME nautilus 3.4.2 в Ubuntu 12.04. Я знайшов це альтернативне вирішення у звіті про помилки з тієї ж проблеми в Moblin UI Framework, який я віддаю перевагу тому, про який говорилося, де вам потрібно додати кожну папку до $ PATH.

Вирішення проблеми просто:
"Створіть символічне посилання на шляху, у якому немає пробілів, і вкажіть поле EXEC на це посилання."


-1

Файли .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. Це також дозволяє уникнути необхідності створювати та підтримувати символічні посилання, як ви будете з іншими відповідями.


Це рішення не передає аргументи, наприклад шляхи до файлу, в кінцевому підсумку викликаної команди. -1
Девід Фоерстер

Ага. Мабуть, це також не є надійним. Я протестував це рішення перед тим, як розмістити його, і воно спрацювало. Але потім я змінив свій тест, щоб перевірити, чи ти маєш рацію, і тепер він НЕ працює, навіть відновивши його як він працював. Дивно.
KDØBPV
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.