fbterm + ucimf 无法激活输入法

85 views
Skip to first unread message

eric

unread,
Mar 30, 2009, 9:36:02 PM3/30/09
to UCIMF
两月前,安装后无法运行。
http://www.linuxsir.org/bbs/thread342880.html

昨天,再次安装很顺利,fbterm可运行,后台有 fbterm_ucimf 进程,可怎么也激活不了输入法。


1 作为测试,所有相关软件安装至 ${HOME}/local,${HOME}/local/etc/ucimf.conf 中路径已修正 。
#-----------------install--------------------
export LD_LIBRARY_PATH=${HOME}/local/lib
export PKG_CONFIG_PATH=${LD_LIBRARY_PATH}/pkgconfig

cd

wget -c http://ucimf.googlecode.com/files/UserManual.pdf
wget -c http://ucimf.googlecode.com/files/UserManual.txt

wget -c http://ucimf.googlecode.com/files/libucimf-2.2.8.tar.gz
tar -xvf libucimf-2.2.8.tar.gz
cd libucimf-2.2.8/
./configure --prefix=${HOME}/local
make
make install
cd
rm -rf libucimf-2.2.8/

sed -i "s@/usr@${HOME}/local@g" ${HOME}/local/etc/ucimf.conf


wget -c http://ucimf.googlecode.com/files/ucimf-openvanilla-2.10.5.tar.gz
tar -xvf ucimf-openvanilla-2.10.5.tar.gz
cd ucimf-openvanilla-2.10.5/
./configure --prefix=${HOME}/local
make
make install
cd
rm -rf ucimf-openvanilla-2.10.5/


wget -c http://ucimf.googlecode.com/files/openvanilla-modules-0.8.0_9.tar.gz
tar -xvf openvanilla-modules-0.8.0_9.tar.gz
cd openvanilla-modules-0.8.0_9/
./configure --prefix=${HOME}/local --with-zh_CN
make
make install
cd
rm -rf openvanilla-modules-0.8.0_9/


wget -c http://fbterm.googlecode.com/files/fbterm-1.4.tar.gz
tar -xvf fbterm-1.4.tar.gz
cd fbterm-1.4/
./configure --prefix=${HOME}/local
make
make install
cd
rm -rf fbterm-1.4/


wget -c http://ucimf.googlecode.com/files/fbterm_ucimf-0.2.4.tar.gz
tar -xvf fbterm_ucimf-0.2.4.tar.gz
cd fbterm_ucimf-0.2.4/
./configure --prefix=${HOME}/local
make
make install
cd
rm -rf fbterm_ucimf-0.2.4/


wget -c http://ftp.debian.org/debian/pool/main/d/dialog/dialog_1.1-20080819.orig.tar.gz
tar -xvf dialog_1.1-20080819.orig.tar.gz
cd dialog-1.1-20080819/
./configure --prefix=${HOME}/local
make
make install
cd
rm -rf dialog-1.1-20080819/
#===========================================



2 运行
#-----------------testing--------------------
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
export PATH=${HOME}/local/bin:$PATH

fbterm -i fbterm_ucimf
# 9392 tty6 R+ 0:00 fbterm -i fbterm_ucimf
# 9394 tty6 S+ 0:00 fbterm_ucimf
#===========================================

启动过程中,屏幕左上角闪一下。

中文显示正常。
Ctrl+Space 无效,屏幕无动作。
Ctrl+Shiftleft 无效,屏幕无动作。
按 F12 显示 4~,按 F11 显示 3~,不管在 fbterm 运行前是否运行 ucimf_keyboard。

