LINUX.ORG.RU

Что значат всякие буквы после буквы после % в секции Exec файлов .desktop в /usr/share/applications?

 , ,


1

2

И от имени какого пользователя они запускаются? Вообще, где бы подробнее прочитать про эти механизмы, можно на английском?

Ответ на: комментарий от Aceler

Хорошо, теперь понятно. А почему там не работают альясы из .bashrc?

Да и вообще там что-то странное. Команды, что абсолютно нормально работают в терминале, после прописывания в Exec=, ведут себя ну совсем не так, как я ожидаю. Вот пример даже без использования альясов (в Убунте): команда

wine 'C:\windows\regedit.exe'
, абсолютно нормально работает из терминала, но при прописывании срабатывает, только если выставить значение Terminal=true, хотя это совсем не консольное приложение! А в Дебиане даже это не помогает, просто мелькает окно терминала и все!

Но ручной ввод этой команды в терминал работает всегда и везде, ровно как и альясы. ЧЯДНТ?

Vsevolod-linuxoid ★★★★★
() автор топика
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

А почему там не работают альясы из .bashrc?

А почему вы решили что должны? .desktop обрабатывается не шеллом.

d_a ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Файловым менеджером или другой программой, из которой вы запускаете .desktop. Спецификацию вам уже кинули выше.

d_a ★★★★★
()
Ответ на: комментарий от d_a

Ну уж не файловым менеджером а DE

anonymous
()
Ответ на: комментарий от d_a

А, ну теперь все ясно, почему поведение зависит ещё и от DE... А я-то не мог понять, в чем дело.

А можно ли как-нибудь заставить эти команды обрабатываться именно шеллом?

Vsevolod-linuxoid ★★★★★
() автор топика
Ответ на: комментарий от anonymous

UPD: со вложенными параметрами все равно глюки, команды типа

Exec=/bin/bash -c 'wine 'C:\windows\regedit.exe''
все равно глючат независимо от типов скобок, хотя
Exec=/bin/bash -c 'firefox lib.ru'
работает норм. Как написано здесь: http://askubuntu.com/questions/778883/timestamp-in-exec-line-of-desktop-file-...

, проще всего написать bash-скрипт и в поле Exec= тупо прописать абсолютный путь до него, вот это всегда работает. Ударное велосипедостроение, мда :-(

Vsevolod-linuxoid ★★★★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Может удосужитесь всё же спек прочитать, вместо херни в гугле?

Exec=bash -c "wine \"C:\\windows\\regedit.exe\""

d_a ★★★★★
()
Ответ на: комментарий от d_a

То есть

\
игнорируется, вместо писать
\\
, а второе вложение обозначать
\"
? А третие
\\"
?

Просто не очень силен в техническом английском, так-то читал :-(

Vsevolod-linuxoid ★★★★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Ну в двух словах, аргументы квотить надо кавычками ", при этом они вырезаются, чтобы вложенная команда увидела ", её саму надо отменять, уже \. Чтобы вложенная команда увидела \, её тоже надо отменять \. И и т.д. по аналогии. Кроме того, я не уверен, что bash -c вообще "увидит" ваши алиасы, так как они обрабатываются только в интерактивных сеансах (если не включена соотв. опция).

d_a ★★★★★
()
Ответ на: комментарий от d_a

Да про ялиасы уже ясно, что не взлетит, я про них забыл. Спасибо за помощь.

Vsevolod-linuxoid ★★★★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Просто не очень силен в техническом английском, так-то читал :-(

Кстати, здесь я даже вспомнил как лет 20 назад в школе учительница английского наорала на кого-то, кто робко спросил -- "а прочитать это значит, перевести типо что там написано или просто прочитать?". Она тогда максимально доступно нам объяснила, что читать -- значит понимать смысл, а иначе мы бы уже давно и по китайски "читали" и на любом другом языке мира.

d_a ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.