Как правильно прописать ассоциацию типа файла?

Автор DAGAZ, 09 марта 2018, 22:44:24

« назад - далее »

0 Пользователи и 5 гостей просматривают эту тему.

DAGAZ

Есть вот у меня некое приложение Pencil , которое полностью portable и которое запускается через ~/AppPortable/Pencil/pencil
И есть собственно расширение файла .epgz , которое я хочу открывать через этот софт двойным щелчком мыши .

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

ecc83

Для твоего приложения создан файл *.desktop в каталоге /usr/share/applications или в /home/$USER/.local/share/applications ?

DAGAZ

Цитата: ecc83 от 10 марта 2018, 01:07:23
Для твоего приложения создан файл *.desktop в каталоге /usr/share/applications или в /home/$USER/.local/share/applications ?
выполнил вот такое : xdg-mime query filetype <файл>

и создал вот такое :

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=/home/dagaz/AppPortable/Pencil/pencil %f
Name=pencil
Comment=Custom definition for pencil
MimeType=application/gzip;


теперь у меня порядок со значком (как я понимаю), но оно как работало так и работает .  :-\ просто запускает приложение. файл не подхватывает .

ecc83

DAGAZ, у тебя просто монолог или ты можешь ответить на поставленный вопрос?

Если такой файл есть, меня интересует его точное имя, путь к нему и его содержание.

DAGAZ

Цитата: ecc83 от 10 марта 2018, 13:17:12Если такой файл есть, меня интересует его точное имя, путь к нему и его содержание.

Цитировать[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=/home/dagaz/AppPortable/Pencil/pencil %f
Name=pencil
Comment=Custom definition for pencil
MimeType=application/gzip;

/home/$USER/.local/share/applications/pencil.desktop

ecc83

Дело в том, что линукс ассоциирует приложения не по расширениям, а по типам MIME.

Это у тебя какое то графическое приложение? Почему то в твоём файле desktop указан тип application/gzip.
Твои файлы .epgz это какие то архивы? Мне это важно, что бы понимать, оставлять такой тип или регистрировать новый.

На всякий случай в файловом менеджере сделай правый клик мышью на этом файле и посмотри что там указано в меню "Свойства", в строке ТИП. Действительно ли там: application/gzip

DAGAZ

#6
Цитата: ecc83 от 10 марта 2018, 18:08:06Почему то в твоём файле desktop указан тип application/gzip.
application/gzip - это результат выполнения xdg-mime query filetype <файл>  ;)
да, формат файла таков, что по сути это архив гзип, в котором архив тар, в котором различные хмл-данные и картинки . да, графика. приложение позволяет моделировать пользовательские интерфейсы.

Цитата: ecc83 от 10 марта 2018, 18:08:06в меню "Свойства", в строке ТИП.
Gzip Archive / application/gzip .

Цитата: ecc83 от 10 марта 2018, 18:08:06Почему то в твоём файле desktop указан тип application/gzip.
я сам создал десктоп файл. и сам вписал эту строку.  :-\ :-X


еще раз : при клике на документе, у меня просто запускается софт, который умеет открывать данный тип файла. сам же документ "автоматически" не открывается .

I-Jurij

А сам pencil в папке App и тд - бинарник или скрипт? В скрипте можно после команды запуска добавить $@ or $1 (что правильнее лень вспоминать).
И да: не факт, что поможет

ecc83

В файле ~/.local/share/applications/pencil.desktop исправь строку запуска приложения. Скопируй и вставь эту:

Exec=/home/dagaz/AppPortable/Pencil/pencil %F

Затем выполни по-очереди эти команды.
Все команды выполнять от имени пользователя. НЕ от root!


sudo xdg-desktop-menu install --novendor /home/dagaz/.local/share/applications/pencil.desktop
xdg-mime default pencil.desktop application/gzip
update-mime-database $HOME/.local/share/mime
sudo update-mime-database /usr/share/mime
sudo update-desktop-database
for d in $HOME/.icons/*; do gtk-update-icon-cache -f $d; done
for d in /usr/share/icons/*; do sudo gtk-update-icon-cache -f $d; done


DAGAZ

Цитата: I-Jurij от 10 марта 2018, 20:14:54А сам pencil в папке App и тд - бинарник или скрипт? В скрипте можно после команды запуска добавить $@ or $1 (что правильнее лень вспоминать).
И да: не факт, что поможет
бинарником . хочешь сказать что сам софт может быть таким кривеньким ? не поддерживающим %f ? :-X

Цитата: ecc83 от 10 марта 2018, 23:12:51
В файле ~/.local/share/applications/pencil.desktop исправь строку запуска приложения.
Затем выполни по-очереди эти команды.
спасибо за true-way, возьму себе на вооружение, но файл по прежнему не открывается. происходит запуск софта и всё  :-X

ecc83

Цитата: DAGAZ от 12 марта 2018, 05:09:13
хочешь сказать что сам софт может быть таким кривеньким ? не поддерживающим %f ? :-X

Я тебе дал выше новую строку запуска для pencil.desktop, там заглавная буква %F
Ты её изменил или считаешь, что у тебя и так всё в порядке?


Цитата: DAGAZ от 12 марта 2018, 05:09:13файл по прежнему не открывается

Попробуй в терминале запустить свою программу с аргументом в виде имени файла:


cd ~/AppPortable/Pencil
pencil filename.epgz


Если запустится нормально, тогда ищем дальше, если нет, вопросы к разработчику Pencil.


DAGAZ

Цитата: ecc83 от 12 марта 2018, 11:06:46Я тебе дал выше новую строку запуска для pencil.desktop, там заглавная буква %F
Ты её изменил или считаешь, что у тебя и так всё в порядке?
да , я изменил и зартфмил разницу ) ты так посты набиваешь ? )  ::)

Цитата: ecc83 от 12 марта 2018, 11:06:46cd ~/AppPortable/Pencil
pencil filename.epgz
файл не подхватывается   :-\ :-X

ecc83

Цитата: DAGAZ от 12 марта 2018, 12:50:37
ты так посты набиваешь ? )  ::)

Не понял вопрос... Мне комфортнее не "посты набивать", а отдыхать и не напрягаться тут оказывая консультации.

Цитата: DAGAZ от 12 марта 2018, 12:50:37
Цитата: ecc83 от 12 марта 2018, 11:06:46cd ~/AppPortable/Pencil
pencil filename.epgz
файл не подхватывается   :-\ :-X

Ну всё, вопрос решён.