.ucimf-log 如下:
#-------------------------------------------
[DEBUG]:IMF Modules scan path: /home/test/local/lib/ucimf/
[DEBUG]:void Cwm::update( Window* cw )
[DEBUG]:void Cwm::update( Window* cw ) END
[DEBUG]:void Cwm::update( Window* cw )
[DEBUG]:void Cwm::update( Window* cw ) END
[DEBUG]:GraphPort::FillRect( 0, 0, 3, 3, 0 )
[DEBUG]:GraphPort::FillRect() End()
[DEBUG]:GraphPort::DrawRect( 0, 0, 3, 3, 9 )
[DEBUG]:GraphPort::DrawRect() End()
[DEBUG]:OVIMF starting
[DEBUG]:OVIMF Module Dir: /home/test/local/lib/openvanilla/
[DEBUG]:loading .so: libovimgeneric.so.0.0.0
[DEBUG]:loading .so: libovimgeneric.so
[DEBUG]:loading .so: libovimgeneric.so.0
[DEBUG]:void Cwm::update( Window* cw )
[DEBUG]:void Cwm::update( Window* cw ) END
[DEBUG]:void Cwm::update( Window* cw )
[DEBUG]:void Cwm::update( Window* cw ) END
[DEBUG]:GraphPort::FillRect( 0, 0, 158, 19, 0 )
[DEBUG]:GraphPort::FillRect() End()
[DEBUG]:GraphPort::DrawRect( 0, 0, 91, 19, 9 )
[DEBUG]:GraphPort::DrawRect() End()
[DEBUG]:GraphPort::DrawRect( 0, 0, 67, 19, 9 )
[DEBUG]:GraphPort::DrawRect() End()
[DEBUG]:GraphPort::OutChar( 0, 0, 7, 8, 79 )
[DEBUG]:GraphPort::OutChar( 8, 0, 7, 8, 112 )
[DEBUG]:GraphPort::OutChar( 16, 0, 7, 8, 101 )
[DEBUG]:GraphPort::OutChar( 24, 0, 7, 8, 110 )
[DEBUG]:GraphPort::OutChar( 32, 0, 7, 8, 86 )
[DEBUG]:GraphPort::OutChar( 40, 0, 7, 8, 97 )
[DEBUG]:GraphPort::OutChar( 48, 0, 7, 8, 110 )
[DEBUG]:GraphPort::OutChar( 56, 0, 7, 8, 105 )
[DEBUG]:GraphPort::OutChar( 64, 0, 7, 8, 108 )
[DEBUG]:GraphPort::OutChar( 72, 0, 7, 8, 108 )
[DEBUG]:GraphPort::OutChar( 80, 0, 7, 8, 97 )
[DEBUG]:GraphPort::OutChar( 0, 0, 7, 8, 27721 )
[DEBUG]:GraphPort::OutChar( 16, 0, 7, 8, 35821 )
[DEBUG]:GraphPort::OutChar( 32, 0, 7, 8, 25340 )
[DEBUG]:GraphPort::OutChar( 48, 0, 7, 8, 38899 )
[DEBUG]:void Cwm::update( Window* cw )
[DEBUG]:void Cwm::update( Window* cw ) END
[DEBUG]:void Cwm::update( Window* cw )
[DEBUG]:void Cwm::update( Window* cw ) END
[DEBUG]:GraphPort::FillRect( 0, 0, 3, 3, 0 )
[DEBUG]:GraphPort::FillRect() End()
[DEBUG]:GraphPort::DrawRect( 0, 0, 3, 3, 9 )
[DEBUG]:GraphPort::DrawRect() End()
[DEBUG]:void Cwm::update( Window* cw )
[DEBUG]:void Cwm::update( Window* cw ) END
[DEBUG]:void Cwm::update( Window* cw )
[DEBUG]:void Cwm::update( Window* cw ) END
[DEBUG]:void Cwm::update( Window* cw )
[DEBUG]:void Cwm::update( Window* cw ) END
[DEBUG]:void Cwm::update( Window* cw )
[DEBUG]:void Cwm::update( Window* cw ) END
[DEBUG]:GraphPort::FillRect( 0, 0, 3, 3, 0 )
[DEBUG]:GraphPort::FillRect() End()
[DEBUG]:GraphPort::DrawRect( 0, 0, 3, 3, 9 )
[DEBUG]:GraphPort::DrawRect() End()
[DEBUG]: Load Module[ 1 ]: openvanilla.so
[DEBUG]:UCIMF core intialized.[DEBUG]:im exit normally
#===========================================


