QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: jollylinux

用FC3的都请进来

[复制链接]
 楼主| 发表于 2005-2-16 14:44:28 | 显示全部楼层
[quote:62b6ec1320="protosswei"]有这样一篇文章(我按照他的方法做的,没有删iiim,而是在启动项里关闭就行了):

fc3 中启动输入法的方式与以前不同。

在 fc2 等版本中,/etc/X11/xinit/xinitrc.d/xinput.sh 包含了输入法相关的信息,假如安装新的输入法就必须修改这个文件,才能实现全局的设置。(这个文件中包含了对 chinput 的设置,因此有人说安装 fcitx 时只要改名为 chinput 就可以了,我认为这种办法不好。我自己的办法是在 xinput 中添加这些全局信息,在 $HOME/.i18n 中再进行个人的设置,但是也不是好办法,因为并不是所有人都知道怎么修改 xinput 文件)

在 fc3 中,xinput.sh 不再包含输入法相关信息,而是按顺序读取 /etc/X11/xinit/xinput.d/default, /etc/X11/xinit/xinput.d/zh_CN, $HOME/.xinput.d/default, $HOME/.xinput.d/zh_CN 这几个文件,从中获取配置。添加这些配置文件就成了每种输入法自己的任务,不必用户插手了。
如果下载 scim 为 fc3 编译的 rpm,(从 http://sourceforge.net/project/show...group_id=108454 下载安装,感谢 Ryo Dairiki) 那么其中已经包含了那些配置。但是如果编译安装,或者是以前安装的那些输入法而不是最新版本,那么不会进行配置。同样,fcitx 似乎也不包含这些。那么,怎么进行手动配置呢?

首先,要明白自己的策略,究竟是全局配置,也就是系统中一次设置之后,所有用户都生效;还是只为某个用户进行设置。假如系统中只有一种输入法,那么当然只要全局设置就可以了,可是需要考虑到扩展的情况吧

无论是全局设置还是为某个用户进行设置,先应该新建两个文件。/etc/X11/xinit/xinput.d/fcitx 的内容是

代码:
XIM=fcitx
XIM_PROGRAM=fcitx
而 /etc/X11/xinit/xinput.d/scim 的内容如下。这个文件来自 scim 为 fc3 编译的 rpm

代码:
XIM=SCIM
XIM_PROGRAM=scim
XIM_ARGS=-d
GTK_IM_MODULE=scim
QT_IM_MODULE=scim
gnome-im-settings-daemon >/dev/null
为了全局的设置,要介绍一下 alternatives 命令。这是一个只有 root 才能执行的命令。alternatives 的意思是 “可选择的内容”。假如你的系统中有几个命令功能十分类似,却又不能随意删除,那么可以用 alternatives 来指定一个全局的设置。在 FC3 中,全局默认输入法和 java 系统等等都是用它来进行设置的。它有几种功能,可以用命令行参数来指定。alternatives --install <link> <name> <path> <priority> 意思是在 alternatives 数据库中添加一个 <path>,使它成为 <link> 的可选项,优先级是 <priority>。而 <name> 则是一个中转站。这样说似乎有些抽象  所以,执行一下看看

代码:
alternatives --install  /etc/X11/xinit/xinput.d/zh_CN  xinput-zh_CN  /etc/X11/xinit/xinput.d/scim 100
alternatives --install  /etc/X11/xinit/xinput.d/zh_CN  xinput-zh_CN  /etc/X11/xinit/xinput.d/fcitx 99
这两个命令的意思就是将刚才新建的 scim 和 fcitx 两个文件作为 zh_CN 的可选内容。它们的优先级分别是 100 和 99,它们共同的名字是 xinput-zh_CN。

另外一种功能是选择默认值。上面的命令仅仅向数据库中添加了可选内容,接下来当然是进行选择了。可以用两种办法,第一种是 alternatives --auto <name>,这时系统会根据优先级来选择 <name> 的默认值。例如,运行

代码:
alternatives --auto xinput-zh_CN
会把默认输入法设置为 scim。(为什么?因为我们在上面指定的优先级是 100,是最高的,fcitx 只有 99)
第二种是 alternatives --config <name>,这时会显示一个对话框,大概是这样

代码:
[root@jackycom ~]# alternatives --config xinput-zh_CN
There are 3 programs which provide 'xinput-zh_CN'.

  Selection    Command
-----------------------------------------------
   1           /etc/X11/xinit/xinput.d/iiimf
*+ 2           /etc/X11/xinit/xinput.d/scim
   3           /etc/X11/xinit/xinput.d/fcitx

Enter to keep the current selection[+], or type selection number:

可以看到系统中已经通过 alternatives --install 添加了三个可选内容。优先级最高的是 `*' 指示的那一个,目前的默认全局使用的是 `+' 指示的那一个。输入数字 3 就会将默认值改为 fcitx,输入回车的话就不做改动。

哪种好一点?它们不会冲突,哪个都可以。要修改优先级怎么办?比如要把 fcitx 的优先级提高成 101,应该怎么办?答案很简单,再运行一次 alternatives --install 就可以了

代码:
alternatives --install  /etc/X11/xinit/xinput.d/zh_CN  xinput-zh_CN  /etc/X11/xinit/xinput.d/fcitx 101

需要注意的是,这样做不会修改当前的默认值,只有再运行 alternatives --auto 才会做出选择。或者,用 alternatives --config 也可以。

alternatives 还有一些功能,包括删除一个可选项等等。同样,这个设置应该由输入法的安装程序 rpm 来做。在 scim 为 fc3 编译的 rpm 中包含了这个设置。但是如果我们手动卸载 scim,或者要卸载原来安装的旧版本,那么需要运行下面的脚本,这个脚本是从 scim 的 rpm 中找到的

代码:
#!/bin/bash

# reset locale registeration.
cd /etc/alternatives
for name in xinput-*
do
        if /usr/sbin/alternatives --display $name | grep "^/etc/X11/xinit/xinput.d/scim" | grep "[0-9]$" > /dev/null
        then
                /usr/sbin/alternatives --remove $name /etc/X11/xinit/xinput.d/scim
                /usr/sbin/alternatives --auto $name
        fi
done
上面都是全局的设置。应该说,这些都是输入法自己的任务,虽然现在我们暂时只能手动操作。
要进行个人的设置怎么办?
最简单的应该是 gnome-im-switch applet 吧…… 在任务栏里有的
如果找不到这个 applet,那么在命令行下怎么配置呢?根据 xinput.sh 文件,它会检测 $HOME/.xinput.d/zh_CN 和 $HOME/.xinput.d/default。所以,我们这样做

代码:
mkdir $HOME/.xinput.d
ln -s /etc/X11/xinit/xinput.d/scim $HOME/.xinput.d/zh_CN

如果要使用 fcitx,那么就把第二句换一换就可以了。注销,重新登录,输入法设置就这么简单





可能遇到的问题
1. 系统中如果已经删掉了 iiimf 那么需要手动建立 /etc/X11/xinit/xinput.d 这个目录

2. 如果想默认使用英文环境 en_US.UTF-8 但是仍然需要用中文输入法,可以像上面那样用 alternatives 对 en_US 做全局设置,也可以象个人设置中那样,

代码:
ln -s /etc/X11/xinit/xinput.d/scim $HOME/.xinput.d/en_US
scim 和 fcitx 都支持 en_US.UTF-8 环境, 如果要用 fcitx 就把上面的改一改就可以
不要在 .bashrc 中做有关输入法和 locale 的设置!需要的话 , 尽量在 $HOME/.i18n 中设置, 而不要修改 /etc/sysconfig/i18n 。安装输入法不需要修改 locale 设置

3. 升级的 gtk2 中可能用 gtk-query-immodules-2.0-32 取代了 gtk-query-immodules-2.0,不过这个命令应当由输入法的安装程序 rpm 来运行,不应该由用户来运行。但是如果是编译安装 scim 却没有运行它,那么就运行一次好了。

代码:
gtk-query-immodules-2.0-32 > /etc/gtk-2.0/gtk.immodules

命令的可重复性
每个命令都可以多次执行,对结果不会有影响
必须先建立 /etc/X11/xinit/xinput.d 目录下的那些文件,而 alternatives 命令的运行顺序是无关的,全局设置与个人设置也是无关的,可以只进行全局设置,也可以只进行个人设置[/quote]
谢谢回答得这么详细!
回复

使用道具 举报

发表于 2005-2-16 22:18:40 | 显示全部楼层
别谢我,还是谢作者吧,可惜忘了他名字了。。。。。。
回复

使用道具 举报

发表于 2005-2-21 11:52:16 | 显示全部楼层
换成源码安装试拭,一般源码都有安装说明,倚赖关系都写着.
回复

使用道具 举报

发表于 2005-2-21 13:37:12 | 显示全部楼层
我装了 感觉一般,我是 webman 1.5删的 rpm -u xxx.i386.rpm
rpm -rh XXX. i386.rpm
cobranail 写到:
我用webmin删的,把带名字里有iiim的包都删了
你不是已经装上fcitx了么

打开一个终端,运行nautilus-file-management-properties,把出错的信息贴上来
你的那个截图没有提供什么信息
回复

使用道具 举报

发表于 2005-2-28 13:34:08 | 显示全部楼层
[quote:8a4e78504f="protosswei"]有这样一篇文章(我按照他的方法做的,没有删iiim,而是在启动项里关闭就行了):

fc3 中启动输入法的方式与以前不同。

在 fc2 等版本中,/etc/X11/xinit/xinitrc.d/xinput.sh 包含了输入法相关的信息,假如安装新的输入法就必须修改这个文件,才能实现全局的设置。(这个文件中包含了对 chinput 的设置,因此有人说安装 fcitx 时只要改名为 chinput 就可以了,我认为这种办法不好。我自己的办法是在 xinput 中添加这些全局信息,在 $HOME/.i18n 中再进行个人的设置,但是也不是好办法,因为并不是所有人都知道怎么修改 xinput 文件)

在 fc3 中,xinput.sh 不再包含输入法相关信息,而是按顺序读取 /etc/X11/xinit/xinput.d/default, /etc/X11/xinit/xinput.d/zh_CN, $HOME/.xinput.d/default, $HOME/.xinput.d/zh_CN 这几个文件,从中获取配置。添加这些配置文件就成了每种输入法自己的任务,不必用户插手了。
如果下载 scim 为 fc3 编译的 rpm,(从 http://sourceforge.net/project/show...group_id=108454 下载安装,感谢 Ryo Dairiki) 那么其中已经包含了那些配置。但是如果编译安装,或者是以前安装的那些输入法而不是最新版本,那么不会进行配置。同样,fcitx 似乎也不包含这些。那么,怎么进行手动配置呢?

首先,要明白自己的策略,究竟是全局配置,也就是系统中一次设置之后,所有用户都生效;还是只为某个用户进行设置。假如系统中只有一种输入法,那么当然只要全局设置就可以了,可是需要考虑到扩展的情况吧

无论是全局设置还是为某个用户进行设置,先应该新建两个文件。/etc/X11/xinit/xinput.d/fcitx 的内容是

代码:
XIM=fcitx
XIM_PROGRAM=fcitx
而 /etc/X11/xinit/xinput.d/scim 的内容如下。这个文件来自 scim 为 fc3 编译的 rpm

代码:
XIM=SCIM
XIM_PROGRAM=scim
XIM_ARGS=-d
GTK_IM_MODULE=scim
QT_IM_MODULE=scim
gnome-im-settings-daemon >/dev/null
为了全局的设置,要介绍一下 alternatives 命令。这是一个只有 root 才能执行的命令。alternatives 的意思是 “可选择的内容”。假如你的系统中有几个命令功能十分类似,却又不能随意删除,那么可以用 alternatives 来指定一个全局的设置。在 FC3 中,全局默认输入法和 java 系统等等都是用它来进行设置的。它有几种功能,可以用命令行参数来指定。alternatives --install <link> <name> <path> <priority> 意思是在 alternatives 数据库中添加一个 <path>,使它成为 <link> 的可选项,优先级是 <priority>。而 <name> 则是一个中转站。这样说似乎有些抽象  所以,执行一下看看

代码:
alternatives --install  /etc/X11/xinit/xinput.d/zh_CN  xinput-zh_CN  /etc/X11/xinit/xinput.d/scim 100
alternatives --install  /etc/X11/xinit/xinput.d/zh_CN  xinput-zh_CN  /etc/X11/xinit/xinput.d/fcitx 99
这两个命令的意思就是将刚才新建的 scim 和 fcitx 两个文件作为 zh_CN 的可选内容。它们的优先级分别是 100 和 99,它们共同的名字是 xinput-zh_CN。

另外一种功能是选择默认值。上面的命令仅仅向数据库中添加了可选内容,接下来当然是进行选择了。可以用两种办法,第一种是 alternatives --auto <name>,这时系统会根据优先级来选择 <name> 的默认值。例如,运行

代码:
alternatives --auto xinput-zh_CN
会把默认输入法设置为 scim。(为什么?因为我们在上面指定的优先级是 100,是最高的,fcitx 只有 99)
第二种是 alternatives --config <name>,这时会显示一个对话框,大概是这样

代码:
[root@jackycom ~]# alternatives --config xinput-zh_CN
There are 3 programs which provide 'xinput-zh_CN'.

  Selection    Command
-----------------------------------------------
   1           /etc/X11/xinit/xinput.d/iiimf
*+ 2           /etc/X11/xinit/xinput.d/scim
   3           /etc/X11/xinit/xinput.d/fcitx

Enter to keep the current selection[+], or type selection number:

可以看到系统中已经通过 alternatives --install 添加了三个可选内容。优先级最高的是 `*' 指示的那一个,目前的默认全局使用的是 `+' 指示的那一个。输入数字 3 就会将默认值改为 fcitx,输入回车的话就不做改动。

哪种好一点?它们不会冲突,哪个都可以。要修改优先级怎么办?比如要把 fcitx 的优先级提高成 101,应该怎么办?答案很简单,再运行一次 alternatives --install 就可以了

代码:
alternatives --install  /etc/X11/xinit/xinput.d/zh_CN  xinput-zh_CN  /etc/X11/xinit/xinput.d/fcitx 101

需要注意的是,这样做不会修改当前的默认值,只有再运行 alternatives --auto 才会做出选择。或者,用 alternatives --config 也可以。

alternatives 还有一些功能,包括删除一个可选项等等。同样,这个设置应该由输入法的安装程序 rpm 来做。在 scim 为 fc3 编译的 rpm 中包含了这个设置。但是如果我们手动卸载 scim,或者要卸载原来安装的旧版本,那么需要运行下面的脚本,这个脚本是从 scim 的 rpm 中找到的

代码:
#!/bin/bash

# reset locale registeration.
cd /etc/alternatives
for name in xinput-*
do
        if /usr/sbin/alternatives --display $name | grep "^/etc/X11/xinit/xinput.d/scim" | grep "[0-9]$" > /dev/null
        then
                /usr/sbin/alternatives --remove $name /etc/X11/xinit/xinput.d/scim
                /usr/sbin/alternatives --auto $name
        fi
done
上面都是全局的设置。应该说,这些都是输入法自己的任务,虽然现在我们暂时只能手动操作。
要进行个人的设置怎么办?
最简单的应该是 gnome-im-switch applet 吧…… 在任务栏里有的
如果找不到这个 applet,那么在命令行下怎么配置呢?根据 xinput.sh 文件,它会检测 $HOME/.xinput.d/zh_CN 和 $HOME/.xinput.d/default。所以,我们这样做

代码:
mkdir $HOME/.xinput.d
ln -s /etc/X11/xinit/xinput.d/scim $HOME/.xinput.d/zh_CN

如果要使用 fcitx,那么就把第二句换一换就可以了。注销,重新登录,输入法设置就这么简单





可能遇到的问题
1. 系统中如果已经删掉了 iiimf 那么需要手动建立 /etc/X11/xinit/xinput.d 这个目录

2. 如果想默认使用英文环境 en_US.UTF-8 但是仍然需要用中文输入法,可以像上面那样用 alternatives 对 en_US 做全局设置,也可以象个人设置中那样,

代码:
ln -s /etc/X11/xinit/xinput.d/scim $HOME/.xinput.d/en_US
scim 和 fcitx 都支持 en_US.UTF-8 环境, 如果要用 fcitx 就把上面的改一改就可以
不要在 .bashrc 中做有关输入法和 locale 的设置!需要的话 , 尽量在 $HOME/.i18n 中设置, 而不要修改 /etc/sysconfig/i18n 。安装输入法不需要修改 locale 设置

3. 升级的 gtk2 中可能用 gtk-query-immodules-2.0-32 取代了 gtk-query-immodules-2.0,不过这个命令应当由输入法的安装程序 rpm 来运行,不应该由用户来运行。但是如果是编译安装 scim 却没有运行它,那么就运行一次好了。

代码:
gtk-query-immodules-2.0-32 > /etc/gtk-2.0/gtk.immodules

命令的可重复性
每个命令都可以多次执行,对结果不会有影响
必须先建立 /etc/X11/xinit/xinput.d 目录下的那些文件,而 alternatives 命令的运行顺序是无关的,全局设置与个人设置也是无关的,可以只进行全局设置,也可以只进行个人设置[/quote]

高人啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-12 21:27 , Processed in 0.036452 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表