Таким образом, я должен был удалить ppa версия Xournal и создать из источника (с модификацией). И теперь файлы .xoj открываются автоматически Ковчегом менеджера архива KDE и определяются как являющийся типа "архив Gzip", когда каждый выбирает Свойства из контекстного меню у дельфина:
(Прежде чем, .xoj файлы, открытые с Xournal и, были правильно определены.) Это положение дел сохраняется несмотря на все следующее:
1) Скопированный эти файлы, которые идут с исходным пакетом:
- xournal.xml
в/usr/share/mime/packages/
- xournal.desktop
в/usr/share/applications/
- x-xoj.desktop
в/usr/share/mimelnk/application/
2) добавленный строка
application/x-xoj=xournal.desktop;
к ~/.local/share/applications/mimeapps.list
3) добавленный тип MIME application/x-xoj
в параметре настройки системы ассоциаций файлов
(с соответствующим содержанием):
(Отметьте также это application/x-gzip
указывает только .gz расширение:
.)
4) скопированный xournal.xml
к/usr/share/mime/application
как предложено здесь
5) sudo update-mime-database /usr/share/mime
6) перезапущенный компьютер
отредактированный для добавления:
7) [щелкните правой кнопкой по .xoj файлу]->, Открывают With->, Other...-> [выбирает 'Xournal'], галочка 'Помнят, что ассоциация приложения для этого типа файла' также не имеет никакого эффекта.
конец редактирования
Это находится на Kubuntu 12.04.
Так, что я пропускаю?
Отредактированный для добавления
Я обнаружил что file --mime-type [filename]
и mimetype [filename]
команды приводят к различным результатам, как в этом вопросе:
archelon@ingelrayok:~/Documents/xournal$ file --mime-type 2014-02-22-Note-02-09.xoj
2014-02-22-Note-02-09.xoj: application/x-gzip
archelon@ingelrayok:~/Documents/xournal$ mimetype 2014-02-22-Note-02-09.xoj
2014-02-22-Note-02-09.xoj: application/x-xoj
Однако нет никакой записи для application/x-gzip
в/etc/mime.types (от который file
команда, предположительно, получает свою информацию); и, действительно, не должен быть, согласно комментарию в начале того файла, который читает частично:
Примечание: Схемы сжатия как "gzip", "bzip", и "сжатие" не являются на самом деле "типами пантомимы". Они - "кодировка" и следовательно не должны иметь записей в этом файле для отображения их расширений. "Тип пантомимы" закодированного файла относится к типу данных, которые были закодированы, не тип кодирования.
В том комментарии также говорится это
Пользователи могут добавить свои собственные типы, если они желают путем создания ".mime.types" файла в их корневом каталоге. Определения, включенные там, будут иметь приоритет по перечисленным здесь.
Нет в настоящее время никакого такого файла. Существуют некоторые файлы в моем корневом каталоге (который я не создал), которые, по-видимому, связаны с выводом mimetype
команда; они включают
~/.local/share/mime/application/x-xoj.xml
,
~/.local/share/mime/packages/application-x-xoj.xml
, и
~/.local/share/mime/types
который содержит только текст application/x-xoj
.
На самом деле каталог ~/.local/share/mime/и все в нем имеет ту же метку времени (22:19 вчера вечером) и было таким образом, по-видимому, сгенерировано тем же процессом.
После рассмотрения страниц справочника для mimetype и файла, я решил проверить переменные среды $XDG_DATA_HOME
и $XDG_DATA_DIRS
, которые, по-видимому, используются первым, но не последним. Но я не знал, как сообщить о значении переменной среды, таким образом, я попробовал cat $XDG_DATA_HOME
, которые устанавливают значение (ни к чему) вместо того, чтобы сообщить об этом. Отредактированный для добавления: Или таким образом, я думал сначала; на самом деле это было уже сброшено, как мы будем видеть. Корректная команда echo $XDG_DATA_HOME
, поскольку я извлек уроки из чтения о переменных среды здесь. Таким образом я обнаружил это $XDG_DATA_DIRS
был установлен на /usr/share/default:/usr/local/share/:/usr/share/
; первый из них не существует. Я не думаю, что вопросы, но так или иначе выполнил команды
XDG_DATA_HOME=$HOME/.local/share
и
XDG_DATA_DIRS=/usr/local/share/:/usr/share/
согласоваться со стандартом. Я сомневаюсь, что любое из этого будет иметь любое значение, но я собираюсь попробовать другой перезапуск теперь (хотя я думаю, что те переменные среды будут автоматически сброшены так или иначе). Следующее редактирование: Да, они были; на самом деле переменная XDG_DATA_HOME
является теперь пустым снова.
Так или иначе нижняя строка, кажется, что KDE использует функциональность это file
использует, а не это который mimetype
использует. Если я понимаю вещи правильно, это означает, что использует волшебство вместо типов MIME. Я теперь подозреваю, что волшебство ответственно за эту целую проблему.
Новое редактирование
Так file
в странице справочника, кажется, говорится, что это базовые волшебные файлы:
/usr/share/misc/magic.mgc Значение по умолчанию составило список волшебства.
/usr/share/misc/magic Каталог, содержащий волшебные файлы по умолчанию.
(У меня есть они;/usr/share/misc/magic является ссылкой на пустую папку,/usr/share/file/magic, и/usr/share/misc/magic.mgc является ссылкой на файл/usr/share/file/magic.mgc - последний является файлом на 2,1 МБ, полным напыщенности речи), и следующий текст:
Информация, определяющая эти файлы
(т.е. "файлы [которым] сохранили ''магическое число'' в конкретном месте около начала файла"),
читается из/etc/magic и скомпилированного волшебного файла
/usr/share/misc/magic.mgc, или файлы в каталоге
/usr/share/misc/magic если скомпилированный файл не существует. Кроме того,
если $HOME/.magic.mgc или $HOME/.magic будут существовать, то он будет использоваться в предпочтении
в системные файлы волшебства.
(Я подтвердил это с strace
, как предложено здесь.) Ни $HOME/.magic.mgc, ни $HOME/.magic не существуют в моей системе; но, с тех пор по-видимому, xoj файлы содержат точно, что напыщенность речи, которая заставляет файл быть волшебно определенным как application/x-gzip
, это сделало бы отрицательный результат для создания их (исправьте меня, если я неправ).
Решением, которое я ищу, затем, был бы способ иметь волшебство переопределения спецификации типа MIME для данного расширения файла; я думал, что видел что-то, что было похоже на него, мог бы обеспечить подсказку относительно того, как это могло бы быть выполнено, но я не могу найти его теперь. Все же, конечно, такой метод существует.
Не ответ, но просто комментарий:
попробовал
cat $XDG_DATA_HOME
, которые устанавливают значение (ни к чему) вместо того, чтобы сообщить, что оно
cat
, конечно, не установит значение переменной. cat
распечатал бы содержание файла имени, которым Вы предоставляете ему, или в отсутствие имени файла он распечатал бы то, что он читает из стандартного входа. Кроме того, переменные расширены оболочкой, которую Вы выполняете (обычно /bin/bash
), и таким образом cat
даже никогда не видит название переменной.
Теперь в Вашей определенной ситуации, переменная по-видимому не была установлена, таким образом расширенная ни до чего, таким образом cat
не имел никакого параметра, таким образом cat
распечатанный от stdin, и я предполагаю, что Вы имели к Ctrl-C
- заканчивают его, или возможно Ctrl-D
(конец файла).