Skip to main content

三 三 ( ´_ゝ`)< 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.

http://zuse.jp/misc/canossa.png

SKK Shell

You can enter SKK-shell mode by “C-j / $”.

http://zuse.jp/misc/skkshell.png

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.

http://zuse.jp/misc/windows.png

Consult Wikipedia

You can consult Wikipedia by pressing C-w.

http://zuse.jp/misc/sskk_wikipedia.png

Settings

You can enter configuration mode by “C-j / @”.

http://zuse.jp/misc/settings.png

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

Reference

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

sentimental-skk-0.0.139.tar.gz (3.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

sentimental_skk-0.0.139-py2.7.egg (3.3 MB view details)

Uploaded Egg

sentimental_skk-0.0.139-py2.6.egg (3.3 MB view details)

Uploaded Egg

sentimental_skk-0.0.139-py2.5.egg (3.3 MB view details)

Uploaded Egg

File details

Details for the file sentimental-skk-0.0.139.tar.gz.

File metadata

File hashes

Hashes for sentimental-skk-0.0.139.tar.gz
Algorithm Hash digest
SHA256 75354875761c42305db1c4750de86e752e17264e2997e4fa5d29bbcefe8fc3f3
MD5 03198c9aa199db5a9465610491c6db03
BLAKE2b-256 399f38b61302db2e437f09214f2964ccf97669d216428eadacccde4ad2e52866

See more details on using hashes here.

File details

Details for the file sentimental_skk-0.0.139-py2.7.egg.

File metadata

File hashes

Hashes for sentimental_skk-0.0.139-py2.7.egg
Algorithm Hash digest
SHA256 8bcd6c0f6832f92bc369aadbb70f271b4e8f9af89fd1306adf57f01dece1652c
MD5 cd7627875af7076da4f49a7b6497a3c0
BLAKE2b-256 20412680f5e600558e4f3b202c5cef2c66df8e8d62fa0b2723ed24c71d9aeb8d

See more details on using hashes here.

File details

Details for the file sentimental_skk-0.0.139-py2.6.egg.

File metadata

File hashes

Hashes for sentimental_skk-0.0.139-py2.6.egg
Algorithm Hash digest
SHA256 77829c0ffe467d777dd07a7a79e798b4bc0e0b1e00ddebfde6aeebe04cc7d6c0
MD5 dea1eb9b6580062518a22c2dc29315c1
BLAKE2b-256 c1c8517c0c82f8e69bd89fef2ff311112626d93e6b7c33e2bf24b2b57c131e29

See more details on using hashes here.

File details

Details for the file sentimental_skk-0.0.139-py2.5.egg.

File metadata

File hashes

Hashes for sentimental_skk-0.0.139-py2.5.egg
Algorithm Hash digest
SHA256 fac6334b401410b9eac845ecebbbd4f120bfa7f564f94ea6b03df4d4a2dfe123
MD5 d0c7e395015ab9b358a8a27f42879bd9
BLAKE2b-256 96bf9dc4bdf669ca09cee4e998db8d581a5571fda43ffab3805024787e693c53

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page