Giter Club home page Giter Club logo

openbangla-keyboard's Introduction

OpenBangla Keyboard (OBK)

(বাংলায় পড়ুন)

OpenBangla Keyboard is an open source, Unicode compliant, Bangla input method for GNU/Linux systems. It’s a full-fledged Bangla input method with typing automation tools, includes many famous typing methods such as Avro Phonetic, Probhat, Munir Optima, National (Jatiya) etc.

Most features of Avro Keyboard are present in OpenBangla Keyboard. So Avro Keyboard users will feel right at home in Linux with OpenBangla Keyboard.

CI   Github Downloads  

🔥
This project is powered by github 🌟s. Go ahead and star it please!

🚧 🚧 Ongoing developments happen on the develop branch. 🚧 🚧

Features

  • Features a Top Bar like Avro Keyboard for easy configuration.

  • Layout Viewer

  • Phonetic Keyboard Layout (Avro Phonetic)

    • 100% compatibility with current Avro Phonetic scheme.

    • Dictionary support can predict and suggest phonetically similar words with correct spelling on the fly.

    • Autocorrect feature for numerous commonly mistyped words.

    • Autocorrect support brings commonly used English words to Bangla (like, Facebook, download etc.) even with their original English spelling.

    • User can add and edit autocorrect entries.

    • Support for preview window to see originally typed text right under the cursor.

  • Fixed Keyboard Layout

    • OpenBangla Keyboard comes with Probhat, Munir Optima, Avro Easy, Bornona, National (Jatiya) keyboard layouts out of the box.

    • OpenBangla Keyboard supports Avro Keyboard Layout files (version 5).

  • Typing Automation tools for Fixed Keyboard layout

    • Automatic vowel forming.

    • Old style "Reph".

    • Traditional "-Kar" joining.

    • Automatic "Chandrabindu" position fixing.

Installation

If you had installed OpenBangla Keyboard 1.5.1 or earlier version, please uninstall it first.

Open your terminal and run this command on your bash shell. NB : It has to be BASH, otherwise it won’t work.

bash -c "$(wget -q https://raw.githubusercontent.com/OpenBangla/OpenBangla-Keyboard/master/tools/install.sh -O -)"

If this does not workout for you please create an Issue. While we look into the problem you can check the Wiki for Distrowise/Distro-specific Install Instructions.

Archlinux and it’s derivatives

💡
There is a video tutorial about installing OpenBangla Keyboard in Arch Linux. You may check that out from here.

There are two packages for OpenBangla Keyboard in the Arch User Repository(AUR). Use openbangla-keyboard if you want to make and install the package from source. Otherwise, use openbangla-keyboard-bin to use the binary package released for Arch and its derivatives by the maintainer. You can install it in one command with your favorite aur helper. Example commands for some popular tools:

openbangla-keyboard

  • $ pacaur -S openbangla-keyboard

  • $ yay -S openbangla-keyboard

  • $ yaourt -S openbangla-keyboard

openbangla-keyboard-bin

  • $ pacaur -S openbangla-keyboard-bin

  • $ yay -S openbangla-keyboard-bin

  • $ yaourt -S openbangla-keyboard-bin

Or install manually:

sudo pacman -S base-devel git
git clone https://aur.archlinux.org/openbangla-keyboard.git
cd openbangla-keyboard
makepkg -risc

We also provide a .pkg.tar.zst package for Arch Linux which you can download the installation package from releases page and install OpenBangla Keyboard on your system by running the following command:

$ sudo pacman -U package.pkg.tar.zst

Others

You can also install by downloading necessary packages from our Releases page.

Finally

After you have installed OpenBangla Keyboard, you may need to configure your desktop environment.

If this does not work out for you, please create an Issue.

Community

We are on Github Discussions and Facebook.

Compiling on GNU/Linux

OpenBangla Keyboard currently has the following build dependencies:

  • GNU GCC, G++ compiler or Clang

  • Rust 1.34.0 or later

  • GNU Make or Ninja

  • CMake

  • Qt 5.5 or later

  • iBus development library

  • Zstandard compression library (zstd)

