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

Uploaded Egg

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

Uploaded Egg

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

Uploaded Egg

File details

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

File metadata

File hashes

Hashes for sentimental-skk-0.0.142.tar.gz
Algorithm Hash digest
SHA256 886d9eab3438f134c9110cd11fdfadf22b88f5029d01512c2a0da8535ba53cf1
MD5 c3e3694f4ec032a8a3579f571b31150d
BLAKE2b-256 8d1dc6060d040e3cb88fb53d780fa8dfb889c2040823289aede15613fae242f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sentimental_skk-0.0.142-py2.7.egg
Algorithm Hash digest
SHA256 422ba26846b6367c754228fad6376621b6792cca326a502c8fbc1164776d7abb
MD5 06320ea5e10c06aab9f9dc8041299e69
BLAKE2b-256 5478693b6bda50b908614e02b75be60560ece68a782f849b124c99b612e5b7e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sentimental_skk-0.0.142-py2.6.egg
Algorithm Hash digest
SHA256 0c4c1cc32a898242e9ba67f26ee413bdd4ed4e81d1f062b0904d72f2f3207f8c
MD5 218380b957144774d6a160ef761583f8
BLAKE2b-256 f2bbc8889d892a83bcb2824d45f94f339fce783193a908c81ffbb86bcc5bf5b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sentimental_skk-0.0.142-py2.5.egg
Algorithm Hash digest
SHA256 d52f04a00dd9a9c813895534fefb2345e546ff5b91d1a8eb735101854302d07b
MD5 b570797891070c64ea6365f354955c77
BLAKE2b-256 d76f06b62437c3ab96010e170567e615f2b838e8fbbbffcbc0aa5f4af7b982a5

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