系统字体:
xorg 自带 部分安装
dejavu-fonts-ttf
wqy-bitmapfont-pcf
wqy-unibit-bdf
wqy-zenhei
另,配置 fbterm 使用 libucimf 中带的 /home/test/local/share/ucimf/unifont.pcf 可正
常显示。


在虚拟控制台,运行 showkey 结果:
--------------------------------------------
press any key (program terminates 10s after last keypress)...
keycode 28 release
keycode 29 press -> ctrl+space
keycode 57 press
keycode 57 release
keycode 29 release
keycode 29 press -> ctrl+space
keycode 57 press
keycode 57 release
keycode 29 release
keycode 29 press -> ctrl+shiftleft
keycode 29 press
keycode 42 press
keycode 42 release
keycode 29 release
keycode 29 press -> ctrl+shiftleft
keycode 29 press
keycode 29 press
keycode 42 press
keycode 29 release
keycode 42 release
keycode 97 press -> ctrlright+shiftright
keycode 54 press
keycode 97 release
keycode 54 release
keycode 97 press -> ctrlright+shiftright
keycode 54 press
keycode 97 release
keycode 54 release
============================================

Y.L Zhou

unread,
Mar 30, 2009, 10:15:56 PM3/30/09
to uc...@googlegroups.com
你是什么系统, 输入法闪一下就没有了,我也出现过, 后来换到 root 去执行发现可以。。。 于是把 fbterm 加上 setuid 后, 普通用户可以执行了。。

lenny amd64.

2009/3/31 eric <ericzha...@gmail.com>

eric zhao

unread,
Mar 31, 2009, 12:30:43 AM3/31/09
to UCIMF
自己完全手工打造的 GNU/Linux,方法类似 CLFS-Sysroot x86。
linux-2.6.29
binutils-2.18
gcc-4.3.1
glibc-2.7

多谢您的建议,可惜无效,用 root 用户 和 用 普通用户 test 结果一样。
即使不设置 setuid,fterm 运行正常。

