On-screen keyboard for touch devices, inspired by Windows 11, with an optional Gboard-style phone layout. It has a compact TKL layout with Fn, Ctrl, Alt, AltGr and Super keys, or a phone layout with a number row, long-press accents and symbols and a Material look. It opens by itself on text fields, can suggest words (built-in or from ibus-typing-booster), capitalizes sentences, types a period on double space, autocorrects English, moves the cursor when you drag on Space, and has a visual layout editor. It also runs on the lock screen so you can type your password there. Based on Fluent OSK by TbangIT (https://github.com/TbangIT/fluent-osk).
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-X-004 warning
extensions should avoid synchronous file IO in shell code
Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.
keyboard.js:2908
Gio.File.new_for_path(p).load_contents(null)
keyboard.js:3209
Gio.File.new_for_path(p).load_contents(null)
keyboard.js:3789
Gio.File.new_for_path(p).load_contents(null)
keyboard.js:2936
f.load_contents(null)
keyboard.js:2966
f.load_contents(null)
keyboard.js:3218
f.load_contents(null)
layouts.js:242
file.load_contents(null)
EGO-A-004 warning
extension files should not contain excessive ungated console logging
File contains 19 ungated console.log/warn/error calls (threshold: 5).
keyboard.js:59
console.warn('[AproposOSK] typing-booster start failed:', e)
keyboard.js:65
console.warn('[AproposOSK] typing-booster stop failed:', e)
keyboard.js:107
console.warn('[AproposOSK] typing-booster slow to start, continuing')
keyboard.js:124
console.warn('[AproposOSK] could not restore input engine:', e)
keyboard.js:616
console.warn(`[AproposOSK] Could not register font ${name}:`, e.message)
keyboard.js:622
console.warn('[AproposOSK] Bundled font registration unavailable, using system fonts:', e.message)
keyboard.js:1018
console.warn('[AproposOSK] GNOME accent data unavailable:', e.message)
keyboard.js:2139
console.warn('[AproposOSK] Overview fallback failed:', e.message)
keyboard.js:2708
console.warn('[AproposOSK] typing-booster bridge unavailable:', err)
keyboard.js:2779
console.warn('[AproposOSK] typing-booster sync failed:', err)
EGO-L-002 warning
objects created by extension should be destroyed in disable()
Objects assigned in `enable()` are missing matching `.destroy()` calls in `disable()` or its helper methods.
extension.js:355
this._icon = new St.Icon({
icon_name: 'input-keyboard-symbolic',
style_class: 'system-status-icon',
})
EGO-L-005 warning
owned object references should be released in disable()
Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.
extension.js:355
this._icon = new St.Icon({
icon_name: 'input-keyboard-symbolic',
style_class: 'system-status-icon',
})
EGO-L-003 warning
signals connected by extension should be disconnected in disable()
Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.
extension.js:361
this._indicator.connect('button-press-event', (actor, event) => {
if (event.get_button() === 1) {
if (this.keyboard) {
this.keyboard.toggle();
}
return Clutter.EVENT_STOP;
}
return Clutter
extension.js:371
this._indicator.connect('touch-event', (actor, event) => {
const type = event.type();
if (type === Clutter.EventType.TOUCH_BEGIN) {
return Clutter.EVENT_STOP;
}
if (type === Clutter.EventType.TOUCH_END) {
if (thi
EGO-M-008 warning
extensions using unlock-dialog must document it in disable() comments
Extensions using `unlock-dialog` should document the reason in `disable()` comments.
extension.js:421
disable() {
this._stopAutoShow();
if (this._settingsListener) {
this._settings.disconnect(this._settingsListener);
this._settingsListener = null;
}
if (this._quickToggle) {
this._quickToggle.destroy();
this._quickT
| Version | Status |
|---|---|
| 1.1.0 (2) | Unreviewed |
| 1.0.1 (1) | Rejected |