Download - Introduction to gcin & its internal
Algorithm Design for Multi-row Transistor Placement
Introduction to
gcin & its internal
Written by Edward Liu
Presented by Candyz
gcin
Transmission Protocol
gcin
1.1.4
(CapsLock) cursor shift-Enter
Features
Shift
asdf
/()
Features of gtab()
:
Ctrl-Alt-3 gcin Windows
:
` (backquote ) gtab
Features of gtab
.cin gcin Linux linux
Super slim
- gcin server executable88k ( without XIM)- gcin scim memory size
GTK library gcin memory GTK
Architecture
gcin dispatchgcinXIM.gtab()libgcin-im-client.sogtk-im(im-gcin.so)qt-im(libqgcin.so)GTKQTUnix socketTCP
Patched mrxvt and crxvt
TCP: for clients over network
Local clients
libgcin-im-client.so
GCIN_client_handle *gcin_im_client_open(Display *disp);void gcin_im_client_close(GCIN_client_handle *handle);void gcin_im_client_focus_in(GCIN_client_handle *handle);void gcin_im_client_focus_out(GCIN_client_handle *handle);void gcin_im_client_set_window(GCIN_client_handle *handle, Window win);void gcin_im_client_set_cursor_location(GCIN_client_handle *handle, int x, int y);int gcin_im_client_forward_key_press(GCIN_client_handle *handle, KeySym key, u_int state, char **rstr);int gcin_im_client_forward_key_release(GCIN_client_handle *handle, KeySym key, u_int state, char **rstr);
libgcin-im-client.so function call
Advantage over XIM
gcin server gcin server
UTF-8 XIM zh_TW.Big5 UTF-8
KeyRelease event Shift event
terminal 'pkill gcin' terminal
gcin's Transmission Protocol
Text is in UTF-8 encoding
The network byte order is little endian.
Data are encrypted.
Allow multiple gcin servers on single/multiple displays on a single host. Xnest gnome open KDE desktop(PS gcin mouse window )
Encryption of gcin
gcin client fetches a 31-byte random key and a random seed from gcin server with XGetWindowProperty(protected by ssh)
client & server use the same random number generator/seed to choose a byte from the 31-byte key and xor this with the input/output data to encrypt/decrypt data.
Why not SSL library
remote displaySSL(secure socket layer) dependency memory
gcin protocol + ssh X11 forwarding
Debugging & Testing gcin
In source dir gcinx.x.x, some shell scripts
gcinx.x.x/tenv: script to test your own gcin, use gcinx.x.x/data as table dir, instead of ~/.gcin.
gcinx.x.x/tval.gdb: Run gcin with valgrind, execute gdb if any errors occur. 'valgrind' is a good memory check & profiling tool.
Debugging & Testing gcin
gcinx.x.x/gtk-im/tgedit: Test new gtk-im without installing it. Use LD_PRELOAD to do this.
To Do
gtab() buffer buffer buffer
On-the-spot
AP clients
keys IM server translate keys gaim Enter OpenOffice Shift gnome-terminal ctrl-alt
Firefox 1.5 patch over-spot firefox cursor positiongtk-im module firefox report position
Click to edit the title text format
Server RSSExtra memory(RSS) on the client side
Gcin8M0
Scim31M+1.5M(relative to gcin)
???Page ??? (???)2005/12/30, 14:02:41Page /