Ubuntu & Debian derivatives

On a Ubuntu/Debian system you can easily install them like this:

sudo apt-get install build-essential rustc cargo cmake libibus-1.0-dev qtbase5-dev qtbase5-dev-tools libzstd-dev

Fedora

On a Fedora system you can easily install them like this:

sudo dnf install @buildsys-build rust cargo cmake qt5-qtdeclarative-devel ibus-devel libzstd-devel

Arch Linux & it’s derivatives

On a Arch Linux / Arch Based system you can easily install them like this:

sudo pacman -S base-devel rust cmake qt5-base libibus zstd

openSUSE

On openSUSE & derivatives you can easily install them like this:

sudo zypper install libQt5Core-devel libQt5Widgets-devel libQt5Network-devel libzstd-devel libzstd1 cmake make ninja rust ibus-devel ibus clang gcc patterns-devel-base-devel_basis

Solus

On Solus you can easily install them like this:

sudo eopkg install -c system.devel rust qt5-base-devel ibus-devel zstd-devel git cargo

Finally

After you have installed required libraries and binaries, clone this repository and change to the cloned folder:

git clone --recursive https://github.com/OpenBangla/OpenBangla-Keyboard.git
cd OpenBangla-Keyboard

Then issue the build commands:

mkdir build && cd build
cmake ..
make
sudo make install

Acknowledgements

License

This project is licensed under GPL 3 Licence.

Made with ❤️ by Muhammad Mominul Huque and ✨ contributors ✨!

openbangla-keyboard's People

Contributors

abuhuraira0099 avatar adyel avatar ahmubashshir avatar bdeshi avatar fahimfba avatar fakeid30 avatar imgbot[bot] avatar jonybepary avatar kryptonpust avatar mominul avatar natrys avatar shakib609 avatar sintaulsiam 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openbangla-keyboard's Issues

Clean Code

There are a lot of areas where code can be much cleaner / Simplified. I'll work on try to simplify code as much as I can.

For example :

if (ui->txtWith->text() != "") {
  ui->btnUpdate->setEnabled(true);
} else {
  ui->btnUpdate->setEnabled(false);
}

which can be simplified as a single line

ui->btnUpdate->setEnabled( ui->txtWith->text() != "" );

This example is an example of How I will simplify codes.

@mominul Do you have any opinion about this?

Unable to type Bangla on Fedora 26

With OpenBangla keyboard started and gedit open, typed text does not change to Bangla.
I am not sure if there is a toggle for Bangla/English typing, but for me changing the input method has no effect.

System Details:

OS: Fedora 26
Installation: Compiled from source.
Hardware: Macbook Air 2015
OS Configuration: MacOS/Fedora 26 dual boot.

I'd be happy to provide any additional detail/log which you may need.

Convert keycodes into hexadecimal value

Currently keycodes A...Z are in decimal value and looks inconsistent among other keycodes(they are in hexadecimal value).
So change those keycode values into hexadecimal values.

Mentoring Instructions:
Here are the values we need to convert:

#define VC_A 41140
#define VC_B 41141
#define VC_C 41142
#define VC_D 41143
#define VC_E 41144
#define VC_F 41145
#define VC_G 41146
#define VC_H 41147
#define VC_I 41148
#define VC_J 41149
#define VC_K 41150
#define VC_L 41151
#define VC_M 41152
#define VC_N 41153
#define VC_O 41154
#define VC_P 41155
#define VC_Q 41156
#define VC_R 41157
#define VC_S 41158
#define VC_T 41159
#define VC_U 41160
#define VC_V 41161
#define VC_W 41162
#define VC_X 41163
#define VC_Y 41164
#define VC_Z 41165

After the conversion is completed, we need to convert these two numeric values also:

// Check if the key is an alphabet key.
if (keyNum >= 41140 && keyNum <= 41165)

Thanks!

Simplify Installation

Install could be done in a single command. We can use curl / wget to pull an install script and let it do all the work.

NB: We might have to use wget as curl does not come pre-installed in Ubuntu or it's variant

Not working in Kubuntu 18.04 LTS

