Giter Site home page Giter Site logo

cskk's Introduction

cskk logo

LibCSKK

Stable Rust version build status: Build Status

Beta and Nightly Rust version build status: Build Status (Beta or Nightly)

English version

Cobalt SKK ライブラリ.

CSKK はSKK(Simple Kana Kanji 変換)用ライブラリです。 CSKKはSKKと外延的に同値であるため、こう名付けられました。

Fcitx5用: fcitx5-cskk

説明書: cskk-docs

ロゴ・アイコン類: cskk-icons

参考

必要ライブラリ類

  • libxkbcommon

Ubuntu等では以下のコマンドでインストール

    sudo apt install libxkbcommon-dev
  • cbindgen
    cargo install --force cbindgen
  • cargo-c
    cargo install --force cargo-c

インストール方法

root権限がある場合、以下を実行する。 これはcargo cbuild --releaseでtarget/{arch}/release/以下に生成されたファイルを適切なシステムのディレクトリに、そしてassets/以下のファイルを適切なデータディレクトリのlibcskk/以下にインストールする。

    cargo cinstall --release

標準的なパス以外にインストールする場合は、以下のような引数を与える。 詳細は cargo-c を参照のこと。

    cargo cinstall --release --prefix="/tmp" --datadir="$HOME/.local/share"
  • prefix: libdir, includedir, pkgconfigdir, datarootdir 共通接頭部分。デフォルトは '/usr/local'
  • libdir: ライブラリインストール先。デフォルトは '/lib'
  • includedir: ヘッダファイルイストール先。デフォルトは '/include'
  • pkgconfigdir: pkg-config用の.pcファイルインストール先。デフォルトは '/lib/pkgconfig'
  • datarootdir: データファイル(cskkプロジェクトではassetsディレクトリ下)のインストール先。デフォルトは'share'
  • datadir: datarootdirを上書きするデータファイルのインストール先。prefixを無視してdataのインストール先を指定できる。デフォルトは指定なし(つまりdatarootdirを用いる。)

開発状況

基本機能・DDSKKの機能

  • ひらがな入力
  • カタカナ入力・カタカナモード
  • カタカナ入力・カタカナモード
  • Basic 漢字変換
  • static dictionary
  • user dictionary
    • ddskk compatible since v0.11.0
  • 接頭辞・接尾辞変換
  • 数値変換
  • auto-start-henkan
  • 実装見込が現在ないもの
    • Kuten 変換
    • 今日の日付入力
    • 異字体変換
    • SKK辞書サーバー対応
    • 外部辞書

ueno/libskk の機能

  • 句読点設定
  • AZIK rule
  • Nicola rule

C FFI + IME plugin

開発環境・デプロイ環境

  • github projects board や issue にこれらのリストを移す
  • changelog

著作権表示

Copyright (C) 2018 Naoaki Iwakiri

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

cskk's People

Contributors

dependabot[bot] avatar naoaki-indeed avatar naokiri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cskk's Issues

skk_context_get_preedit_underline

dummyにするか適当な実装にするか。
Rangeの2値を返す関数なので、vala特有のout parameterのようなインタフェースのまま実装でも変ではない?

Don't own dictionary per context

Each app has (possiblely more than one) input context, multiple context are handled by one IME. So dictionary are better to be owned by IME and separated from context and have its own lifetime, and also should be safe to call save() etc at the same time.

設定可能項目で? Ctrl-jをかな入力モードでも消費するようにする

vimで言うEscのようにCtrl-jはとりあえず入力する事が多く、これをアプリケーションの別機能で消費されると入力につまづく事がある。

ddskk ではctrl+jは消費され、通常のnewline-and-maybe-indentのような系統のコマンドは発生しない。
ueno/libskkではctrl+jは消費されず、アプリケーションのショートカットとして機能する。
windowsのskkfepではctrl+jは消費され、アプリケーションのショートカットは機能しない。
等々動作の統一はないので、設定可能項目ではなくとりあえずデフォルトで入力を何もしないコマンドとして消費しても良さそう。

auto start henkan

ddskkやlibskkには存在する、A i w o で ▼愛を となるように、'を'、'、'、'。'、'」'等で直前までの言葉で送りなし変換へ移行する機能。

固定だと「を」を含む単語が変換できなくなるので、採用するにしても自動変換開始文字を設定できたほうが良い。

skk_rule_*

skk_rule_find_rule
skk_rule_new
skk_rule_metadata_destroy
skk_rule_list
skk_rule_metadata_free

rule という仕組みがまだないので、fcitx5-skk側から消すかダミーを返す。
そもそもなでdestroyとfreeがあるのか調べる。

辞書読み込み

とりあえず固定でskk-jisyo.Lを読んでいるが、まずfilepathを与えて辞書として使えるように。

Don't consume key release event

  1. push / releaseで二度入力されている事になる場合がある。
  2. なんかウェブブラウザでどうこう? ueno/libskkのコメントによるが、まだ理解していない。

Stop using travis-ci

We transitioned from .org to .com but they have too many CORS error and 3rd party cookies that they cannot be used from Firefox.
Migrate the cronjob to github actions and remove travis-ci

skk_candidate_list_*

skk_context_get_candidates
skk_candidate_list_get_page_visible
skk_candidate_list_cursor_up
skk_candidate_list_cursor_down
skk_candidate_list_page_up
skk_candidate_list_page_down
skk_candidate_list_get_page_size
skk_candidate_list_select_at
skk_candidate_list_set_page_start
skk_candidate_list_set_page_size

このあたりまだないのが、ダミーでは動作が難しそうなので実装?

kana_form_changerを外部ファイルを読まないようにする

よくよく考えてみると他のキーボード配列や入力方式で変わるのはかな入力ルールだけで、かなとカナの対応は不変なのでコード内で定数として持つ。

全角半角のファイルについては他キーボードでの記号列の入力を変換するときに使えるので保留。

Accept clipboard paste

Current behavior:

  1. Copy some text. Say '蚊' for example.
  2. Enter register mode. Say 'K a p a space'
  3. Press C-v
  4. paste doesn't work

Expected
4. Pastes the clipboard text

Need a function to accept clipboard paste to be called from the Input Method engine.

Git-flow doesn't work well on github

Merging release to master doesn't make the history tree merged both on local or on web UI.
Maybe for next time we should just create the deploy and tag on the master branch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.