On Mar 31, 10:15 am, "Y.L Zhou" <zyl.p...@gmail.com> wrote:
> 你是什么系统, 输入法闪一下就没有了,我也出现过, 后来换到 root 去执行发现可以。。。 于是把 fbterm 加上 setuid 后,
> 普通用户可以执行了。。
>
> lenny amd64.
>
> 2009/3/31 eric <ericzhao.neb...@gmail.com>
>
>
>
> > 两月前,安装后无法运行。
> >http://www.linuxsir.org/bbs/thread342880.html
>
> > 昨天,再次安装很顺利,fbterm可运行,后台有 fbterm_ucimf 进程,可怎么也激活不了输入法。
>
> > 1 作为测试,所有相关软件安装至 ${HOME}/local,${HOME}/local/etc/ucimf.conf 中路径已修正 。
> > #-----------------install--------------------
> > export LD_LIBRARY_PATH=${HOME}/local/lib
> > export PKG_CONFIG_PATH=${LD_LIBRARY_PATH}/pkgconfig
>
> > cd
>
> > wget -chttp://ucimf.googlecode.com/files/UserManual.pdf
> > wget -chttp://ucimf.googlecode.com/files/UserManual.txt
>
> > wget -chttp://ucimf.googlecode.com/files/libucimf-2.2.8.tar.gz
> > tar -xvf libucimf-2.2.8.tar.gz
> > cd libucimf-2.2.8/
> > ./configure --prefix=${HOME}/local
> > make
> > make install
> > cd
> > rm -rf libucimf-2.2.8/
>
> > sed -i "s@/usr@${HOME}/local@g" ${HOME}/local/etc/ucimf.conf
>
> > wget -chttp://ucimf.googlecode.com/files/ucimf-openvanilla-2.10.5.tar.gz
> > tar -xvf ucimf-openvanilla-2.10.5.tar.gz
> > cd ucimf-openvanilla-2.10.5/
> > ./configure --prefix=${HOME}/local
> > make
> > make install
> > cd
> > rm -rf ucimf-openvanilla-2.10.5/
>
> > wget -c
> >http://ucimf.googlecode.com/files/openvanilla-modules-0.8.0_9.tar.gz
> > tar -xvf openvanilla-modules-0.8.0_9.tar.gz
> > cd openvanilla-modules-0.8.0_9/
> > ./configure --prefix=${HOME}/local --with-zh_CN
> > make
> > make install
> > cd
> > rm -rf openvanilla-modules-0.8.0_9/
>
> > wget -chttp://fbterm.googlecode.com/files/fbterm-1.4.tar.gz
> > tar -xvf fbterm-1.4.tar.gz
> > cd fbterm-1.4/
> > ./configure --prefix=${HOME}/local
> > make
> > make install
> > cd
> > rm -rf fbterm-1.4/
>
> > wget -chttp://ucimf.googlecode.com/files/fbterm_ucimf-0.2.4.tar.gz
> > tar -xvf fbterm_ucimf-0.2.4.tar.gz
> > cd fbterm_ucimf-0.2.4/
> > ./configure --prefix=${HOME}/local
> > make
> > make install
> > cd
> > rm -rf fbterm_ucimf-0.2.4/
>
> > wget -c
> >http://ftp.debian.org/debian/pool/main/d/dialog/dialog_1.1-20080819.o...

Mat

unread,
Mar 31, 2009, 12:42:11 AM3/31/09
to uc...@googlegroups.com
Dear Eric,
很高興收到你的用心作的 Report。
正回文時,剛收到你提到 setuid 及 root 執行無效的回報。
我正在著手在 reduce 和你一樣的安裝流程,希望盡快模擬出和你一樣的運行環境。

BTW, 一些 script 的用法如 PKG_CONFIG_PATH 及 sed 我覺得很棒。我也會嘗試將它 feedback
進原有的 scripts. 感謝你的分享 :-)

sincerely, Mat.

2009/3/31 eric zhao <ericzha...@gmail.com>:

eric zhao

unread,
Mar 31, 2009, 1:06:01 AM3/31/09
to UCIMF
问题已解决。
mat 可能没考虑过用普通用户身份来执行安装,建议 FAQ 中加上。

用 普通用户 test 安装 fbterm 时,其自动设置有 suid,有:
$ ll ${HOME}/local/bin/fbterm
-rwsr-xr-x 1 test test 76248 03-30 23:57 /home/test/local/bin/fbterm

修改 fbterm 为 root 所有 并且 设置 suid,之后 root 和 普通用户 test 可以激活输入法。
chown 0.0 ${HOME}/local/bin/fbterm
chmod u+s ${HOME}/local/bin/fbterm

这里有点问题:
普通用户 test 属于 vedio 组,可以正常访问 /dev/fb0,fbterm 去掉 suid,仍可正常运行;
要使用 ucimf,确必须设置 fbterm suid;ucimf 背后做了什么需要 root 权限?
能不能去掉对 root 权限依赖,相信有相当多的人不喜欢 suid?

再有,激活输入法后,屏幕上左上角有一个 微型蓝色"口",输入法状态条下方两行也有 微型蓝色"口",输入时覆盖一部分,正常吗?

还有,openvanilla-modules-0.8.0_9 --enable-zh_CN 的输入法好像默认无法切换到,--enable-
alsa 也无法配置为 disable。

