Skip to content

iwanders/gnome-enhanced-osk-extension

 
 

Repository files navigation

enhanced-osk-gnome-ext

Forked from https://github.com/cass00/enhanced-osk-gnome-ext, which itself is a second fork of the source.

Forking here to easily be able to modify the key layout used on my NixOS surface. All keyboards ought to have special characters in the same place; 'shift' on the number page should change the numbers to the special characters one would expect, just like pressing shift+number on a real keyboard does.

The default gnome on screen keyboard doesn't have this property, there's math symbols on shift number values, and apparently never had it as it came from some android keymap.Also, who needs ®, or in an onscreen keyboard?

Keyboard layers should also not change in width, consistency is key for any input method.

Layout of of us.json in this fork:

util$ ./render_keyboard.py ../src/data/osk-layouts/us.json 

Level:    mode:  default
Esc | q  | w  | e  | r  | t  | y  | u  | i  | o  | p  |  clear  |     13
 Tab  | a  | s  | d  | f  | g  | h  | j  | k  | l  |   enter    |     13
  shift  | z  | x  | c  | v  | b  | n  | m  | .  | up |  shift  |     13
123 |Ctrl|Supe|Alt |                   |layo|prev|down|next|hide|     13



Level:  shift  mode:  latched
Esc | Q  | W  | E  | R  | T  | Y  | U  | I  | O  | P  |  clear  |     13
 Tab  | A  | S  | D  | F  | G  | H  | J  | K  | L  |   enter    |     13
  shift  | Z  | X  | C  | V  | B  | N  | M  | .  | up |  shift  |     13
123 |Ctrl|Supe|Alt |                   |layo|prev|down|next|hide|     13



Level:  opt  mode:  locked
 ~  | 1  | 2  | 3  | 4  | 5  | 6  | 7  | 8  | 9  | 0  |  clear  |     13
 Tab  | -  | /  | :  | ;  | (  | )  | €  | &  | @  |   enter    |     13
   =/<   |  undo   | .  | ,  | ?  | !  | '  | "  | up |   =/<   |     13
abc |Ctrl|Supe|Alt |                   |layo|prev|down|next|hide|     13



Level:  opt+shift  mode:  locked
 `  | !  | @  | #  | $  | %  | ^  | &  | *  | (  | )  |  clear  |     13
 Tab  | _  | \  | |  | ~  | <  | >  | $  | £  | Ұ  |   enter    |     13
   123   |  redo   | .  | ,  | ?  | !  | '  | "  | up |   123   |     13
   abc   | 😀 | 🎉 |                   |layo|prev|down|next|hide|     13

Finally found the bar above the keys element; this._suggestions, there's an option to disable this now.

It also adds a second button in the panel to lock the current keyboard state (hidden or shown) to disable gnome's automatic detection. I found I ended up using the touch screen on my Surface Pro 9, even with the keyboard attached. In that case I don't want a keyboard.

Notes for myself:

Development:

  • Enter env with nix develop current#pkgs.gnome-osk
  • Run ./package-extension.sh
  • Put unzipped contents in ~/.local/share/gnome-shell/extensions/iwanders-gnome-enhanced-osk-extension

Original Readme

Makes Gnome's OnScreen Keyboard more usable.

Features:

  • Includes additional buttons: Arrow keys, Esc, Tab, Ctrl, Alt, Super, F1-12
  • Supports key combinations like Ctrl + C, Alt + Tab, Ctrl + Shift + C, etc.
  • Configurable keyboard size (landscape/portrait)
  • Statusbar indicator to toggle keyboard
  • Works in Gnome password modals

Currently, the following layouts have extended keys: CH+FR, CH, DE, HU, ES, FR, IT, RU, UA, US.

Screenshot

This extension is a fork of nick-shmyrev/improved-osk-gnome-ext which is fork of SebastianLuebke/improved-osk-gnome-ext.

Installation

From extensions.gnome.org

https://extensions.gnome.org/extension/6595/enhanced-osk/

From source code

Clone the repo, change into its root directory, run package-extension.sh and install the extension:

git clone https://github.com/cass00/enhanced-osk-gnome-ext.git
cd ./enhanced-osk-gnome-ext
./package-extension.sh
gnome-extensions install [email protected]

After installing the extension, log out and back in to reload Gnome Shell. Then enable the extension.

gnome-extensions enable [email protected]

FAQ

My language layout doesn't have the additional keys.

If the layout you're using does not have the extended keys, let me know, and I'll add them. Or, feel free to modify it yourself (see /src/data/osk-layouts dir) and make a PR.

How do I make a custom layout?

You'll need to follow the manual installation process from README, but before running package-extension.sh you'll have to make changes to your preferred layout (see osk-layouts), then continue with the installation process.

I want to test this extension with a new version of Gnome.

To install the extension on an unsupported Gnome version, you can either add desired version number to metadata.json file and proceed with a manual installation, or disable extension version check and then install from extensions.gnome.org:

gsettings set org.gnome.shell disable-extension-version-validation true

See TEST_CASES for test cases.

Extension is installed and activated, but keyboard layout doesn't change.

Gnome's default on-screen keyboard, on which this extension is based on, uses ibus package, make sure you have it installed.

Some symbols are missing...

The keyboard uses unicode characters, try installing ttf-symbola on archlinux (AUR) or ttf-ancient-fonts-symbola on ubuntu/debian

Alternatives

Full-size Onscreen Keyboard than can be dragged around the screen.

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 89.4%
  • Python 6.6%
  • Shell 4.0%