一直都没有搞懂 linux 桌面菜单和文件关联的问题,这下研究了一下,写点小结。; j1 z8 {4 Q, A( Z. Z3 O
6 g1 r2 p7 x( [+ W! S: S
接触 linux 桌面就会与菜单和文件关联扯上关系,那怎么手动修改呢。
: T3 Q) Z- w8 I+ `, N( r ) C& C d, t4 V" T& u% m% o: I' I
菜单:
' x! M4 W4 s( D* d, L: E
+ E3 ~6 [/ r1 \ 首先说菜单,菜单包含三个部分来完成。menu 文件用来把 desktop 文件集中起来形成菜单的样式。' X4 `. X W7 f, f5 H- `# N
$ T& u" B) _7 S9 {
directory 文件用来描述菜单的目录层次结构,因为只有 desktop 文件的话就没有目录的层次结构了。; X( D( O) |4 U, l, G6 ^0 Y$ x
: G( k5 J2 M1 i [) w5 a menu 文件的位置5 X$ ]4 ]" |3 y1 U8 \
) V7 V! A! b) {6 R& }# ?2 j
全局:/etc/xdg/menus/
. d3 I" Y9 ]# m
& D- p/ S: E, ~* ]: w 个人:~/.config/menus/( r2 d" w2 n/ \7 c$ u
* \* R" w) r5 t+ k
directory 文件的位置( V, \0 e1 V9 y7 Z; G) Y9 W- y
8 a/ T$ T0 Z( V% N! ? 全局:/usr/share/desktop-directories/
a: K2 X9 `0 F/ o& z8 ]5 I 2 s% I/ r2 \: t6 {' T7 e1 _/ Y
个人:~/.local/share/desktop-directories/
3 q- i$ _* ~$ A& |& } , Q# A& p6 |& ~2 m9 H" D: g
desktop 文件的位置" O6 U4 v# T0 q- l3 w, |/ s& L; l
# ^8 J, U5 {& R; K* Y, H1 B
全局:/usr/share/applications/
+ X, ?/ X+ E, P+ E% l # ?9 f8 m6 ], ~* T+ g- {
个人:~/.local/share/applications/# T3 v% k6 j- L8 N. d& L
( u3 e: y7 f ?. r; F9 @! B
例如 xfce4 的 menu 文件 /etc/xdg/menus/xfce-applications.menu
% @+ V$ ^$ f8 D( F9 X* M. ~
8 I- S' x! J4 O) M& @1 q0 Q8 T 解释:5 v3 g% U: B% I ]% p# ]
" j. h1 j5 g9 U0 @9 K 说的就是到默认的路径查找desktop 文件,也就是上面列出的目录。
1 U* G! u- O6 E5 q - ]) V8 u2 c" K) F* H! M6 k: A* I5 ?
到默认的路径查找directory 文件- }. \! {# K+ h
/ @- T; @0 ?7 O) M$ Q' u
可以直接插入一个 desktop 文件条目
7 W7 R0 f9 U" q" |4 u+ d3 \
2 d. Q% R2 H9 O0 _- ?3 F5 s. @ 可以直接插入一个指定 name 的 menu
: X1 W& |: g- L/ o! c
4 _$ e% L; I" t2 \ 合并所有其它 menu
' `* r- r- q, Y) c- ?6 d, v . W7 C7 ]7 f9 a, q6 ~' y
说的是一个类别,它会扫描所有的 desktop 文件(可以去看一个 desktop 文件,1 q! @7 W0 i9 C3 z( m7 J
! D$ m0 T/ Q0 e% C3 A) I7 z" E
它一般有一个变量就指定了程序应该属于的分类)。把它包含在 标识之间就是说在这里( `& `7 \& S5 G f8 W9 t" @+ z
4 c. F( j9 U x
要插入所有 Category 是指定值的程序。
T& n6 y/ @" h+ p( y& V
9 p! Z0 `0 u Z5 Q) h4 E# \6 ~ 文件关联:8 s! f& U: L5 O4 g& x
9 ?- W( j2 f3 [6 [) Z 按照 http://forum.ubuntu.org.cn/search.php?search_id=egosearch [+] 的说法,
6 F) \3 Z# K! n/ { # f4 Y" a6 \7 R; B
/etc/gnome/defaults.list 保存了全局的打开方式3 N) Q, |/ b$ X
0 L; B" S$ m. q* v6 _8 L q
~/.local/share/applications/defaults.list 保存了个人的打开方式) P+ |4 h+ i+ o' g1 j6 Q( c7 D
8 L) c' r* W- Y, [
当两着不一致是,优先采用局部的个人设置。' d9 o) \ U6 W& b
/ }6 n( W6 i) R1 x5 J
/usr/share/applications/mimeinfo.cache
( l1 n: t5 V( W) Q C: n$ o
5 K' j( L0 r6 w/ v& c1 L4 n" f9 d ~/.local/share/applications/mimeinfo.cache7 I1 b! e, I G4 r; k
: z8 |2 D+ `5 j9 c" w
这两个分别是全局的和局部的打开方式缓存
1 S" I. [1 p4 g* m0 g% c 2 J' N0 O' i. [0 D, ^: r- p1 {8 A
defaults.list 不是每个桌面环境都有的, xfce4 就没有,所以就不可用。mimeinfo.cache0 N2 a6 @0 t% F" ]
" `6 p6 {' |! |( J4 L: Q* o1 N 都就是缓存了,所以一段时间后会刷新,更改它也不起作用。事实上,需要修改的是 desktop 文件。 |