On Mar 31, 10:15 am, "Y.L Zhou" <zyl.p...@gmail.com> wrote:
> 你是什么系统, 输入法闪一下就没有了,我也出现过, 后来换到 root 去执行发现可以。。。 于是把 fbterm 加上 setuid 后,
> 普通用户可以执行了。。
>
> lenny amd64.
>
> 2009/3/31 eric <ericzhao.neb...@gmail.com>
>
>
>
> > 两月前,安装后无法运行。
> >http://www.linuxsir.org/bbs/thread342880.html
>
> > 昨天,再次安装很顺利,fbterm可运行,后台有 fbterm_ucimf 进程,可怎么也激活不了输入法。
>
> > 1 作为测试,所有相关软件安装至 ${HOME}/local,${HOME}/local/etc/ucimf.conf 中路径已修正 。
> > #-----------------install--------------------
> > export LD_LIBRARY_PATH=${HOME}/local/lib
> > export PKG_CONFIG_PATH=${LD_LIBRARY_PATH}/pkgconfig
>
> > cd
>
> > wget -chttp://ucimf.googlecode.com/files/libucimf-2.2.8.tar.gz
> > tar -xvf libucimf-2.2.8.tar.gz
> > cd libucimf-2.2.8/
> > ./configure --prefix=${HOME}/local
> > make
> > make install
> > cd
> > rm -rf libucimf-2.2.8/
>
> > sed -i "s@/usr@${HOME}/local@g" ${HOME}/local/etc/ucimf.conf
>
> > wget -chttp://ucimf.googlecode.com/files/ucimf-openvanilla-2.10.5.tar.gz
> > tar -xvf ucimf-openvanilla-2.10.5.tar.gz
> > cd ucimf-openvanilla-2.10.5/
> > ./configure --prefix=${HOME}/local
> > make
> > make install
> > cd
> > rm -rf ucimf-openvanilla-2.10.5/
>
> > wget -c
> >http://ucimf.googlecode.com/files/openvanilla-modules-0.8.0_9.tar.gz
> > tar -xvf openvanilla-modules-0.8.0_9.tar.gz
> > cd openvanilla-modules-0.8.0_9/
> > ./configure --prefix=${HOME}/local --with-zh_CN
> > make
> > make install
> > cd
> > rm -rf openvanilla-modules-0.8.0_9/
>
> > wget -chttp://fbterm.googlecode.com/files/fbterm-1.4.tar.gz
> > tar -xvf fbterm-1.4.tar.gz
> > cd fbterm-1.4/
> > ./configure --prefix=${HOME}/local
> > make
> > make install
> > cd
> > rm -rf fbterm-1.4/
>
> > wget -chttp://ucimf.googlecode.com/files/fbterm_ucimf-0.2.4.tar.gz
> > tar -xvf fbterm_ucimf-0.2.4.tar.gz
> > cd fbterm_ucimf-0.2.4/
> > ./configure --prefix=${HOME}/local
> > make
> > make install
> > cd
> > rm -rf fbterm_ucimf-0.2.4/
>
> > wget -c
> >http://ftp.debian.org/debian/pool/main/d/dialog/dialog_1.1-20080819.o...

Mat

unread,
Mar 31, 2009, 2:14:21 AM3/31/09
to uc...@googlegroups.com
Dear Eric Zhao,

我也剛剛測試完,產生的問題現象,還有問題的解法,就如你和 Y.L Zhou 一樣。都是在 execution permission
上。我已經將這解法先寫進 FAQ,希望可以盡快將這個解法整合進程式裡。一些問題我先回答如下,


2009/3/31 eric zhao <ericzha...@gmail.com>:


>
> 问题已解决。
> mat 可能没考虑过用普通用户身份来执行安装,建议 FAQ 中加上。
>
> 用 普通用户 test 安装 fbterm 时,其自动设置有 suid,有:
> $ ll ${HOME}/local/bin/fbterm
> -rwsr-xr-x 1 test test 76248 03-30 23:57 /home/test/local/bin/fbterm
>
> 修改 fbterm 为 root 所有 并且 设置 suid,之后 root 和 普通用户 test 可以激活输入法。
> chown 0.0 ${HOME}/local/bin/fbterm
> chmod u+s ${HOME}/local/bin/fbterm
>
> 这里有点问题:
> 普通用户 test 属于 vedio 组,可以正常访问 /dev/fb0,fbterm 去掉 suid,仍可正常运行;
> 要使用 ucimf,确必须设置 fbterm suid;ucimf 背后做了什么需要 root 权限?
> 能不能去掉对 root 权限依赖,相信有相当多的人不喜欢 suid?

"Ctrl_Space, Ctrl_Shift,.." 這些鍵是原本 console 下沒有的,因此 fbterm+ucimf 及
jfbterm+ucimf 需要 root setuid 以註冊新的鍵盤熱鍵。新版的 FbTerm 增加透過 setcap
'cap_sys_tty_config+ep' [4]的方式來允許普通用戶的鍵盤註冊,我這裡也一直嘗試用 chmod, chown,
的方式來避過。不過在這次的安裝方式中,似乎還存在著這個未根絕的問題。

這的確帶給許多普通用戶在安裝使用上的疑慮與困擾。感謝你的建議。我們一定會盡全力克服這個權限問題的!

[4]. http://code.google.com/p/fbterm/issues/detail?id=8&can=1

>
> 再有,激活输入法后,屏幕上左上角有一个 微型蓝色"口",输入法状态条下方两行也有 微型蓝色"口",输入时覆盖一部分,正常吗?
>

這個目前確實還存在的缺點。主要原因是窗口的邊界程式條件沒設定準確,我會盡快修正它 :-)

> 还有,openvanilla-modules-0.8.0_9 --enable-zh_CN 的输入法好像默认无法切换到,--enable-
> alsa 也无法配置为 disable。

目前的切換方式是 --with-zh_CN 及 --without-asia 可以作到。
不過我想可能很多人也會跟你一樣直覺用 --enable-zh_CN 為主,我盡快加上這個調整的 :-)

我先將這些問題先備註進網頁裡[1][2][3],盡快一步一步修正它。希望可以再提出更方便的新版本。

非常感謝你的回報與建議及你提供的 script tips。
很抱歉因為程式上的一些缺點,造成許多的問題及不便。
不過,最後太好了! 很高興你可以用了。
UCIMF 會再持續改進努力的。

sincerely, Mat.

[1]. http://code.google.com/p/ucimf/issues/detail?id=49
[2]. http://code.google.com/p/ucimf/issues/detail?id=50
[3]. http://code.google.com/p/ucimf/issues/detail?id=51
[4]. http://code.google.com/p/fbterm/issues/detail?id=8&can=1

eric zhao

unread,
Mar 31, 2009, 11:36:22 AM3/31/09
to UCIMF
Dear Mat,

> "Ctrl_Space, Ctrl_Shift,.." 這些鍵是原本 console 下沒有的,因此 fbterm+ucimf 及
> jfbterm+ucimf 需要 root setuid 以註冊新的鍵盤熱鍵。新版的 FbTerm 增加透過 setcap
> 'cap_sys_tty_config+ep' [4]的方式來允許普通用戶的鍵盤註冊,我這裡也一直嘗試用 chmod, chown,
> 的方式來避過。不過在這次的安裝方式中,似乎還存在著這個未根絕的問題。
>
> 這的確帶給許多普通用戶在安裝使用上的疑慮與困擾。感謝你的建議。我們一定會盡全力克服這個權限問題的!
>
> [4].http://code.google.com/p/fbterm/issues/detail?id=8&can=1

这个是不是和
loadkeys /lib/kbd/keymaps/i386/dvorak/dvorak.map.gz
loadkeys /lib/kbd/keymaps/i386/qwerty/defkeymap.map.gz
类似。
这个工作 setkeycodes 是否可以完成,如果对其他程序没影响,可以考虑用开机的 rc.local 脚本做统一设置,则普通用户不用关心发
生什么。
loadkeys setkeycodes showkey 均来自 kbd 软件包。


