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.140.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.140-py2.7.egg (3.3 MB view details)

Uploaded Egg

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

Uploaded Egg

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

Uploaded Egg

File details

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

File metadata

File hashes

Hashes for sentimental-skk-0.0.140.tar.gz
Algorithm Hash digest
SHA256 14b3b3dc1866ecd70fb644c83f1602e0f9ea002d84e6b8dc374b51226ccb9931
MD5 2fd3b5da7c5bfd8dc1eade08e9887bfc
BLAKE2b-256 989b6d0d9c2e228b556f152367fbad5fba52288890af3b114d221a71344b5436

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sentimental_skk-0.0.140-py2.7.egg
Algorithm Hash digest
SHA256 77924addfab259d87cac9195fc369c64fbedba015d675d6ae1cbec89f9b0fc6a
MD5 f44fa74ff06d386c162072e6d9499736
BLAKE2b-256 07f4f4ef027615076534a5cffda22ee1886b1166f30867b9da06572c5d575f41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sentimental_skk-0.0.140-py2.6.egg
Algorithm Hash digest
SHA256 3838a317492aceb401748d293cd26f3e533e709821e2e936bf1189fa75b9e5c2
MD5 11c1c92d4e27fad5237a2688796796aa
BLAKE2b-256 96a008cbfa299297283f4f9182f88fa6df3954bca353e98ece8fed675906747e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sentimental_skk-0.0.140-py2.5.egg
Algorithm Hash digest
SHA256 ed0b000f5236aeffa3de374718e67ad8cb85b9a9b2b158cf5298e5851363567a
MD5 e2af69c4ee7f1f926d3b387bd93a5849
BLAKE2b-256 8adbb3cb5d3fbd5444c5dc6dc3c731f3dcd48a26ea73a155a77b35d0dbdf626d

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