GNOME OSK 日本語入力 一時的な解決策

この記事を作った動機 なんか ChatGPT に色々要望を投げたら、とりあえず動くものが自分で理解してなにか作れる前にできたので、まずはそっちに集中しようかなと思いまとめを作ろうとしてみた。 結局まともに動かせるようにするために、 ChatGPT とのやり取りで出てきた着想を元に、色々調べて自分で組み合わせたり、コードを書いたりすることになった。 前回の記事 GNOME OSK 周りの調査 機能の概要 Gnome 拡張機能として、トップバーに全角半角切り替えキーを表示し、押したら、入力モードがアルファベットを直接入力するモードと、日本語をローマ字で入力するモードに切り替えられるようにする。 主にタッチパネル環境を使って日本語入力するときに、Gnome OSK が US配列しか日本語レイアウトを指定しても表示しないために、補助として作った。 想定された利用する状況としては、以下のようなものがある。 GNOME 47 以降 タッチパネル運用 GNOME OSK を利用する Wayland 環境 ちなみに X11 環境である場合は、onboardなどすでにある OSK とかを使ったほうがいいかもしれない。 リポジトリ 基本的な動作 pyhton のキーイベントを送る常駐サーバがある。 (セキュリティの都合により汎用性はなく “`” の日本語キーボードで言う全角半角キー相当のキーイベントしか送らない) ボタンが押されたら、localhost 経由で Gnome 拡張機能からリクエストを送る python サーバ 必要なパッケージ python python-uinput python-websockets yay -S python python-uinput python-websockets 最新版 最初は、ChatGPT に書いてもらったコードを動かしていたが、次第に HTTP 通信だと限界があることがわかり、 WebSocket へ移行した過程で、結局自分でネットで python のsockets の公式ライブラリなり、色んなサイトを漁ってコードを書くことになった。ChatGPT が書いたコードについては、uinput 以外は、結局いろんなサイトからの試しながら切り貼りといった感じである。 ...

August 21, 2025

GNOME OSK 周りの調査

このページは、まだ未完成です。。。 nicotalk&キャラ素材配布所 http://www.nicotalk.com/charasozai_kt.html (2024年5月16日) この記事を作った動機 GNOME には、スクリーンキーボードがデフォルトで実装されているが、日本語レイアウトが存在しないようで、全角半角切り替えキーさえ出てこないという非常に不便な挙動をしているということがあった。そこで、自分で何かしらしてどうにか全角半角キーを追加したいと思った次第。 考えていること 拡張機能として実装する Gnome-shell 自体を変更してしまう OSK自体にボタンを埋め込まずに、Fcitx5のIME の横にパネルメニューボタンとして、切り替えボタンを表示する わかったこと data/osk-layouts/配下に日本語レイアウトが存在しない us.json としてアメリカ配列などについては存在するが、jp.json や ja.json みたいなのは存在していない。 ja.json を us.json などからコピーして作るとき 全角半角切り替えキーは、action として記述できる模様。ただ、GJS側でどうやってアクションを処理すればいいのか不明。 us.json の action 例 ... { "action": "emoji", "iconName": "osk-emoji-picker-symbolic" }, { "action": "languageMenu", "iconName": "osk-layout-symbolic" }, { "action": "hide", "iconName": "osk-hide-symbolic" } ... jp.json のイメージ ... { "action": "zenkakuHankaku", "iconName": "osk-zenkakuHankaku-symbolic" }, ... GJS のアクションの実装方法が不明 調査が必要なことがわかる。fcitx5 を私は使っているがそれについても GJS からどうできるのか調べる必要がありそうである。DBusあたりが重要なのかな?とはなんとなく思っているところである。 data/gnome-shell-osk-layouts.gresource.xml のイメージ ただキーボードレイアウトとactionの実装をするだけでなく、リソースとして以下のように登録してレイアウトを認識させる必要がありそう。 ...

August 10, 2025