Git Product home page Git Product logo

phosh-osk-stub's Introduction

Phosh OSK Stub

An experimental keyboard for quick prototyping and to debug input related issues in phosh. For a production ready on-screen keyboard see squeekboard.

The purpose of phosh-osk-stub:

  • allow experimentation without the risk of breaking end user systems
  • be helpful when debugging input-method related issues
  • be quick and easy to (cross)compile
  • allow to move GObject bits and Widgets over to squeekboard easily if desired (hence provide API documentation)

Features:

  • easy to swap out with squeekboard (implements phosh's sm.puri.OSK0 DBus interface) for low risk experimentation
  • easy to temporarily replace running instance (--replace option)
  • no language boundaries within the codebase to lower the entrance barrier
  • use current GTK and GObject patterns (actions, bindings, …)
  • use GNOME libs and technologies wherever possible (GSettings, json-glib, …)
  • character popover
  • emoji layout
  • cursor navigation via space-bar long-press
  • word correction via hunspell
  • use any program as completer via a pipe completer (Example)
  • experimental word completion based on the presage library
  • experimental input of Indic languages using varnam
  • allow to prevent keyboard unfold for certain apps (via app-id)
  • allow to prevent keyboard unfold when a hardware keyboard is present

License

phosh-osk-stub is licensed under the GPLv3+.

Getting the source

git clone https://gitlab.gnome.org/guidog/phosh-osk-stub
cd phosh-osk-stub

The main branch has the current development version.

Dependencies

On a Debian based system run

sudo apt-get -y install build-essential
sudo apt-get -y build-dep .

For an explicit list of dependencies check the Build-Depends entry in the debian/control file.

Building

We use the meson (and thereby Ninja) build system for phosh-osk-stub. The quickest way to get going is to do the following:

meson setup -Dgtk_doc=false _build
meson compile -C _build
meson test -C _build

We're disabling the doc build above as it reduces build time a lot.

Running

Running from the source tree

When running from the source tree first start phosh. Then start phosh-osk-stub using:

_build/run --replace

Note that there's no need to install any files outside the source tree. The --replace option temporarily replaces a running phosh-osk-stub so there's no need to stop a running instance.

The result should look something like this:

character popover emoji layout inscript/malayalam

Word completion

phosh-osk-stub has support for word completion. There are different completers built in and it's easy to add more. See the manpage on available completers and how to configure them.

Documentation

Development Documentation

The API documentation is available at https://guidog.pages.gitlab.gnome.org/phosh-osk-stub .

End User Documentation

For end user documentation see the manpage (or in the installed system via man phosh-osk-stub).

phosh-osk-stub's People

Contributors

agx avatar cybertailor avatar insaneprawn avatar pksadiq avatar pothos avatar snwh avatar subins2000 avatar tpikonen avatar

Watchers

 avatar  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.