QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: llc

跑在magic1.1f上的紫光输入法

[复制链接]
发表于 2003-6-19 15:14:32 | 显示全部楼层
[quote:b66bf05237="llc"]测试了很多次

1、如果由init启动的upimd,进程是root的,如果此时只在root下使用这个输入法,那么重起时(stop)时词组可以保存;但如果中途注销过,进入普通用户使用,那么即使又注销回到root里,stop时也不会保存词组;也就是说,如果是root身份启动的upimd,只能归root一人用,其他用户一用就无法保存词组

2、如果是普通用户user1身份启动的upimd,那么这个用户使用一阵后stop引擎没问题,能保存词组;如果这个用户使用一阵,注销,进入root,然后由root组词,使用一阵后重起或注销后重新回到user1,然后user1重起,都没问题,可以保存;但如果user1用户启动upimd,然后注销进入user2(普通用户身份),那么无论怎么组词,即使重新回到user1再重起,都无法保存词组

可能是红旗紫光的bug,没撤了,干脆就按cbnsjtu的方法,这样root和普通用户都能保存,只要不要中途注销换身份就行

我也觉得,如果在退出x或注销x时能stop引擎是最好的解决方法,不知道有哪个脚本是退出x时必然会执行的[/quote]
我记得有一个脚本里面是定义了启动X和关闭X时自动运行某些命令的,可惜忘了,是不是在/etc/X11/下面的?
回复

使用道具 举报

发表于 2003-6-19 16:09:08 | 显示全部楼层
[quote:c0bf2f8002="llc"]测试了很多次

1、如果由init启动的upimd,进程是root的,如果此时只在root下使用这个输入法,那么重起时(stop)时词组可以保存;但如果中途注销过,进入普通用户使用,那么即使又注销回到root里,stop时也不会保存词组;也就是说,如果是root身份启动的upimd,只能归root一人用,其他用户一用就无法保存词组

2、如果是普通用户user1身份启动的upimd,那么这个用户使用一阵后stop引擎没问题,能保存词组;如果这个用户使用一阵,注销,进入root,然后由root组词,使用一阵后重起或注销后重新回到user1,然后user1重起,都没问题,可以保存;但如果user1用户启动upimd,然后注销进入user2(普通用户身份),那么无论怎么组词,即使重新回到user1再重起,都无法保存词组

可能是红旗紫光的bug,没撤了,干脆就按cbnsjtu的方法,这样root和普通用户都能保存,只要不要中途注销换身份就行
[/quote]
cbnsjtu的方法不好,中途注销换身份的情形还是很常见的。
只要chmod +s /usr/bin/rfinput,使得每次执行rfinput都相当于是root在执行。再用你那个脚本,保证init 5时root执行upimd -start,init 012346时用root执行upimd -stop。这样upimd和rfinput肯定都是同一用户root在执行。这样中间任意多个用户使用过这台机器,词库都能保存。

[quote:c0bf2f8002="llc"]
我也觉得,如果在退出x或注销x时能stop引擎是最好的解决方法,不知道有哪个脚本是退出x时必然会执行的[/quote]
同意。每个用户在登陆x,先运行upimd -start,然后再运行rfinput,注销时运行upimd -stop,这也许是最好的解决办法。
回复

使用道具 举报

 楼主| 发表于 2003-6-19 20:38:10 | 显示全部楼层
我再测试一下chmod +s /usr/local/rfinput/bin/rfinput的方法

"在登陆x,先运行upimd -start,然后再运行rfinput,注销时运行upimd -stop"这个应该是最好的解决方法
回复

使用道具 举报

发表于 2003-6-19 20:59:15 | 显示全部楼层
[quote:6a366fd29b="llc"]
"在登陆x,先运行upimd -start,然后再运行rfinput,注销时运行upimd -stop"这个应该是最好的解决方法[/quote]
如果由于某种原因,在登陆x前,upimd已经在运行(完全有可能不是现在登陆x这个用户执行的),这个解决方法就会有问题(有可能upimd -start或upimd -stop运行失败)。所以不是很健壮。

总之,我们在这里讨论最多只能讨论出针对redflag 4.0beta输入法的一个hack的解决方案。其实这一切问题应该归结于rfinput有bug(rfinput运行前没有upimd运行,会丢失用户词库;有upimd运行,不是同一用户运行的,也会丢失用户词库)。希望redflag的开发人员在正式版中能解决这个问题。
回复

使用道具 举报

发表于 2003-6-19 21:03:12 | 显示全部楼层
不知道红旗会不会注意这个问题,我看红旗的论坛上没有什么反应
回复

使用道具 举报

发表于 2003-6-19 21:08:13 | 显示全部楼层
[quote:1eac6aeada="cbnsjtu"]不知道红旗会不会注意这个问题,我看红旗的论坛上没有什么反应[/quote]
你可以向他们提交bug report(发email),也许能引起他们的注意。他们不一定会常去论坛里看。

你不必说你是在redhat 9上用的,我看这个bug跟用什么linux无关。反正redflag 4.0beta是免费提供下载试用的。
回复

