GNOME OSK extension IdeaList

この記事を作った動機 単に日本語入力環境の改善を考えていたら他にも欲しい機能が出てきたので記録するだけ。 前回の記事 GNOME OSK 日本語入力 一時的な解決策 Idea List コマンドキー Gnome OSK では、ミニマリスティック過ぎて、Ctrl+S でセーブとかキーボードショートカットが困難である。そこで基本的なキー操作はコマンドとして定義し、汎用性のために、Alt と Ctrl キーも追加するみたいな方向性にしたい。 以下は追加したい理想のキーについて列挙したものである。 Ctrl+S -> セーブ キー Ctrl+C -> コピー キー Ctrl+V -> 貼り付け キー Ctrl+Z -> 元に戻す キー Ctrl+Y -> やり直す キー Ctrl Alt キーサイズ調整 Gnome OSK のキーサイズは Windows の OSK に比べて小さいように思う。正直かなり押しづらいので、もうちょいキーサイズを好みに合わせて、大きくしたり小さくしたりできるようにしたいと思った。 サイズ設定のインターフェイスについては、OSK 側には設定用のボタンを追加するか、ブラウザから設定画面にアクセスしてもらうようにするか、OSK に埋め込まれている設定画面があるならそこに項目を追加してみてもいいかなと思ったりしている。 アプリケーションのサイズ、位置の最適化 Windows では、スクリーンキーボードを使うと、自動的にウィンドウが変形されたり、テキストの位置に合わせて移動したりする。しかし GNOME ではそういう機能は基本現状ないっぽくて、なんかターミナル使ったら OSK の下に出力と入力部分が隠れてしまったりする。なのでこれを多少マシにしたい。 カーソルの画面上の位置を認識して、ウィンドウの表示位置を調整する Wayland をネイティブにサポートしているアプリでは、ウィンドウサイズやコンテンツの全体についての可視性についても考慮したい。 フローティングモード キーボードが画面を全体的に覆う感じじゃなくて、Windows みたいに、ウィンドウモードみたいなことができるようにしたい。アプリケーション側の最適化が困難な、XWayland 上で動いているアプリとかでも、OSK をまともに動かせるようにしたい。 OSK 自動隠し機能の無効化 OSK を固定するキーみたいなものを実装し、スクリーンキーボードが自動で隠れると鬱陶しいときに明示的に操作できるようにする。 ...

August 22, 2025

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

このページは、まだ未完成です。。。 nicotalk&キャラ素材配布所 http://www.nicotalk.com/charasozai_kt.html (2024年5月16日) このツールを作りたい理由 wallpaper engine みたいなことを、Linux 環境の GNOME、wayland 上でやりたいと思った。githubにコードやコンパイル済みのバイナリは上げておいて、いろんなlinuxディストリビューションで無料で使えるものがあるといいなと思った。 どう実装したいか? GJS を使って、GNOME 拡張機能として実装したい。そもそもできるのか、具体的にどうするのかは現時点ではまだ見通しが立っていない。 参考にしたサイトとか 現時点では特になし。

August 13, 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

電力プロファイル設定をできるようにする

この記事を作った動機 Arch linux や Gnome をただ導入しただけでは有効になっていないどころか、インストールすらされていない機能を有効にする方法について、一応ノートとして記録を残すだけ。 デーモンのインストール yay -Sy power-profiles-daemon # sudo pacman -S power-profiles-daemon デーモンの有効化 sudo systemctl enable --now power-profiles-daemon 電力管理が有効になった様子 参考にしたサイトとか Re-enable the GNOME Power Profile service - Ask Ubuntu https://askubuntu.com/questions/1526049/re-enable-the-gnome-power-profile-service (2025年7月25日) Arch Linux - power-profiles-daemon 0.30-1 (x86_64) https://archlinux.org/packages/extra/x86_64/power-profiles-daemon/ (2025年7月25日)

July 25, 2025

Icons

ここはどこ? ここはただ単に自分専用の chrome 拡張機能とか、このブログ用のアイコンとか作る過程で、適当に簡易的に作成した画像とか置いていくだけです。 notepad - chrome 拡張機能 clear.png close.png copy.png input.png move.png resize.png save.png other - nyanmo main blog PC.png exitfullscreen.png window.png おもちゃせっと.png おもちゃ箱.png はんだ.png はんだごて.png ガムテープ.png スマホ.png プラスチックほうき.png LLM-bias-visualization ひらめきバルブ.png ZenkakuHankaku-Key 全角半角キー.png

