問題タブ [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 拡張機能をテスト/デバッグする方法は? そのためのツールはありますか?
GNOME Shell 拡張機能を開発したいと思っています。開発プロセスに入るのは非常に簡単であることがわかりましたが、拡張機能を効果的にデバッグ/テストする方法がまだわかりません。
そのためのツールはありますか?最新のブラウザーや JavaScript サーバー環境にあるようなリアルタイム コンソールはありますか?
copy - Gnome シェル拡張、テキストをクリップボードにコピー
私はGnome Shell Extensionsに取り組んでいますが、ユーザーのクリップボードに文字列をコピーする方法に関するドキュメントが見つかりません。
Gnome 拡張機能 git を検索しましたが、成功しませんでした。
ご協力ありがとうございました!:)
javascript - gnome シェル拡張のモーダルとしての設定
私はGnome Shell Extensionを使用していますが、これにはいくつかの設定が必要です(フォルダーへのパス、URL、およびチェックボックス(オン/オフの切り替え))。
Gnome 3 用の JavaScript だけを使用して作成することは可能でしょうか、それとも Python のようなものが必要でしょうか。
私が見つけた唯一の例は、この拡張機能https://extensions.gnome.org/extension/135/web-application-menu/で、Python を使用しています。
JavaScript を使用できる場合、その方法に関するドキュメントへのリンクはありますか?
どうもありがとうございました !
linux - Gnome シェルの権限昇格
私は Gnome シェル拡張機能を構築していますが、エスカレートされた特権でいくつかのことを実行できるようにしたいと考えています。それで、「ポリシーキット」を使用する必要があると考えていますが、これを行う方法がわかりません。
だから、私が何かしたかったとしましょifconfig eth0 down
うifconfig eth0 up
ターミナルから実行できますpkexec ifconfig eth0 down
。パスワードの入力を求められて実行されます。
しかし、拡張機能内からどのように行うのですか?
/usr/share/polkit-1/actions にファイルを作成することと関係があると確信していますが、インターネットなどで何も見つかりません。
パスワードを入力する必要がなく、拡張機能がいつでも特定のコマンドを実行できるように設定できるようにしたいと考えています。
コマンドの実行を許可するのは本当に悪い考えであることを私は知っています。それは私が求めているものではありません。単一のプログラム/コマンドを実行できるようにしたいのです。
編集:よくわかりませんが、パスワードを入力する必要がないということは不可能かもしれないと思います。sudo は初回からしばらくパスワードを要求しないことを知っているので、同様の機能が必要です。何が可能かわからない。
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
いるという事実によって私の信念が強化されています)。.c
shell_contact_system_get_individual
contactDisplay.js
Shell.ContactSystem.get_default().get_individual
できます!(私はGnome-shellの「lookingglass」javascriptインタープリターで試してみています)。
これは「Gobject」のように見えるので、連絡先の名前を取得するためにこのオブジェクトをどう処理するかわかりません。(Cコードから)このオブジェクトがであることに気付いGeeMap *
たので、Gee.Mapのドキュメントを見ると、次のことができることがわかります。
次に、これらの方法に注目して、contacts.values
を見てみます。contacts.key
to_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_individual
Returns: (transfer full): ...
また、回避策として、現在、contactSearchProvider
クラスを使用してこれを実現できます(gnome-contacts
連絡先の名前を入力すると、概要に表示されるように、概要で使用されます)。''
私は基本的に、すべての連絡先のリストを返す必要があるものを検索します。get_all()
ラウンドアバウトのようですが、空の文字列を検索しなくても、このメソッドを使用してすべての連絡先を取得できるはずです...
助けていただければ幸いです(ちなみに、これに関するドキュメントはありますか?ソースをじっと見つめ、そこからすべてのドキュメントを推測しようとすると、非常に不十分だと感じます!)
javascript - Gnome シェル拡張。ウィンドウの操作
プログラムでウィンドウを切り替えるにはどうすればよいですか? Alt+Tab と同じですが、ラベルなどはありません。
ドキュメントに目を通してみましたが、私には複雑すぎます (そうしないと言うことができますが、最初は何も知りませんでしたが、良いドキュメントの助けを借りてアクション スクリプトを学びました)。また、多くのライブラリと GObject-Introspection と呼ばれるものがあるため、正確にどこを見ればよいか完全に理解していません。そして、そこで何かを見つけようとすると、自分が何を探しているのかよくわからないので、迷子になります。それは一種の円です))。
他の拡張機能のソース コードも調べてみましたが、ドキュメントよりもさらに複雑です。私はかなりばかげているように聞こえますが、追いつくことができます。
では、ドキュメントなどで必要な方法を見つけることができる、ウィンドウの切り替えに対処する方法を知っている人はいますか?
gnome-shell - ドラッグ時のst_widget_get_theme_nodeエラー
開発中の拡張機能にドラッグアンドドロップシステムを実装しようとしていますが、問題が発生しています。私の知る限り、dndはdraggable
このようなオブジェクトを作成することで実装されます
this.actor
ドラッグアンドドロップして、必要なコールバックを実装したいクラッターアクターはどこにありますか。ただし、これを行うと、ドラッグを開始するとGnome Shellがすぐにクラッシュし、このようにstderrに出力が残ります。
ただし、Looking Glassを使用してget_theme_node
その特定のウィジェットのメソッドを呼び出すと、完全に機能します。
俳優を明示的にステージに追加する必要がありますか?そしてget_theme_node
、Gnome Shellの腹の奥深くで、Looking Glassからではなく、どこかで失敗する可能性はありますか?
linux - Gnome シェル拡張キーのバインド
<Super>+A
キーの組み合わせ (例: ) を gnome シェル拡張の関数に(グローバルに) バインドする最も簡単な方法は何ですか?
いくつかの拡張機能を調べたところ、次のコードに遭遇しました。
キーの組み合わせは schema パラメータで指定され、組み合わせを記述した XML ファイルを作成できることを理解しています。これを行う簡単な方法はありますか?
gnome-shell-extensions - GNOME シェル拡張機能の作成に関するドキュメント
GNOME 3 デスクトップのレイアウトをカスタマイズするよう依頼されました。どうやらそれを行う方法は、「拡張機能」を書くことです。
やりたかったことのいくつかは何とかできましたが、情報がまったく不足しているように感じます。どこにも有用なドキュメントが見つかりません。私は、有益な情報を見つけようと必死になって、ありとあらゆる検索用語を必死にグーグル検索して、人生の丸一日を無駄にしました。
GNOME Web サイトには、何百もの拡張機能がダウンロードできます。これらは単純な 3 ライナーではありません。それらは洗練されたコードです。方法を説明するドキュメントがなくても、誰でもこれらを作成できるという信念に逆らっています。
実際のドキュメントがどこにあるか誰か教えてください。これまでのところ、私ができる最善のことは、私が興味を持っている特定のビットを実行する魔法のコマンドを追跡しようとして、既存の拡張機能を分解することです. (簡単な作業ではありません!)
コマンド名、オブジェクト パス、サンプル プログラム、何でも役に立ちます。
c++ - gnome-shell アプレット/ウィジェットを作成していますか?
gnome-shell に統合されるシンプルなツールを作成しようとしています。ツールを「右上のコントロールバー」に統合したい:
右上のパネルにエントリを表示したいので、「ポップアップ」をカスタマイズする必要があります (図では、シークバーがある場所)。私の質問は次のとおりです。
- それらは何と呼ばれていますか?アプレット?ウィジェット?
- このバーは何と呼ばれていますか? ダッシュ?ドック?
- 完全に C/C++ で自分で作成するにはどうすればよいですか?
「GnomeShellExtensions」のリソース(いくつかのサードパーティの記事を含む) を読み、この「Migration to DBus」ガイドも見つけました。後のものを見ると、JavaScript でドック エントリを作成する必要があるようで、残りはネイティブ言語で行うことができます。これは私には奇妙に思えます。
したがって、これを完全に C/C++ で作成する方法を探しています。
NetworkManager (Dock/Bar の右側) も gnome-shell 拡張機能なしでそれを行うので (少なくとも何も見つからない)、それは可能であると思います。