2014年10月20日 星期一

找出 xdg-open 設定檔

google 了一會兒都沒找到, 突然想到 strace。

strace xdg-open http://www.google.com
1 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
2 rt_sigaction(SIGINT, {0x8085d90, [], 0}, {SIG_DFL, [], 0}, 8) = 0
3 rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {0x8085d90, [], 0}, 8) = 0
4 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
5 faccessat(AT_FDCWD, "/home/descent/.local/share/applications/userapp-Firefox-JV75QW.desktop", R_OK) = 0
6 faccessat(AT_FDCWD, "/home/descent/.local/share/applications/userapp-Firefox-JV75QW.desktop", R_OK) = 0
7 pipe([3, 4])                            = 0
8 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0

這個 xdg-open 還真厲害, 是什麼時候加了這麼多的設定檔。怕怕 ...

xdg-open 是幹嘛用的: http://xue.uplook.cn/xtgl/linuxjs/1131008.html

這便是為什麼 xdg-open 知道要用 firefox 來開啟某個 url 的秘密。

上表 L5 就是設定檔, 專門用來對付 url, 下表 L7 就是實際上執行的指令。 

userapp-Firefox-JV75QW.desktop
1
2 [Desktop Entry]
3 Encoding=UTF-8
4 Version=1.0
5 Type=Application
6 NoDisplay=true
7 Exec=/usr/bin/firefox %u
8 Name=Firefox
9 Comment=Custom definition for Firefox

20170831 補充
xdg-open 會 call /usr/bin/gvfs-open, gvfs-open 會參考 /usr/share/mate/applications/defaults.list

x-scheme-handler/http=iceweasel.desktop
x-scheme-handler/https=iceweasel.desktop

把 iceweasel.desktop 改成 google-chrome-unstable.desktop default html page 就會用 chrome 打開。

至於困擾我很久的 pdf, 原來是靠 mimeopen 去設定打開的應用程式 (難怪我怎麼都找不到設定檔), mimeopen -a a.pdf 就會有提示要使用哪個應用程式打開。

檔案總管我喜歡 windows xp 的那個, xfe 在 X 提供了類似的界面, 用以下指令來設定以 xfe 開啟目錄:

descent@debian64:tmp$ mimeopen .
Please choose a default application for files of type inode/directory

 1) Disk Usage Analyzer  (org.gnome.baobab)
 2) Vifm  (vifm)
 3) qgit  (qgit)
 4) Filelight  (org.kde.filelight)
 5) Audacious  (audacious)
 6) Other...

use application #6
use command: /usr/bin/xfe
Opening "." with usr  (inode/directory)

ref:
Linux 設定桌面環境預設開啟程式

沒有留言:

張貼留言

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。