分页: 1 / 2

Linux下设定文件与程序之间的关联

发表于 : 2010-08-28 20:56
kakashiljf
不知道发到哪个版块,最近在使用Arch,就发到这里吧,我在网上也很少找到资料,所以这里写一下,希望能帮助后来的人

好吧,闲话不说。想必用过Ubuntu的人,都使用过Ubuntu tweak吧,它有一个功能,就是调整文件类型与应用程序间关联的功能。比如一个rmvb文件,如果你系统有vlc和smplayer,默认情况下可能使用smplayer打开,可是,如果你想调整,即希望用vlc播放器来播放rmvb文件,而不是smplayer,你可以使用Ubuntu tweak的这个功能来实现。另外,你也可以直接点该rmvb文件,然后在右键属性那选择使用那个应用程序打开这种类型的文件。

不过,如果你不能使用Ubuntu tweak,同时,在你的“属性”中所能选择的程序列表中也找不到你希望打开这类文件的应用程序时,你应该如何是好呢?本人正是遇到这个问题,所以才发现了今天的这个方法(可能有人已经很早就知道,不过我实在是Google不到啊…… :em06

我的问题就是,我安装了 Arch,然后通过非pacman或yaourt的方式安装了FoxitReader,可是我希望双击PDF文件时,可以自动调用该程序来打开它。但是,右键中没有显示这个程序,也不能在“属性”的程序菜单中找到,Open With的程序列表或者命令中都无法使用(可以看这个帖子:viewtopic.php?f=155&t=290888)。唯一的办法就是首先打开FoxitReader程序,然后再去到目录下去寻找我需要打开的PDF文件。

好吧,问题就是这样。然后经过相当久的摸索,发现了两篇比较有参考价值的帖子:
http://www.linuxsir.org/bbs/showthread.php?t=134703
http://home.phpchina.com/space.php?uid= ... &id=182851

初看两篇帖子好像已经很好地指明了方向,可是按照他们的描述去操作后,仍然无法解决我的问题。
就这样放了两天,突然想起我的计算机上还有个Ubuntu10.04,于是直接去查看Ubuntu10.04下对应的文件,终于找到问题的所在——我的Arch的/usr/share/applications/下没有建立属于FoxitReader的desktop文件。

下面给出我完整地解决这个问题的办法:

1.首先在/usr/share/applications下建立FoxitReader.desktop文件,内容如下:

代码: 全选

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=FoxitReader
Type=Application
GenericName=Foxit PDF Reader
Comment=Read PDF Document
Exec=FoxitReader %F
StartupNotify=true
Icon=/usr/share/pixmaps/fx-icon.png
Terminal=false
Categories=GNOME;GTK;Application;Office;Viewer;
MimeType=application/pdf;application/x-bzpdf;application/x-gzpdf;
Comment[zh_CN]=Read PDF Document
GenericName[zh_CN]=Foxit PDF Reader
值得注意的是Exec的值,如果应用程序在PATH路径下,那就不需要写完整路径,否则写上程序的完整路径。Icon也可以有可以无,没有关系。

2.然后修改/usr/share/applications/defaults.list文件,找到这一行(可能等号后面的值不相同,具体视你安装了什么软件而定,因为我安装了的evince可以用来看pdf,所以系统产生了这个值):

代码: 全选

application/pdf=evince.desktop
然后在“=”号后面添加刚才你建立的desktop文件的名字,即:

代码: 全选

application/pdf=FoxitReader.desktop;evince.desktop
保存。

3.修改~/.local/share/applications/mimeapps.list文件,在[Added Associations]这个标题下添加刚才那行(如果有对应的application/pdf,则修改成上述步骤那行一样),即:

代码: 全选

[Added Associations]

.......
application/pdf=FoxitReader.desktop;evince.desktop
.......

保存。

4.然后就是见证奇迹的时候了——随便找个PDF文件,然后双击试试,哈哈,调用FoxitReader来打开啦! :em11
而且“属性”的应用程序选择菜单上也出现了FoxitReader这个选项了,右键菜单中FoxitReader也排在了默认打开程序的位置上! :em05




:em19 只能选择evince程序打开PDF文件:
P1.png
:em05 终于能选择使用FoxitReader打开PDF文件啦:
P2.png

Re: Linux下设定文件与程序之间的关联

发表于 : 2010-08-28 21:32
枫叶饭团
mark :em11

Re: Linux下设定文件与程序之间的关联

发表于 : 2010-08-28 21:36
susbarbatus
:em06 没遇到过自定义命令不行的情况

Re: Linux下设定文件与程序之间的关联

发表于 : 2010-08-28 21:39
eexpress
你先看你的fm,遵循标准的xdg-mime不。
没搞清这点,啥都说了没用。

Re: Linux下设定文件与程序之间的关联

发表于 : 2010-08-28 22:01
kakashiljf
eexpress 写了:你先看你的fm,遵循标准的xdg-mime不。
没搞清这点,啥都说了没用。
谢谢ee的提醒,我当时也在想到底是不是在其他Linux环境下也能用。我使用的是pcmanfm……当时也是作个尝试,结果就成功了。xdg-mime标准还没有了解多少 :em06 ,找个时间去看看。


PS:开学又到了,又要面对那一堆堆讨厌的医学书…… :em19

Re: Linux下设定文件与程序之间的关联

发表于 : 2010-08-29 11:35
jr0501
又学会一招。

Re: Linux下设定文件与程序之间的关联

发表于 : 2010-09-02 18:49
梨,半斤
yaourt -Ss gnome-default-list

Re: Linux下设定文件与程序之间的关联

发表于 : 2010-09-02 18:59
curator
gnome的,记得右键preferences就可以设置

lz头像,隔行扫描?

Re: Linux下设定文件与程序之间的关联

发表于 : 2010-09-02 23:47
kakashiljf
curator 写了:gnome的,记得右键preferences就可以设置

lz头像,隔行扫描?
本人环境 openbox :em06

Re: Linux下设定文件与程序之间的关联

发表于 : 2011-06-01 19:24
Lavande
mark 问题是我foxit打不开……

Re: Linux下设定文件与程序之间的关联

发表于 : 2011-10-16 14:49
bbeikke
ubuntu 11.10 右键属性不怎么好使...
试试这个方法
mark

Re: Linux下设定文件与程序之间的关联

发表于 : 2011-10-19 22:01
Flashboy
学习,mark一下。

Re: Linux下设定文件与程序之间的关联

发表于 : 2011-10-19 23:03
YeLee
学习了 :em11 :em11 :em11

Re: Linux下设定文件与程序之间的关联

发表于 : 2013-12-15 0:10
xibei
我想关联texmacs和它的tm文件,按照楼主说的方法还是不行,右键找不到texmacs程序。。。。

Re: Linux下设定文件与程序之间的关联

发表于 : 2013-12-15 10:03
jinjiachen
以备不时之需