I Install OpenBangla using bellow command,

    $ curl -s https://packagecloud.io/install/repositories/mominul/OpenBangla/script.deb.sh | sudo bash
    $ sudo apt install openbangla-keyboard

It install without any problem. but I can't write bangla.

Thanks.

Problem when the primary keyboard is not English.

It looks like OpenBangla assumes English (US?) keyboard layout for symbols like "", ?, -, ; (), []. This is not the way it should be. It should assume the primary keyboard (e.g. De, Fr or whatever) as standard.

For example, in case we have two keyboards (DE and OpenBangla), to type ?, brackets, semicolon we have to remember the position of those keys in the English keyboard, which is problematic and counter productive.

Show suggestions when writing with fixed layout methods

OpenBangla Keyboard already shows suggestions when writing with Avro Phonetic method. I think the same thing should be implemented for fixed layout methods(Jatiya, Provat etc.) also.

This would be a distinctive feature and a selling point 😆 for OpenBangla Keyboard.

Error when typing

Hey, I've been facing error when I'm trying to write 'arO'. Your app crashes and starts writing English.
I've been using
OS: Ubuntu 16.04
Browser: Chrome v57.0.2987.110 (64-bit)
Thanks for this project. 👍

Not working on Linux Mint

I've followed all the instructions to install and run OBK but unfortunately even though I select OBK but I can't write Bangla. Please help me. See the screenshot even though OBK is selected but I am writing English ... why? Please help me. Thanks in advance

screenshot from 2018-07-19 00-51-26

Crash

OpenBangla-Engine crashes while pressing Up and Down keys when using the Phonetic method.

Update the README

Add the instruction to use Simple install script and move the manual installation process to the wiki

Implement Old Reph for writing Rephs easily

Implement 'Old Reph' feature which is found on Avro Keyboard. I have already added code in frontend and settings to control this feature, but the feature is not implemented in MethodFixedLayoutModern.cpp/h .

Make this "snap" ?

Snap applications are easily distributable to all snap supported platform. If you can make this program a snap package you will be able to catch a wider audience. Can you please do that? I am no expert but from what I saw (from YT video/article), making snap package is not that complicated.

You can look for details here: https://snapcraft.io/

Last but not least, thanks for presenting us with this great application. :)

Improve the suggestion

screenshot from 2018-06-23 19-38-19c

OBK feels great except when it comes to suggestion. While writing, it keeps giving bad suggestion no matter how many time you change it. Can we make it so that it will suggest the most used words first?

Let users turn off preview box

I found that the preview box parses the data in some way that is blocking the redraw of the characters.

Please implement a toggle that can turn off the preview window.

Can Not use it with Discord

The Language Does not Change When I am using Discord (snap). The taskbar shows it's in bn but the language does not change

Polishing the GUI

ওপেনবাংলা কিবোর্ডের GUI অংশ Qt C++ GUI framework দিয়ে লেখা। GUI অংশের কোড src/frontend directory তে রয়েছে। এখন প্লাটফরম ভেদে GUI দেখতে একদম inconsistent দেখায়। মাঞ্জারো অর্থাৎ KDE প্লাটফরমে GUI এর যেমনতেমন অবস্থা। এর কারণ আমি GUI ডিজাইন করার সময় Qt এর Layout Management সুবিধাটি ব্যবহার করিনি (আমি Qt সম্পূর্ণভাবে শিখিনী 😊 )। আমার জানা মতে Qt Layout Management ফিচারটি ব্যবহার করলে এই GUI রেন্ডারিং সমস্যাগুলো দূর হবে।

এ কাজটি করতে যা প্রয়োজন:

  • Qt ও Qt Layout Management সম্পর্কে জ্ঞান থাকতে হবে।
  • Qt Creator এর ব্যবহার জানতে হবে।

(সব জানা থাকতে হবে তেমন কোন কথা নেই, যারা আগ্রহী তারা শিখেও কাজটি করতে পারবেন। আমি যতটুকু পারি হেল্প করতে রাজি আছি।)

যারা কাজটি করতে আগ্রহী তারা দয়া করে আগে এখানে পোস্ট করুন। আর আমি মেন্টরিং এর জন্য তো আছিই!