> > 再有,激活输入法后,屏幕上左上角有一个 微型蓝色"口",输入法状态条下方两行也有 微型蓝色"口",输入时覆盖一部分,正常吗?
>
> 這個目前確實還存在的缺點。主要原因是窗口的邊界程式條件沒設定準確,我會盡快修正它 :-)

zhcon 在这方面做的可能要好些,可惜已停止维护,您可以参考一下其实现。

gcc-4.3.x 下手工安装 zhcon
#----------------------------
wget -c http://prdownloads.dl.sourceforge.net/sourceforge/zhcon/zhcon-0.2.5.tar.gz
wget -c http://prdownloads.dl.sourceforge.net/sourceforge/zhcon/zhcon-0.2.5-to-0.2.6.diff.gz

tar -xvf zhcon-0.2.5.tar.gz
zcat zhcon-0.2.5-to-0.2.6.diff.gz | patch -p0

cd zhcon-0.2.5

echo "#include <string.h>" >> src/display/fblinear4.h
echo "#include <string.h>" >> src/display/fblinear8.h
echo "#include <string.h>" >> src/basefont.h
echo "#include <stdlib.h>" >> src/graphdev.h
sed -i 's@PREFIX "/etc/zhcon.conf"@"/etc/zhcon.conf"@' src/zhcon.cpp

./configure --prefix=/usr --sysconfdir=/etc
make
make install
#============================

最后非常感谢您的工作。

eric zhao

unread,
Mar 31, 2009, 11:46:43 AM3/31/09
to UCIMF
更正一下 zhon 下载地址
http://prdownloads.sourceforge.net/sourceforge/zhcon/zhcon-0.2.5.t...
http://prdownloads.sourceforge.net/sourceforge/zhcon/zhcon-0.2.5-t...

BTW,ucimf 是否可用于 directfb 环境,其输入输出实现很好,甚至可以在 X sdl 下模拟。

eric zhao

unread,
Mar 31, 2009, 11:50:23 AM3/31/09
to UCIMF

Mat

unread,
Mar 31, 2009, 2:39:38 PM3/31/09
to uc...@googlegroups.com
Dear Eric Zhao,

2009/3/31 eric zhao <ericzha...@gmail.com>:


> Dear Mat,
>
>> "Ctrl_Space, Ctrl_Shift,.." 這些鍵是原本 console 下沒有的,因此 fbterm+ucimf 及
>> jfbterm+ucimf 需要 root setuid 以註冊新的鍵盤熱鍵。新版的 FbTerm 增加透過 setcap
>> 'cap_sys_tty_config+ep' [4]的方式來允許普通用戶的鍵盤註冊,我這裡也一直嘗試用 chmod, chown,
>> 的方式來避過。不過在這次的安裝方式中,似乎還存在著這個未根絕的問題。
>>
>> 這的確帶給許多普通用戶在安裝使用上的疑慮與困擾。感謝你的建議。我們一定會盡全力克服這個權限問題的!
>>
>> [4].http://code.google.com/p/fbterm/issues/detail?id=8&can=1
>
> 这个是不是和
> loadkeys /lib/kbd/keymaps/i386/dvorak/dvorak.map.gz
> loadkeys /lib/kbd/keymaps/i386/qwerty/defkeymap.map.gz
> 类似。
> 这个工作 setkeycodes 是否可以完成,如果对其他程序没影响,可以考虑用开机的 rc.local 脚本做统一设置,则普通用户不用关心发
> 生什么。
> loadkeys setkeycodes showkey 均来自 kbd 软件包。

這個部分用 loadkeys 可以達到同樣的功效,不過我不確定各機器上的 keymap 會不會有所區別?不過我剛剛取出來的 dumpkeys
的 diff 如附檔[1],不知道以什麼形式來提供給使用者為好?