使用道具 举报

 楼主| 发表于 2003-6-20 03:03:52 | 显示全部楼层
根据luochong、cbnsjtu等朋友的反馈意见,再次修正如下:
1、进行chmod +s /usr/local/rfinput/bin/rfinput,确保无论是哪个用户使用紫光,都能保存自造词组(感谢luochong!)
2、取消中软的启动脚本,改为进入x时,由/usr/local/bin/upimd脚本启动,避免由于第1点带来的用户(新建用户)权限问题
3、增加一个stopupimd脚本,并链接到/etc/rc.d/rc6.d和/etc/rc.d/rc0.d,确保重起或关机时能自动保存用户自造词

如果安装了以前的包发现仍然不能保存自造词组的,请先用rpm -e rf4magic命令卸载,注销,然后重新下载这个修正过的包,用rpm -ivh命令安装上,我相信现在修正后的这个包在词组保存方面应该是完全没问题了

已经更新下载链接:
http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=geninfo&did=936

如果在保存词组方面还有问题的朋友请再跟贴
回复

使用道具 举报

发表于 2003-6-20 04:52:40 | 显示全部楼层
llc兄,果然厉害,反应真快,
我还在造退出x的方法,啊哈哈!!
不找了,能用就行
回复

使用道具 举报

发表于 2003-6-20 11:02:46 | 显示全部楼层
能不能通过修改/etc/X11/gdm/PostSession/Default
来达到在注销的时候关闭rfinput,和引擎的目的?
这个时候提出来没有意义了     
回复

使用道具 举报

发表于 2003-6-20 11:55:28 | 显示全部楼层
我用rh9+gnome,请问怎么把输入法的小窗口(进程名叫rfdock,不是输入法的状态栏)去掉?
谢谢
回复

使用道具 举报

发表于 2003-6-20 12:38:00 | 显示全部楼层
[quote:1be46415c4="popkev"]我用rh9+gnome,请问怎么把输入法的小窗口(进程名叫rfdock,不是输入法的状态栏)去掉?
谢谢[/quote]

/usr/local/bin/upimd
修改这个脚本就可以了
回复

使用道具 举报

 楼主| 发表于 2003-6-20 12:46:39 | 显示全部楼层
[quote:8a94e86d6c="cbnsjtu"][quote:8a94e86d6c="popkev"]我用rh9+gnome,请问怎么把输入法的小窗口(进程名叫rfdock,不是输入法的状态栏)去掉?
谢谢[/quote]

/usr/local/bin/upimd
修改这个脚本就可以了[/quote]

不,不是修改/usr/local/bin/upimd,而是修改/usr/share/autostart/rfinput.deskotp,这个快捷方式里定义了启动两个程序,一个是upimd(rfinput),另一个是rfdock,就是你说的那个小窗口(本来应该dock进kde里,在gnome下无法dock,只好浮动窗口),因此,你只要修改/usr/share/autostart/rfinput.deskotp,将里面的rfdock删掉就可以了,这样只启动rfinput,在gnome下也完全可以使用
回复

使用道具 举报

 楼主| 发表于 2003-6-20 12:53:41 | 显示全部楼层
[quote:babcff659f="cbnsjtu"]能不能通过修改/etc/X11/gdm/PostSession/Default
来达到在注销的时候关闭rfinput,和引擎的目的?
这个时候提出来没有意义了     [/quote]

也想过这个,不过,这个脚本好像只在进入x时有作用,注销时没作用,只好作罢
回复

使用道具 举报

发表于 2003-6-20 14:09:12 | 显示全部楼层
llc,来看看,安装了你的包之后,刚开始的时候使用没有关系,但是一旦重启之后rfinput能够启动,但是引擎不正常,无法输入汉字,还有很多的其他的不正常,我不知道是不是软件包的问题,我只有删除包,之后一切正常,不知道是不是又是只有我一个人有问题。
回复

使用道具 举报

发表于 2003-6-20 16:01:38 | 显示全部楼层
[quote:724f2b8868="llc"]根据luochong、cbnsjtu等朋友的反馈意见,再次修正如下:
1、进行chmod +s /usr/local/rfinput/bin/rfinput,确保无论是哪个用户使用紫光,都能保存自造词组(感谢luochong!)
2、取消中软的启动脚本,改为进入x时,由/usr/local/bin/upimd脚本启动,避免由于第1点带来的用户(新建用户)权限问题
3、增加一个stopupimd脚本,并链接到/etc/rc.d/rc6.d和/etc/rc.d/rc0.d,确保重起或关机时能自动保存用户自造词
[/quote]
为什么用了2,就可以避免1带来的权限问题?

我认为如果采用1的话,最好的方案是保留中软的那个脚本,使得init 345时用root运行upimd -start, 而init 0126时用root运行upimd -stop保留词库。

也就是说,对于llc您初次发布的那个rpm,只要修改chmod +s /usr/bin/rfinput就可以消除词库不能保存的bug(当然会带来普通用户初次使用出问题的bug)。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-24 23:30 , Processed in 0.055309 second(s), 13 queries .

© 2021 Powered by Discuz! X3.5.

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