Unnecessary dependencies in Arch package

Hi, the tar.xz binary package for Arch currently available in the 1.4.0 release page has unnecessary dependencies.
cmake as well as its deps -- this is obviously not required for a prebuilt package -- and even curl.

(btw, the aur pkgbuild is not affected.)

Please consider changing OpenBangla keyboard logo

I've recently installed OpenBangla keyboard on my debian OS. Though I couldn't find a way to configure the show word suggestion settings, I liked it. But one thing which I disliked was, the logo, which reminds me of ওঁ which is a religious symbol of Hindus.

As a muslim, It disturbs me whenever I try to switch the layout and in indicator symbol. If you could change the logo, it would be good thing.

Insert new AutoCorrect entry while typing

We should add a feature that will enable the user add the word they have typed directly into the autocorrect dictionary. We should choose a key binding that will commit the currently chosen suggestion and show a dialog box to save it.

Dictionary suggestions are not working properly in avro phonetic layout. Distro- linux mint 19 cinnamon

While using avro phonetic layout the drop down suggestion menu is displaying only the current word which has been just written, there are no any other suggestions of probable words are displaying. Suppose if I write 'soumen' the dropdown menu will show সউমেন but what we actually need is সৌমেন as first suggestion and rest are later. I did everything in openbangla settings to solve it but result is same.

TopBar is not movable

TopBar is not movable on the first run. TopBar appears on top left corner of the screen.

Error while typing

Hey, once again. I can't write "bistarito". It crashes once again. please check.

Starting OpenBangla-Keyboard error

Whenever I search for open bangla keyboard on my dash, and try to run, it doesn't start. But when I try to run it from terminal, I get this error

/usr/share/openbangla-keyboard/OpenBangla-Keyboard: /usr/lib/x86_64-linux-gnu/libQt5Network.so.5: version `Qt_5' not found (required by /usr/share/openbangla-keyboard/OpenBangla-Keyboard)
/usr/share/openbangla-keyboard/OpenBangla-Keyboard: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: version `Qt_5' not found (required by /usr/share/openbangla-keyboard/OpenBangla-Keyboard)
/usr/share/openbangla-keyboard/OpenBangla-Keyboard: /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5: version `Qt_5' not found (required by /usr/share/openbangla-keyboard/OpenBangla-Keyboard)
/usr/share/openbangla-keyboard/OpenBangla-Keyboard: /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5: version `Qt_5' not found (required by /usr/share/openbangla-keyboard/OpenBangla-Keyboard)
/usr/share/openbangla-keyboard/OpenBangla-Keyboard: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.7' not found (required by /usr/share/openbangla-keyboard/OpenBangla-Keyboard)
/usr/share/openbangla-keyboard/OpenBangla-Keyboard: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5' not found (required by /usr/share/openbangla-keyboard/OpenBangla-Keyboard)

Word broken and disappears

writing ei doesn't show the correct word. colons are not working (বিসর্গ). missing after a word written.

Missing function documentation in source code

Most of the functions used inside the source code are missing documentations on how they work.
At least, some short descriptions similar to Python Docstrings should be provided in the form of comments inside the source code files.
This will help contributors understand the code more easily.

Installing in Mac

I am wondering if this software can be installed in Mac. If so, which installation approach should be used?

In particular, I want to use the Jatiyo fixed layout keyboard.

Layout viewer

Layout viewer resizes every time whenever the layout is changed. This bug has appeared after the layout management changes in Layout Viewer UI.

layout viewer_bug

Error while installing in Debian 9

OpenBangla-Keyboard requires libqt5core5a version >= 5.9.0. But in Debian 9, the version of the lib is 5.7.1. And it is not possible(I couldn't) to upgrade libqt5core5a to version >= 5.9.0. So, couldn't install in Debian 9...

Some packages could not be installed

I freshly installed Xubuntu for my daily use. While trying to install the OBK, I was greeted with this error. Any Idea why it is occurring?

Node: Tried it manually, same error.

screenshot_2018-07-03_02-53-18

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.