三 三 ( ´_ゝ`)< Japanese Input Method SKK (Simple Kana to Kanji conversion) on your terminal
Project description
What is this?
This program provides Simple Kana Kanji conversion (SKK) input method service to your terminal. It depends on “Canossa”(https://github.com/saitoha/canossa), which is an off-screen terminal emulation service, “Canossa” makes application enable to restore specified screen region on demand!! So this SKK service can provide cool popup feature.
SKK Shell
You can enter SKK-shell mode by “C-j / $”.
When you launch console applications in SKK-shell, they run in floating windows. Each programs managed by “Canossa” works asyncronously in every windows. You can resize and move each windows with mouse operations. “Canossa” includes terminal multiplexer / task switching engine.
Consult Wikipedia
You can consult Wikipedia by pressing C-w.
Settings
You can enter configuration mode by “C-j / @”.
Requirements
Python 2.5/2.6/2.7 unix/linux/cygwin version
Install
via github
$ git clone --recursive https://github.com/saitoha/sentimental-skk.git sentimental-skk $ cd sentimental-skk $ python setup.py install
or via pip
$ pip install sentimental-skk
upgrade install via pip
$ pip install sentimental-skk --upgrade
Usage
$ sskk [options]
Options:
-h, --help show this help message and exit --version show version -t TERM, --term=TERM override TERM environment variable -l LANG, --lang=LANG override LANG environment variable -o ENC, --outenc=ENC set output encoding -u, --use-titlebar use title bar manipulation feature
How It Works
This program works as a terminal filter application and creates some PTYs. It hooks I/O stream between terminal and applications running on it.
The output stream which is recognized as STDOUT handle for applications, is duplicated and processed with the terminal emulation engine called as “Canossa”. Canossa has a virtual terminal screen buffer which consists with a couple of character cell objects, and behave as another terminal emulator.
+---------------------------------------------+ | | | Terminal | | | +---------------------------------------------+ | ^ | | < input > < output > | | | +----------------+ | | [ PTY 1 ] +------|------|-------------------------------+ | v | | | +----------+---+ +----------------+ | | | Master |=======| Slave | | | +--------------+ +--+-------------+ | | | ^ | +----------------------------|--------|-------+ | | < input > | | | +---------------+ < output > | | [ sskk ] | | [ canossa ] +------------|------------------------|------------+----------------------+ | | | | | | | |<------------------------+ | | v | | | | | +-----------------+ +---------+------+ | +---------+------+ | | | | | | | | | | | | | | | | | | | | | InputHandler | | OutputHandler | | | Canossa | | | | | | | | | | | | | | | | | | | | | +--------+---+----+ +----------------+ | +----------------+ | | | | ^ | ^ ^ | | | | | | | | | | | | | | | | | | | | +-------------------+ | | +----+----+ | | | | | | | | | | | | | | | TFF Multiplexer +-----------+ | widgets | | | | | | | | | | | | | | +-----------+-------+ | +---------+ | | | | | | ^ | | | | | | | | | | +------------------------------------------------+ | | | | | | +------------|------------------------|------------+----------------------+ | | < input > < output > | | | +----------------+ | | | | [ PTY 2 ] +-------|-------|-----------------------------+ | v | | | +------------+--+ +---------------+ | | | Master |=======| Slave | | | +---------------+ +----+----------+ | | | ^ | +-------------------------------|------|------+ | | +--------------------+ | | | +---------------+----------------------------------------------+ | | | Application Process | | | +--------------------------------------------------------------+
Components represented by above diagram, such as InputHandler, OutputHandler, Canossa, Multiplexer are based on TFF.
TFF (Terminal Filter Framework):
Scanner Event Driven Parser Event Dispatcher +-----+ +-----+ +-----+ << I/O Stream >> | | << CodePoint Stream >> | | << Event Stream >> | | << I/O Stream >> ------------------->| |------------------------>| |-------------------->| |---||--------------------> (Raw Sequences) | | (Unicode Points) | | (Function Call) | | (Raw Sequences) +-----+ +-----+ +--+--+ ISO-2022 ISO-6429 | Compatible Parsing | v +-----+ Event Observer | | << I/O Stream >> (I/O Handler) | |---||--------------------> | | (Raw Sequences) +-----+
Dependency
Masahiko Sato et al./SKK Development Team’s SKK dictionaries http://openlab.jp/skk/skk/dic
Hayaki Saito’s Canossa https://github.com/saitoha/canossa
Hayaki Saito’s TFF, Terminal Filter Framework https://github.com/saitoha/tff
Hayaki Saito’s termprop https://github.com/saitoha/tff
Reference
Daredevil SKK (DDSKK) http://openlab.ring.gr.jp/skk/ddskk-ja.html
uobikiemukot / yaskk https://github.com/uobikiemukot/yaskk
Unicode Text Editor MinEd http://towo.net/mined/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for sentimental_skk-0.0.130-py2.7.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | aba4701b7036f47069080a48fdca2e4013ebc111d46048126bedf2602bcd67fc |
|
MD5 | 66d307d5f0de855c6e893eb635aef913 |
|
BLAKE2b-256 | c7459f41f40f555dacafcc7f1e93d6d6ca21d668ab0b69421435f827fa1cf535 |
Hashes for sentimental_skk-0.0.130-py2.6.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28a2fe83333af9398e90664a861d1d36992fe0abbbd4c743b780039d85565d4a |
|
MD5 | d0a528babc06cfd355190159656a129b |
|
BLAKE2b-256 | f4e761bd6f59ba999915b090192547041da4174ed1d70845841622a3732053b4 |
Hashes for sentimental_skk-0.0.130-py2.5.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | fedf2dc26fb292ce6efc83a109f1797fbd6a0b8453fa662bd8f777095cc3244d |
|
MD5 | 619e3adb572f9a6c62911660040052cc |
|
BLAKE2b-256 | 08c30b9a4d9280016a8a68fa27c7f5bff980cd192a58a1732354c68d3c270fae |