May 19, 2025

Gnome Mutter と ネットワーク共有フォルダ(SMB CIFS)

この記事を書いた動機 ただ単に、すぐに気づけなかったけど、後々気づいたことがあったので、それを記録するだけです。具体的には、Gnome の mutter において、ネットワークドライブ上を参照している場合においても、サムネイルを表示するようにすることについて、記事を書いていく予定です。 Gnome Mutter と ネットワーク共有フォルダ デフォルトの設定 gnome mutter ではデフォルトで、ネットワーク共有フォルダの中身のサムネイルなどを表示しない。 サムネイルを表示する設定に変更 以下の画面で、サムネを表示したりその他情報についてどうするか、設定できる。デフォルトでは、全ての項目がトラブルを避けるためか、ネットワーク共有フォルダなどを含まない、端末上のディスク内にしか機能しないように設定されている。 設定を開く サムネイルを表示するように設定を変更 変更後の様子 設定を変更し、ネットワーク共有フォルダ等をのぞいてみると、サムネイルなどが見えるようになったりする。 参考にしたサイト ただ気づいたことを書いただけなので特になし。

January 6, 2025

gnomeの設定のメモ ⚙

この記事を書いた動機 ただの自分用のよく使う設定集としてのメモ。基本的にgnome標準で付いてくると思われるgsettingsコマンドを使う。 環境 細かいことは書かないけど一応 gnome wayland Xwayland no X11 4kなどの高解像度ディスプレイ gnome の有効化(一応) gnomeのディスプレイマネージャーを単にsystemdのサービスとして起動時に立ち上がってくれるように有効にするだけ。Windowsで言ったら、logonui.exeかみたいなやつに近い気がする。 systemctl enable gdm トラックパッドの設定 物理ボタンではなく、タップしている領域で右クリックか判定しているトラックパッド用の設定。 gsettings set org.gnome.desktop.peripherals.touchpad click-method 'areas' ウィンドウのボタン 最大化、ウィンドウモードとかのボタンなどのWindowsでは標準の機能がデフォルトで無効になっているので、有効にする。 gsettings set org.gnome.desktop.wm.preferences button-layout ":minimize,maximize,close" スケーリングの設定 スケーリングとか、gnomeの実験的な機能として現在(2024年10月27日)組み込まれている機能を有効化する。よくバグる。 # 125% とかもっと細かいスケーリングを有効にできる。ある程度は実用できる段階に体感では感じるが、Xwaylandのアプリが思いっきりぼけてしまう。 gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']" # Xwayland で動くアプリがぼけないようにする、欲張り設定。中途半端な125%とかの設定と併用すると、変にウィンドウが特定の領域でしか反応しなくなるなど、バグが多い。 gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer','xwayland-native-scaling']" ちなみに、Xwaylandの「xwayland-native-scaling」などは、以下のサイト(githubのmutterのリポジトリ)で設定値の存在を確認できる。 https://github.com/GNOME/mutter/blob/main/data/org.gnome.mutter.gschema.xml.in 例えば、こんな感じで書いてある。何か気になるのがあったら、仮想マシンかなんかで使う前に試してみるといいかもしれない。 <schemalist> <flags id="org.gnome.mutter.MetaExperimentalFeature"> <value nick="scale-monitor-framebuffer" value="1"/> <value nick="kms-modifiers" value="2"/> <value nick="autoclose-xwayland" value="4"/> <value nick="variable-refresh-rate" value="8"/> <value nick="xwayland-native-scaling" value="16"/> </flags> カーソルの大きさ サイズの取得 gsettings get org.gnome.desktop.interface cursor-size サイズの変更 gsettings set org.gnome.desktop.interface cursor-size 12 設定のリセット gsettings list-schemas | xargs -n 1 gsettings reset-recursively fcitx5 日本語環境についても、いちいち調べるのはめんどくさいので、今日(2024/11/14)追記してみることにした。 ...

October 27, 2024