GithubHelp home page GithubHelp logo

gsoc2021's Introduction

GSoC’21: Input method in FreeBSD virtual terminal

Screenshot

assets/vt_ime_screenshot.png

Proposal

Under the proposal directory.

Wiki Page

The project page in the freebsd wiki: https://wiki.freebsd.org/SummerOfCode2021Projects/InputMethodInFreeBSDVirtualTerminal

The wiki page also contains my weekly reports during GSoC.

Description

This project aims to provide an environment that can run IME (input method engine) to enable users to type CJK characters in vt(4).

This project was divided into two parts, backend and frontend. The backend is supposed to process keys sent from the frontend and translate them into valid CJK characters, depending on different input schemas. The frontend, on the other hand, recieves utf-8 encoded CJK characters and insert them on the screen. Additionally, the frontend need to print preedit string and candidates during composing.

Deliverables

  • Backend: An IME API server for communicating with the IME library
    • Use librime as the input method engine library to translate keys into valid CJK characters.
    • Create APIs for accessing the IME library functions.
    • Provide extra features like schema selection, data deployment and data synchronization.
  • Frontend: A graphical frontend for showing the current input status and characters/words candidates.
    • First stage: Implement the frontend in tmux.
      • Design an IME client for interacting with the backend IME API server.
      • Display IME components on the tmux status bar.
    • Final stage: Implement the frontend in vt(4).
      • Handle keys in kernel and send them to the backend.
      • Display IME components on the screen.

Report

Under the report directory.

Code

Notes

Usage

  1. Set up the kernel patch (branch vt-ime): https://github.com/Cycatz/freebsd-src/tree/vt-ime
  2. Set up the backend: https://github.com/Cycatz/tmux-rime/blob/vt-rime/README.org
  3. Fire up the vt console and set the console font to b16.hex in fontstuff for displaying CJK characters correctly
  4. Press right ctrl key to toggle IME mode
  5. Press keys to compose CJK chars/words and use Space to commit the preedit string (Currently only support the input scheme bopomofo)

gsoc2021's People

Contributors

cycatz avatar

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.