setkeycodes 主要是設定 scancode <--> keycode 的對映,和 keycode <--> key event
buffer 的 keymaps 不太一樣,所以 setkeycodes 沒辦法解決這個問題,可惜。

[1]. attachment://diff.keys

>
>
>> > 再有,激活输入法后,屏幕上左上角有一个 微型蓝色"口",输入法状态条下方两行也有 微型蓝色"口",输入时覆盖一部分,正常吗?
>>
>> 這個目前確實還存在的缺點。主要原因是窗口的邊界程式條件沒設定準確,我會盡快修正它 :-)
>
> zhcon 在这方面做的可能要好些,可惜已停止维护,您可以参考一下其实现。

zhcon 的程式碼,真的提供我很大的靈感與幫助,謝謝你 :-)

>
> gcc-4.3.x 下手工安装 zhcon
> #----------------------------
> wget -c http://prdownloads.dl.sourceforge.net/sourceforge/zhcon/zhcon-0.2.5.tar.gz
> wget -c http://prdownloads.dl.sourceforge.net/sourceforge/zhcon/zhcon-0.2.5-to-0.2.6.diff.gz
>
> tar -xvf zhcon-0.2.5.tar.gz
> zcat zhcon-0.2.5-to-0.2.6.diff.gz | patch -p0
>
> cd zhcon-0.2.5
>
> echo "#include <string.h>" >> src/display/fblinear4.h
> echo "#include <string.h>" >> src/display/fblinear8.h
> echo "#include <string.h>" >> src/basefont.h
> echo "#include <stdlib.h>" >> src/graphdev.h
> sed -i 's@PREFIX "/etc/zhcon.conf"@"/etc/zhcon.conf"@' src/zhcon.cpp
>
> ./configure --prefix=/usr --sysconfdir=/etc
> make
> make install
> #============================
>
> 最后非常感谢您的工作。

不客氣,非常感謝你的回報,還用心寫了好用的 scripts ,我將前幾封信的 script
稍作點修改,也加進程式工具裡[2],相信對之後許多想嘗試安裝的朋友非常有用!

sincerely, Mat.

[2]. http://ucimf.googlecode.com/svn/scripts/download_build.sh

> >
>

diff.keys

eric zhao

unread,
Apr 2, 2009, 9:45:36 PM4/2/09
to uc...@googlegroups.com
Dear Mat,

> 這個部分用 loadkeys 可以達到同樣的功效,不過我不確定各機器上的 keymap 會不會有所區別?不過我剛剛取出來的 dumpkeys
> 的 diff 如附檔[1],不知道以什麼形式來提供給使用者為好?
>
> setkeycodes 主要是設定 scancode <--> keycode 的對映,和 keycode <--> key event
> buffer 的 keymaps 不太一樣,所以 setkeycodes 沒辦法解決這個問題,可惜。
>
> [1]. attachment://diff.keys

抽空我试试。

> [2]. http://ucimf.googlecode.com/svn/scripts/download_build.sh

最初给出的东西是 history -w a 并简单编辑的结果,当脚本用有点不合适。
下面这个会稍好些,适当修改下应当也能用于测试 svn 版本。

download_build.sh

Mat

unread,
Apr 3, 2009, 1:51:29 AM4/3/09
to uc...@googlegroups.com
Dear Eric Zhao,
太好了,真的非常感謝你寫的 scripts, 我已經將 download_build.sh 更新。

此外,我執行時,發現 wget -c 似乎還是會重複下載,我再多試其他參數試試,或許是 googlecode 的下載問題。另外
/opt/fbterminal 這個目錄在我的 distro (Gentoo) 需要 > users 的寫入權限,或許可以設定
${HOME}/opt/fbterminal 。

autobuild 的這個 function 很好用,很有彈性。希望我也能盡快將這個用法也優化到其他類似的 scripts 裡。

謝謝你!

sincerely, Mat.

2009/4/3 eric zhao <ericzha...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages