問題タブ [gjs]

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.

0 投票する
1 に答える
1451 参照

javascript - GSettings で dconf-entry を変更できない

現在、 Gjsで単純なアプリケーションを構築しています。これにより、gnome-shell の背景画像が変更されるはずです。gsettings-toolを使用してこれを行う方法に関する解決策は、ここにあります。

その周りにデスクトップアプリケーションを構築したいので、Gio の -class を使用して -key を変更したいと考えてorg.gnome.desktop.background.picture-uriます。ただし、-メソッドを使用してもキーの値は変更されません。GSettingsset_X()

これは gsettings 値を変更する私のコードです:

値の読み取りは期待どおりに機能し、is_writable()-method が返さtrueれ、set_string()-method も返されますtrue

「delay-apply」モードではなく、キーにGVariantTypeof 文字列があることを確認したので、set_string()-method が機能するはずです。

通常のgsettingsコマンドライン ツール (リンクされた投稿で説明されている) を使用すると、問題なく動作します。

何が問題なのかわかりません。ログなどを探すことができる場所はありますか?

0 投票する
2 に答える
2923 参照

javascript - Gjs コードでインクルード パスを設定するには?

ご覧のとおり、 Gjsはデフォルトimportsでのみロード/usr/share/gjs-1.0/usr/lib/gjs-1.0れます。ノードでできるように、アプリケーションをモジュール化したいのですが、スクリプト ファイルに関連するモジュールを見つける必要があります。

インクルード パスを追加するには、次の 2 つの方法を見つけました。

  1. gjs --include-path=my-modules my-script.js
  2. GJS_PATH=my-modules gjs my-script.js

...しかし、どちらもファイルではなく現在のディレクトリに関連しており(明らかに)、コマンドラインで宣言する必要があり、これが不必要に複雑になっています。

Gjs コードでインクルード パスを設定するにはどうすればよいですか? (だから私はこれをファイルに相対的にすることができます)

または... Pythonのように、どこからでもファイルをインポートする別の方法はありますか?

--include-path(この問題を解決するためにシェルスクリプト ランチャーを使用することを提案する必要はありませんGJS_PATH。それは明らかですが、それほど強力ではありません。より良い解決策がない場合は、それで乗り切ることができます。)

0 投票する
1 に答える
547 参照

javascript - Gnome-ShellJSインターフェースを使用した連絡先のリストの取得

gnome-shell拡張機能を書き始めたばかりで、ユーザーの連絡先のリストを取得する方法を知りたいです。

私はいくつかの可能性のあるファイルを追跡しました:gnome-shell/js/ui/contactDisplay.jsそしてgnome-shell/src/shell_contact_system.c

今、私shell_contact_system.cは次の関数に気づきます:

これは、javascriptインターフェースで関数を使用できることを示唆しています(ファイルにもがあり、の使用法を示してget_allいるという事実によって私の信念が強化されています)。.cshell_contact_system_get_individualcontactDisplay.jsShell.ContactSystem.get_default().get_individual

できます!(私はGnome-shellの「lookingglass」javascriptインタープリターで試してみています)。

これは「Gobject」のように見えるので、連絡先の名前を取得するためにこのオブジェクトをどう処理するかわかりません。(Cコードから)このオブジェクトがであることに気付いGeeMap *たので、Gee.Mapのドキュメントを見ると、次のことができることがわかります。

次に、これらの方法に注目して、contacts.valuesを見てみます。contacts.keyto_array()

ただし、これを行うと、空の配列が返されます。contacts.xxx.to_array().sizeは0ですcontacts.sizeが、31ですか?!!

contacts.map_iterator()aを使用してマップを反復処理しようとしたときにも同じことが起こります。it.get_value()そしてit.get_key()nullのように見えます。

だから、私の質問は:どうすればの個々の要素にアクセスできますcontactsか?

のコメントは、との間に言うことshell_contact_system_get_allに注意してください。後者の機能は機能します(検索したい個人のIDがわかっている場合、これが私の問題です)が、前者は機能しません。これはそれと関係があるのでしょうか?Returns: (transfer none): ...shell_contact_system_get_individualReturns: (transfer full): ...

また、回避策として、現在、contactSearchProviderクラスを使用してこれを実現できます(gnome-contacts連絡先の名前を入力すると、概要に表示されるように、概要で使用されます)。''私は基本的に、すべての連絡先のリストを返す必要があるものを検索します。get_all()ラウンドアバウトのようですが、空の文字列を検索しなくても、このメソッドを使用してすべての連絡先を取得できるはずです...

助けていただければ幸いです(ちなみに、これに関するドキュメントはありますか?ソースをじっと見つめ、そこからすべてのドキュメントを推測しようとすると、非常に不十分だと感じます!)

0 投票する
6 に答える
62883 参照

javascript - プロトタイプでセッター/ゲッターを定義する方法

2016 年 10 月編集: この質問は 2012 年に行われたことに注意してください。毎月、誰かが新しい回答または回答に反論するコメントを追加しますが、質問がおそらく古くなっているため、実際には意味がありません (覚えておいてください、Gnome Javascriptが gnome-shell 拡張機能を作成するためのものであり、ブラウザーのものではなく、非常に具体的です) 。

Javascript でサブクラス化を行う方法に関する以前の質問に続いて、次のようにスーパークラスのサブクラスを作成しています。

私の質問は、この構文でプロトタイプにセッター/ゲッターを定義するにはどうすればよいですか?

やったことある:

しかし、明らかに以下は機能しません。

私は GJS (GNOME Javascript) を使用しており、エンジンは Mozilla Spidermonkey のものと多かれ少なかれ同じであることを意図しています。私のコードはブラウザー向けではないので、GJS でサポートされている限り (Spidermonkey を意味すると思いますか?)、相互互換性がなくてもかまいません。

0 投票する
2 に答える
1997 参照

unicode - Javascriptとgjsを使用したUnicodeファイルI/O?

JavascriptGjsを使用して、おそらくGioやGlibを​​使用して、Unicodeテキストファイルを読み書きする方法の実用的な例を誰かに教えてもらえますか?私はJavascriptの経験がありますが、これらのAPIはまだ私には異質であり、まったく新しいテクノロジーであるため、グーグルはあまり役に立ちません。

私はこれを見ました:https : //live.gnome.org/Seed/Tutorial/Simple_file_io、しかしそれはシードベース(Gjsではない)であり、かなり古いようです。エラーが発生しているため(9行目のGio.readの引数が少なすぎるなど)、Unicodeテキストを使用してテストできません。

実用的なスニペットが非常に役立ちます。ありがとう!

更新:Ubuntu12.0464ビットでテストしています。

0 投票する
2 に答える
3019 参照

dbus - Gjs / Gnome Shell で DBus メソッドを呼び出す

バス名、オブジェクト パス、およびインターフェイスがある場合、Gjs から (gnome-shell 拡張で) DBus メソッドを呼び出すにはどうすればよいですか?

次のpythonコードに相当するものを探しています:

(私は python-dbus マジックのためにインターフェースを明示的に使用しなかったことに注意してiface = dbus.interface(obj, "org.gnome.SessionManager.EndSessionDialog")ください。 gnome-shell にコールバックするため、Gjs ではばかげています)

0 投票する
1 に答える
341 参照

javascript - gnome-shell で拡張オブジェクトを取得する

私はgnome-shell拡張に取り組んでいます。他の拡張機能のオブジェクトを取得できるかどうか疑問に思っていました。

を使用して現在の拡張オブジェクトを取得する手段しか見つ​​けられません ExtensionUtils.getCurrentExtension()

インストールされている他の拡張機能にアクセスする可能性はありますか?

0 投票する
1 に答える
1046 参照

gjs - Linux(GNOME&Gtk)アプリケーションを開発するためにJavaScriptを使用する必要がありますか?

私はGtk+とGNOMEAPIを使用してPythonとCアプリを作成しましたが、GJSのおかげでGNOME 3でJavaScriptがサポートされていることがわかりました(シードについても聞いたことがあります)。

だから、私は尋ねなければなりません:それはそれだけの価値がありますか?GJSが注目を集めており、今後廃止される予定がないかどうかを知りたいだけです。

0 投票する
2 に答える
761 参照

javascript - JavaScriptでGVariantを解凍します

GSettingsにタイプのGVariantとして格納されている配列があり、a(ss)これをCinnamonアプレットで使用します。次のコードを使用して、値を正常に取得できます。

しかし、私はそれを開梱することはできません。私が見る限り、おそらくGVariantIter構造体を使用して解凍する必要がありますが、ドキュメントが限られており、gjs APIで正しいインターフェイスを見つけることができません(実際に存在する場合)。誰かがそれを行う方法を知っていますか?

ありがとう!

編集: 私のスキーマは次のようになります:

とりあえず、JSON設定を保存するために外部ファイルを使用していますが、100%満足のいく解決策ではありません。2つのas型変数を維持し、それらを整列させておくことができると思いますが、これを適切に行う方法が必要ですよね?

0 投票する
1 に答える
271 参照

gnome-shell - gnome-shell3.4および3.6の拡張機能を記述します

gnome-shellの拡張機能を書いています。しかし、gnome-shell 3.4では、メニューが追加されpanel._menus、gnome-shell3.6ではwithwithを使用しpanel.menuManagerます。すべてのバージョンで機能するメニューを追加するにはどうすればよいですか?