поведінка програм за замовчуванням xdg-open


13

Коли у мене немає defaults.listі mimeapps.list, xdg-openвідкривається text/plainс gvim. Але коли я створюю defaults.listв /usr/share/applications/і додайте наступні рядки:

[Default Applications]
text/plain=emacs.desktop

він відкриває текстові файли з Firefox.

Однак якщо я перейду /usr/share/applications/defaults.listдо ~/.local/share/applications/mimeapps.listцього пункту, він відкриє текстові файли, emacsяк очікувалося.

Мої запитання:

  1. Як xdg-openвизначити, яку програму запустити, коли її немає defaults.listі mimeapps.list?
  2. Чому я xdg-openвикористовую firefox, коли я просто пишу /usr/share/applications/defaults.list?

Я використовую Arch linux.


1
Я використовую Openbox. Також я помітив /usr/share/applications/mimecache.infoфайл, який, здається, містить список програм за замовчуванням. Це ще більше заплутано ...
Градієнт

1
Я знайшов цей конфігураційний файл у~/.config/mimeapps.list
Сем Мейсон

Відповіді:


23

Якщо ви використовуєте xdg-openдля відкриття програм, то використовуйте xdg-mimeдля встановлення програми за замовчуванням для даного типу mime (як правило, встановлення xdg-utils дає вам xdg-mime та пов'язані з ними програми).

Наприклад, щоб побачити тип файлу (тип mime, якщо ви хочете) даного файлу:

$ xdg-mime query filetype tmp.txt
text/plain

$ xdg-mime query filetype foo.pdf 
application/pdf

$ xdg-mime query filetype $PWD
inode/directory

Приклад зміни файлу файлів за замовчуванням для відкриття каталогів (можна вибрати caja.desktop (за замовчуванням для монетного двору), nautilus.desktop (ubuntu) тощо:

$ xdg-mime default Thunar.desktop inode/directory

А також зробити, locate -i foo.desktopщоб переконатися, що foo.desktopнасправді існує.

Більше того, щоб побачити, що таке текстовий редактор за замовчуванням,

$ xdg-mime  query default text/plain 
gedit.desktop

Щоб використовувати інший текстовий редактор за замовчуванням (знову ж таки, переконавшись, що файл ".desktop" існує):

$ locate -i vim.desktop
/usr/share/applications/gvim.desktop

$ xdg-mime default gvim.desktop text/plain

Тепер або двічі клацніть "foo.txt" (у вашому файловому менеджері графічного інтерфейсу), або запущений xdg-open foo.txtбуде gvimзамість цього gedit.

Усунення несправностей: переконайтеся, що файл ".desktop" для даної програми можна знайти, оскільки це потрібно використовувати з xdg-mimeутилітою; наприклад,

$ xdg-mime default emacs text/plain 
xdg-mime: malformed argument 'emacs', expected *.desktop

Крім того, це мовчки не працює, як очікувалося, якщо файл ".desktop" не існує:

$ locate -i emacs.desktop
(none)

$ xdg-mime default emacs.desktop text/plain  # won't work

Фактичний файл ".desktop" emacs (в моєму оточенні):

$ locate -r 'emacs.*\.desktop'
/usr/share/applications/emacs24.desktop

$ xdg-mime default emacs24.desktop text/plain  # does work

Дивіться також: https://wiki.archlinux.org/index.php/xdg-open


3
Через роки, але спасибі! Деякий розробник вклав справді поганий жарт у вино, він, мабуть, подумав, "якщо ти справді хочеш повернути частину цього болю в Windows, у тебе повинно бути все, щоб ніколи не ностальгувати!" І оскільки всі X11-програми запускають клон блокнота при відкритті Text-Files. Відкриття файлів із програми для мене рідкісне, але блокнот дуже болить. З вашою допомогою я повернув гвім.
flaschenpost
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.