LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1768|回复: 9

写了一个自动启动输入法的脚本,准备加入fcitx的rpm包,请大家测试一下

[复制链接]
发表于 2004-5-1 09:21:14 | 显示全部楼层 |阅读模式
程序位置:/etc/profile.d/input.sh
[PHP]INPUT=fcitx
export XMODIFIERS=@im=$INPUT
export XIM=$INPUT
export XIM_PROGRAM=$INPUT
if ! [ -f $HOME/.kde/Autostart/$INPUT ] ; then
        ln -sf /usr/bin/$INPUT $HOME/.kde/Autostart/
fi
if [ -f $HOME/.gnome2/session-manual ] && grep -i "RestartCommand=$INPUT" $HOME/.gnome2/session-manual > /dev/null 2>&1  ; then
        echo "" > /dev/null
        else
        if [ -f $HOME/.gnome2/session-manual ] && ! grep -i "RestartCommand=$INPUT" $HOME/.gnome2/session-manual > /dev/null 2>&1 ; then
                mv -f $HOME/.gnome2/session-manual $HOME/.gnome2/session-manual.old
        fi
        cat > $HOME/.gnome2/session-manual << EOF
[Default]
num_clients=1
0,RestartStyleHint=3
0,Priority=50
0,RestartCommand=$INPUT
EOF
fi[/PHP]
 楼主| 发表于 2004-5-2 10:15:25 | 显示全部楼层
自已顶一下!
发表于 2004-5-2 22:32:02 | 显示全部楼层
不需要这么复杂吧,在.xinitrc里加几行东西不就得了:
export LC_CTYPE=zh_CN
export XMODIFIERS="@im=fcitx"
export XIM=fcitx
export XIM_PROGRAM=fcitx
exec fcitx&
发表于 2004-5-3 03:55:58 | 显示全部楼层
> export XMODIFIERS="@im=fcitx"
> export XIM=fcitx
> export XIM_PROGRAM=fcitx

以上这三行是给fcitx专用的吗? 还是gnome程序要用的?
发表于 2004-5-3 21:23:06 | 显示全部楼层
最初由 terminator 发表
> export XMODIFIERS="@im=fcitx"
> export XIM=fcitx
> export XIM_PROGRAM=fcitx

以上这三行是给fcitx专用的吗? 还是gnome程序要用的?

应该不是fcitx专用的,如果用scim,可以写成这样:
export XMODIFIERS="@im=SCIM"
export XIM=SCIM
export XIM_PROGRAM=SCIM
scim -d
不论是gnome还是kde(或其他的wm)都可以这样写。
 楼主| 发表于 2004-5-5 23:27:23 | 显示全部楼层
最近对上段代码进行小部分修改,修改结果如下:
  1. INPUT=fcitx
  2. export XMODIFIERS=@im=$INPUT
  3. export XIM=$INPUT
  4. export XIM_PROGRAM=$INPUT
  5. if [ -d $HOME/.kde/Autostart ] ; then
  6.         if ! [ -f $HOME/.kde/Autostart/$INPUT ] ; then
  7.                 ln -sf /usr/bin/$INPUT $HOME/.kde/Autostart/
  8.         fi
  9. fi
  10. if [ -d $HOME/.gnome2 ] ; then
  11.         if [ -r $HOME/.gnome2/session-manual ] && grep -i "RestartCommand=$INPUT" $HOME/.gnome2/session-manual > /dev/null 2>&1  ; then
  12.                 echo "" > /dev/null
  13.         else
  14.         if [ -f $HOME/.gnome2/session-manual ] && ! grep -i "RestartCommand=$INPUT" $HOME/.gnome2/session-manual > /dev/null 2>&1 ; then
  15.                 mv -f $HOME/.gnome2/session-manual $HOME/.gnome2/session-manual.old
  16.         fi
  17.                 cat > $HOME/.gnome2/session-manual << EOF
  18. [Default]
  19. num_clients=1
  20. 0,RestartStyleHint=3
  21. 0,Priority=50
  22. 0,RestartCommand=$INPUT
  23. EOF
  24.         fi
  25. fi
复制代码
发表于 2004-5-6 14:22:47 | 显示全部楼层
多谢哈兄,在slackware测试通过。。。

是最新的这段代码。。。

感谢之中。。。。。。

`
发表于 2004-5-6 16:03:43 | 显示全部楼层
> 应该不是fcitx专用的,如果用scim,可以写成这样:
> export XMODIFIERS="@im=SCIM"
> export XIM=SCIM
> export XIM_PROGRAM=SCIM
> scim -d

我的经验是:
1. 启动Input Server, 比如scim和miniChinput都不用设置XMODIFIERS, XIM和XIM_PROGRAM. fcitx网站声称需要,我没试过不设行不行。
2. 对于GTK2的程序,都不需要设置XMODIFIERS, XIM和XIM_PROGRAM。只要设置LC_CTYPE=zh_CN即可。
3. 对于非基于GTK2的程序,例如rxvt和mlterm则需要设置XMODIFIERS。fcitx最奇怪,要设置XIM和XIM_PROGRAM

我的设置见两天前发的一篇关于fcitx, miniChinput和scim三和一的文章。
 楼主| 发表于 2004-5-7 01:09:01 | 显示全部楼层
由于有些朋友在启动gnome过程中splash不能消失(必须用鼠标点击才能消失),现对脚本作以下调整:
  1. INPUT=fcitx
  2. export XMODIFIERS=@im=$INPUT
  3. export XIM=$INPUT
  4. export XIM_PROGRAM=$INPUT
  5. if [ -d $HOME/.kde/Autostart ] ; then
  6.         if ! [ -f $HOME/.kde/Autostart/$INPUT ] ; then
  7.                 ln -sf /usr/bin/$INPUT $HOME/.kde/Autostart/
  8.         fi
  9. fi
  10. if [ -d $HOME/.gnome2 ] ; then
  11.         if [ -r $HOME/.gnome2/session-manual ] && grep -i "RestartCommand=$INPUT" $HOME/.gnome2/session-manual > /dev/null 2>&1  ; then
  12.                 echo "" > /dev/null
  13.         else
  14.         if [ -f $HOME/.gnome2/session-manual ] && ! grep -i "RestartCommand=$INPUT" $HOME/.gnome2/session-manual > /dev/null 2>&1 ; then
  15.                 mv -f $HOME/.gnome2/session-manual $HOME/.gnome2/session-manual.old
  16.         fi
  17.                 cat > $HOME/.gnome2/session-manual << EOF
  18. [Default]
  19. num_clients=1
  20. 0,RestartStyleHint=3
  21. 0,Priority=31
  22. 0,RestartCommand=$INPUT
  23. EOF
  24.         fi
  25. fi
复制代码
发表于 2004-5-9 09:12:08 | 显示全部楼层
我在KDE下试了(没有GNOME),应该是没有问题了,其核心好象是将输入法做成一WM的自动启动。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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