問題タブ [gnome-shell-extensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - gnome-shell-extension はどのようにして重要な焦点をつかむことができますか?
複数のアクターを含む BoxLayout があります。アクターの 1 人は St.Entry です。この Entry にキーボード フォーカスを設定して、ウィンドウが作成されたらすぐに入力を開始できるようにします。
「grab_key_focus()」メソッドは既に見つかりましたが、エントリでそれを呼び出しても何もしません。
これには本当に希少なドキュメントがあるので、あなたが私に与えることができるどんな助けにも感謝しています..
c - Gnome ライブラリ (GDK) を使用してキーボード修飾子の状態を取得すると、初期状態のみがフェッチされます
その状態を示すアクセシビリティgnomeシェル拡張を実装することを目的として、gnome GDKまたはGTKライブラリを介して現在のキーボード修飾子の状態を取得しようとしています。
xlib を使用して状態を取得する方法は知っていますが、gnome gjs の完全なバインディングはありません。
以下のコードは、初期状態のみを取得します。状態は更新されません。
CAPS ロックがアクティブになってから非アクティブになったが変更されていない出力例を次に示します。
現在、Kubuntu 15.04 を使用しています。
コードの何が問題になっていますか?
javascript - gnome-shell-extension 内から GtkApplication を起動するには?
私の目標は、ユーザーが Gnome のトップバーにあるボタンを押したときに、新しい GtkApplication を開始することです。トップバーのボタンは gnome-shell-extension で実行できますが、GtkApplication を開くのが困難です。
したがって、今のところ、次のコードは GtkApplication を開始するだけです。
コードを内部に配置した後にこの拡張機能を有効にする~/.local/share/gnome-shell/extensions/test@test/extension.js
と、常に のSIGSEGV
シグナルが発生しgnome-shell
ます。
debian - Gnome Shell 3.16.2 で gnome-shell 拡張機能のスタックトレースを表示するには?
今日、私は Debian Jessie (安定版) から Stretch (テスト版) にアップグレードしましたが、作業が必要な多くの拡張機能が互換性としてマークされなくなりました。それらのほとんどにとって大したことではないと確信しています(おそらくmanifest.json
更新するだけです)。
しかし、私の問題は、ロードの問題を特定するためのjs トレースバックの方法が見つからないことです。gnome-shell --replace
以前は、コマンドの実行時にコンソールに、または単に~/.xsession-errors
ファイルにログがありました。私が見る限り、~/.xsession-errors
ファイルはjsから何も記録していないようです。テストするために、鏡を使って何かを記録しようとしました。
Debian changelogを調べましたが、役に立ちませんでした。
ログは別のファイルに移動していますか? gdb を使用せずに js をデバッグする簡単な方法はどこにありますか?
どんな助けでも本当に感謝します! ありがとう
dbus - 文字列を gnome-shell 拡張機能に送信するには?
D-Bus を使用する必要があると思います。基本的には、 https://wiki.gnome.org/Gjs/Examples/DBusClientのようなものが欲しいのですが、その逆です。
拡張機能には、次の関数があります。
そして、この関数は実行後に呼び出されます:
…ターミナルで、s == "abc"
.
#gnome-shell
onで @Jasper と @owen からの提案の後、 https : //github.com/GNOME/gnome-shell/blob/master/js/ui/magnifierDBus.jsirc.gnome.org
からいくつかのコードを採用しました。
今、発行した後:
… 何も起こりません。
javascript - gjs から非同期 stdout を読み取る
gjs からコマンドを実行し、出力を非同期で読み取ろうとしています。
ここに私の同期コードがあります
これは正常に機能しますが、非同期で実行しようとすると機能しません
コールバックはまったく呼び出されません
javascript - gnome 拡張機能を使用した ClutterShaderEffect
私のプロジェクトの目的は、シェーダーを実装してステージにアタッチすることです。JS gnome 拡張システムを使用して画面全体の変形が必要です。(私はCでそれを行い、gnomeを再コンパイルしましたが、コンパイルを必要としないテクノロジーを使用したいと思います)。
次に、実装を探して、カスタム ShaderEffect をステージにアタッチします。私は次のコードでそれをやろうとしましたが、画面全体がフリーズします:
this._actor = global.stage . これは機能していますが、画面がフリーズします。だから私はドキュメントを読んで、このドキュメントリンクを見つけました:
ClutterOffscreenEffect の実装 ClutterOffscreenEffect のサブクラスを作成するには、ClutterEffect 仮想関数をオーバーライドする場合、ClutterOffscreenEffect の実装に連鎖する必要があります。ClutterEffect の仮想関数に加えて、ClutterOffscreenEffect は ClutterOffscreenEffectClass.paint_target() 関数も提供します。この関数は、オフスクリーン リダイレクトの結果を含むテクスチャの効果的なペイントをカプセル化します。
しかし、どうすれば JS でそれを行うことができるでしょうか?
いくつかのCファイルでそれを行っていたので、JSで実装する方法がわかりません。非公式の JS ドキュメントは役に立ちません。
Clutter.Shader で別のことも試しました:
ただし、シェーダーはチャイルドにのみ適用され、ステージには適用されませんでした。this._actor = global.stage . 2 番目の方法を使用した結果の概要を次に示します。私のシェーダーは、テストのためだけにテクスチャを複製しています。しかし、ステージにアタッチするのに、画面全体ではなくアイコンのみに複製するのはなぜですか?