Шлях піктограми у файлі .desktop


11

На робочому столі у мене є .desktop файл. Якщо я набираю:

Icon=/home/ianbell/Pictures/myLogo.png

змінюється значок файлу .desktop (очікуваний результат).

Але, якщо я набираю:

Icon=~/Pictures/myLogo.png

це не працює.

Це не ~/ярлик для /home/$USER?


1
~ короткий для вашого домашнього каталогу лише в оболонці.
користувач253751

@JacobVlijm: вибачте, я заснув, програмую ніч і день :-)

1
@IanBell Haha Я знаю почуття :)
Jacob Vlijm

/ home / $ USER не працюватиме. Здається, ви шукаєте - / home / $ (whoami). Дивіться мої коментарі нижче.
Аджай Кумар

Відповіді:


10

Використання шляхів у файлі .desktop

У .desktopфайлі потрібно використовувати абсолютний і повний контури. Тому ~не розширюється.

Це звичайна помилка :)

Винятки щодо піктограм описані тут :

Піктограма для відображення в файловому менеджері, меню тощо. Якщо ім'я - абсолютний шлях, буде використаний даний файл. Якщо ім'я не є абсолютним шляхом, алгоритм, описаний у специфікації Тема значків, буде використаний для знаходження піктограми.

і ось :

Поле «Піктограма» - це значок, який повинен використовуватися пусковим пристроєм і представляє додаток. У всіх значках, що знаходяться під каталогом /usr/share/pixmaps, не потрібно вказувати повний шлях, а ім'я файлу без розширення. Наприклад, якщо файл значка є /usr/share/pixmaps/wallch.png, то поле Значок має бути просто "wallch". На всіх інших значках має бути вказаний повний шлях.

Більше інформації

У .desktopфайлі:

У Icon=рядку, які дозволяється використовувати прогалини:

Icon=/home/jacob/Thema/icon/some folder/some icon.png

добре.

Однак

У Exec=рядку, ви НЕ дозволено використовувати прогалини, якщо в разі спору . У всіх інших випадках потрібно процитувати кроки шляху з пробілом:

Exec=/home/jacob/Bureaublad/some folder/application

не вдасться, поки

Exec="/home/jacob/Bureaublad/some folder/application"

або

Exec=/home/jacob/Bureaublad/"some folder"/application

буде добре працювати


Тож як я можу посилатись на шлях відносно "домашнього каталогу користувачів"?
Аарон Франке

Аарон Франке, ви можете використовувати $ (whoami), щоб отримати поточне ім'я користувача. Я не намагався, але це має працювати - для домашнього режиму для поточного користувача - / home / $ (whoami).
Аджай Кумар

Я спробував, і це працює Аарон.
Аджай Кумар

4

Коротше кажучи, шлях .desktopфайлу Icon=розуміє абсолютні шляхи, але не розширення через тильду через специфікацію, яка визначає, як .desktopфайли повинні працювати.

Тильде розширення

  • Там, де ви побачили б ~розширення tilde ( ) на $HOMEзмінну оточення, часто, наприклад, у bash, що є звичайною оболонкою входу, з якою ви взаємодієте в командному рядку
  • bash та інші сумісні з POSIX оболонки, зробіть розширення до $ HOME, що відповідає специфікації POSIX для оболонок

.desktop файли

  • Однак .desktopфайл - це не те саме, що оболонку, це звичайний текстовий конфігураційний файл, тому він не обов'язково працюватиме однаково, навіть якщо .desktopфайли та оболонки можна знайти в Linux
  • як .desktopмає працювати файл файлу, визначено у специфікації введення для робочого столу Freedesktop

Специфікація вводу для робочого столу щодо Icons:

Якщо ім'я - абсолютний шлях, буде використаний даний файл.

Ось чому вам вдалося скористатися абсолютними шляхами, оскільки вона охоплена специфікацією

Якщо ім'я не є абсолютним шляхом, алгоритм, описаний у специфікації Тема значків, буде використаний для знаходження піктограми.

Перевіряючи специфікацію теми піктограми , ніщо не говорить про те, що вона взагалі повинна слідувати розширенню POSIX.

Підсумок

Таким чином, в зв'язку з технічним Freedesktop щодо .desktop«s Icon=настройки, абсолютні шляхи підтримуються, але , як ви виявили, POSIX тильда-to $ HOME розкладання не є.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.