⚠️ Fork noticeThis repository is a fork of the original GJS OSK project by Vishram1123:
https://github.com/Vishram1123/gjs-oskThis fork is maintained for open.Yellow.os and includes additional custom keyboard layouts and minor adjustments for Japanese environments.
The original design, architecture, and license (GPL-3.0) are fully respected.
A (marginally) better on screen keyboard for GNOME 45+ (go to the pre-45 branch for compatibility from gnome 42-44)
- Function, modifier, tab, and arrow key support
- Ability to move around the screen
- More compact layout
- GNOME 45 or above
- Wayland (X11 is not working properly)
Keyboard.Demo.webm
Settings.Demo.webm
- Visit https://extensions.gnome.org/extension/5949/gjs-osk/
- Confirming that you have Chrome GNOME shell installed on your computer and your browser's GNOME Shell Integration plugin
- Click Install, and accept the prompt
- Head to the releases in the sidebar
- Download
gjsosk@vishram1123_[version].zip(mainfor GNOME version >= 45,pre-45for GNOME verison <= 44) - Run
gnome-extensions install /path/to/gjsosk@vishram1123_[version].zip(replace with appropriate path) - Log out of GNOME and log back in.
- Click on the keyboard button in the dash bar
- To drag the keyboard around, click on the move icon in the bottom right, then drag the keyboard around the screen. To get the full keyboard back, press the move icon again.
- The keyboard will snap to the corners, edges, and center of the screen.
- To change properties about the keyboard, open up the "Extensions" application, and click on "Settings" under this extension to get a list of changeable properties
- Close the settings dialog to save any modified settings
- To type special characters, open GNOME settings, and turn on "Compose Key" under the Keyboard submenu. Choose a modifier (preferably right alt), and use the key combinations listed here to type special characters
- To change the keyboard layout, change the layout in Gnome's Control Center
- To add typing prediction, add "Typing Booster" as an input source (in GNOME's settings), and keep it chosen as the primary input source (extended guide here).
- Note that this will cause predictive text to be present even without the OSK open, and the input language for Typing Booster's predictions will have to be set in Typing Booster's settings
- To open the keyboard from the command line (or with a shortcut), run the command
dconf write /org/gnome/shell/extensions/gjsosk/indicator/opened truewhich will open the keyboard
- 100% width or height doesn't take up the full monitor width or height (minus 25 px on either side). Instead, it is 1 or 2 px smaller, depending on the monitor size
- If you find any bugs, or if you have any suggestions, please open an issue or submit a pull request. Thanks!
- As of recently, all keyboard layouts and variants (available through localectl) have been added to GJS-OSK. Please report on the state of keyboard layouts as correct/incorrect in issue #48, and I will try to fix them promptly.
- To generate a single keyboard layout, install
xkbcommonthroughpipand rungenKeyMap.pywithlayout+variantas the argument (pip install xkbcommonthenpython genKeyMap.py de+dvorakfor example)
- To generate a single keyboard layout, install
Help in this area is greatly appreciated!
This fork adds the following features on top of the upstream GJS OSK:
- Custom US and JP physical keyboard layouts for open.Yellow.os
- Japanese-specific key support (e.g. Hankaku/Zenkaku via KEY_GRAVE)
- Layout adjustments tested with Wayland + Fcitx5
- Minor fixes to ensure correct key labels in Japanese keyboard environments
These changes are intended to improve the out-of-box experience on open.Yellow.os while keeping upstream behavior intact.
gjs-osk の開発では GitHub Actions を利用した CI/CD を導入しています。
修正内容を push → tag を付与 → GitHub Actions で自動ビルド → apt-repo-infra でリポジトリ公開、という流れです。
flowchart LR
dev["開発者 (tag vX.Y.Z)"] --> actions["GitHub Actions (gjs-osk)"]
actions --> release["GitHub Release(成果物添付)"]
release -->|Run workflow 手動| infra["apt-repo-infra(Run workflow 実行)"]
infra --> repo["deb.openyellowos.org(APT リポジトリに公開)"]
-
ソースコード修正
git clone https://github.com/openyellowos/gjs-osk.git cd gjs-osk -
プログラム修正
gjsosk@openyellowos.comを編集する。- 必要があれば README.md も修正する。
-
changelog 更新
debchange -i
- changelog に修正内容を記入する。
例:
gjs-osk (1.1-1) kerria; urgency=medium * 設定変更の不具合を修正 * README.md の利用方法を更新 -- 開発者名 <you@example.com> Sat, 31 Aug 2025 20:00:00 +0900 -
コミット & push
git add . git commit -m "修正内容を記述" git push origin main
-
タグ付与
git tag v0.1.0 git push origin v0.1.0
-
GitHub Actions による自動ビルド
- タグ push を検知してワークフローが起動。
.debがビルドされ、GitHub Release に添付される。
-
APT リポジトリ公開
-
apt-repo-infraの GitHub Actions を 手動で Run workflow する。 -
実際の入力例:
- Target environment:
production
- Target environment:
-
実行すると apt リポジトリに反映される。
-
利用者は以下で最新を取得可能:
sudo apt update sudo apt install gjs-osk
-
sudo apt update
sudo apt install -y devscripts build-essential debhelper lintian/etc/apt/sources.listを編集します。sudo nano /etc/apt/sources.list
- 以下のような行を探し、コメントアウトを解除してください。
↓ 変更後
deb http://deb.debian.org/debian trixie main contrib non-free-firmware # deb-src http://deb.debian.org/debian trixie main contrib non-free-firmwaredeb-src http://deb.debian.org/debian trixie main contrib non-free-firmware - 保存して終了後、更新します。
sudo apt update
sudo apt-get build-dep -y ./# 署名なしでバイナリのみビルド
dpkg-buildpackage -us -uc -b
# または(同等)
debuild -us -uc -b- 生成物:
../gjs-osk_*_amd64.deb(親ディレクトリに出力)
sudo apt install ./../gjs-osk_*_amd64.deb
# 動作確認後に削除する場合
sudo apt remove gjs-osk# パッケージの生成物を削除
fakeroot debian/rules clean
# もしくは
dpkg-buildpackage -T clean- 必ず changelog を更新すること
- バージョン番号は changelog, git tag, GitHub Release を揃えること
- 依存関係変更時は debian/control を更新すること