问题标签 [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 - 使用 Soup 使用具有基本身份验证的 Web 服务
作为 gnome-shell 扩展的一部分,我尝试使用 xmlrpc 使用 Web 服务。Web 服务需要一个基本的身份验证标头。使用 Soup,我得到了以下代码(基本上是来自伟大的 openweather 扩展的蓝图):
我正在使用 Soup 来建立连接。在执行队列回调之前执行验证信号。
尽管如此,在回调的开头,response_body 持有状态码 401 而不是预期的授权。给定的凭据不正确。更正后,呼叫通过。但是,您总是需要以这种方式对提供程序进行两次调用:第一次获取它使用 BasicAuth 的信息,第二次实际进行调用。
有没有办法在第一次调用时直接提供身份验证信息?
introspection - 使用 GObjectIntrospection 异步调用 GnomeKeyring
我正在编写一个 gnome-shell 扩展程序,显示电话(或电)等预付卡的当前余额。由于这需要给定服务的凭据,我不想将密码存储在 gsettings 中,而是作为 gnome 密钥环中的条目。
目前,我使用同步方式向密钥环询问登录名和密码
这个同步。方法的弱点是,密钥环需要已经打开或提示密码对话框。当使用自动登录启动 gnome-shell 时,这个同步调用会阻止实际启动 shell - 所以不可能输入密钥环密码。
Gnome Developer Wiki命名异步方法
- GnomeKeyring.unlock
- GnomeKeyring.find_items
但两者都没有在javascript 环境中找到。
我在哪里可以找到 fedora23 下的 GnomeKeyring-Gir 文件以确认缺少缺少的异步功能?如何实现异步密钥环打开和密码检索?有人看到完全不同的可能方法吗?每一点都有帮助...
glib - gjs/gnome-shell-extension:从 url 读取远程 jpg 图像并设置为图标
我正在尝试通过允许检索远程图像(jpg)并设置为某个小部件的图标来改进 gnome-shell 扩展。
这是我到目前为止得到的,但由于数据类型不匹配,它不起作用:
这是回调:
我的问题是,如何解析响应,这是一个 jpg 图像,以便我可以用它设置小部件图标?非常感谢!
javascript - addActor 不是函数
我正在开发 gnome shell 的扩展。我的扩展需要一个滑块到状态区域的指示器。我在设置它时遇到了一些问题,我在这个稍微过时的参考上编写了我的代码,主要问题是源代码中缺少“PopupSliderMenuItem”。所以我做了一些研究,发现它被删除了。此提交有更多信息。
所以我试图在提交时遵循这个(更新的)代码:
我将此代码重构到我的项目中,它看起来像这样:
第一个块在 gnome-shell 源代码上(它设置音量滑块)。我的代码(第二个块)在“addActor”行中抛出了这个异常:
任何人都知道为什么会发生此错误?最奇怪的是,PopupBaseMenuItem 类的源代码有我正在调用的函数。
如果您需要任何其他信息,我很乐意提供。
gnome-shell - 对 Gnome 扩展进行编程以禁用左边缘拖动手势以显示应用选择器
如果这是在错误的组中,我向所有人道歉。
我们想在 Kiosk 模式下使用 Fedora 23,但最近添加了一个左边缘滑动功能,该功能已添加到 Gnome Shell ( https://github.com/GNOME/gnome-shell ) ,不能轻易禁用。
https://github.com/GNOME/gnome-shell/commit/9c4ffc4bf353fe9c64368f3e194e38b0e8f61311
据我所知,我们的选择是:
1)写一个扩展来解决这个问题——我的最爱
我们与原作者交谈,他建议通过扩展删除手势。
我们已经尝试编写扩展,但无法找到一种方法来遍历 global.stage 中的手势列表以将其删除。
(这些手势是使用添加的global.stage.add_action(gesture)
,可以使用删除global.stage.remove_action(gesture)
。)
此后作者不再回复我们的电子邮件:(
任何关于这方面的建议都会很棒!
2)检查我们正在使用的版本,注释掉代码,重新编译并安装到我们的机器上
这听起来很棒!这样我们也可以修复其他错误。查看 README 文件
https://github.com/GNOME/gnome-shell/blob/master/README
它说:
有关 GNOME Shell 的更多信息,包括有关如何操作的说明
从源代码构建 GNOME Shell 以及如何参与该项目,
见 https://wiki.gnome.org/Projects/GnomeShell
因此,我们将其跟踪到此页面:
https://wiki.gnome.org/Newcomers/BuildGnome
这告诉我们要检出 JHBuild,但当我们使用 JHBuild 时,我们似乎无法弄清楚机器上的 gnome shell 代码在哪里检出。
如果有更简单的制作/安装方法,那就太好了。我们可能只是点击了错误的推荐链接。
3) 回滚到早期版本的 gnome shell
但这让我们回到了检查 gnome shell 和 make/install 的问题,如 #2 所示。
4) 切换到 KDE
我们可以尝试 KDE 而不是 Gnome,但我们已经在 Gnome 中进行了大量测试,这可能是一个重大挫折。
5) 构建一个 Fedora 22 机器以返回 Gnome 3.16——我最不喜欢的
这是一项巨大的努力,我们无法确定哪些发生了变化,哪些会中断。我们的 Kiosk 软件甚至可能无法在 Fedora 22 上运行。但这是万岁的备用计划
gnome-shell - 如何在 Gnome Shell 中获取击键
我正在尝试编写我的第一个 Shell 扩展,并且 - 正如每篇博客文章一样 - 我因缺乏最新文档而苦苦挣扎......
也就是说,我试图从键盘上获取所有击键,并且 - 查看在线代码和旧邮件列表消息 - 似乎直到最近正确的做法是:
但是,这似乎不起作用。功能set_stage_input_mode
和属性StageInputMode
似乎都消失了,至少在我运行 GTK 3.20.6 的 Fedora 24 上。
让我的扩展程序抓取用户执行的所有击键的正确当前方法是什么?
gnome-shell - 有没有办法为 GNOME-Shell 扩展编写单元测试
我目前正在尝试重构现有的 gnome-shell 扩展的代码库。部分原因是引入单元测试,因为在 2016 年不使用测试似乎相当疏忽。
经过一番修补后,我设法设置了一个有效的 node-phantomjs-qunit 管道,它实际上可以让我到达某个地方。
但是,shell 扩展使用自定义imports
-mechanic 以及一些修改来构建类(例如:String.format
通过 GJS),这使得无法在隔离环境中实际测试这些文件,即:不在shell 内。
所以我的问题是:真的不可能为 shell 扩展编写单元测试吗?
gnome-shell-extensions - 从 gnome 扩展将统一数组传递给 CSGL 着色器
我有一个声明这个制服的 CSGL 着色器......
我正在编写一个 gnome 扩展,它试图在 extension.js 中使用以下代码进行设置...
但是,对 set_uniform_value() 的调用失败。有没有办法从 extension.js 将数组值传递给 CSGL 着色器?
javascript - Soup - 带有身份验证的 POST 请求
我正在开发一个 Gnome-shell 扩展,但我一直在使用 Soup 联系服务器。基本上,我想发送一个可以在身份验证后执行的 POST 请求。如果已通过身份验证,则响应为 JSON 内容,如果未通过身份验证,则响应内容为 HTML,即站点的欢迎页面。到目前为止,这是我的代码:
根据响应,我可以看到身份验证请求运行良好,但第二个请求返回了 HTML 内容。我通过发送这两个请求签入了 SoapUI,当我设置选项“维护 HTTP 会话”时,它运行良好(我得到了一些 JSON 内容)。
因此,我认为我session
在发送第二个请求时不存储身份验证。您知道我在这里缺少什么,以便将身份验证保存在我的会话中吗?
我也尝试使用以下链接中的一些提示,但没有成功:Consume a webservice with basic authentication using Soup
在此先感谢您的帮助。
javascript - Mutter/Window Groups 如何在 Gnome 中工作?
Gnome 3 的 Shelltile-Extension(https://extensions.gnome.org/extension/657/shelltile/您还可以在其中找到指向 github 的链接)可以对 Windows 进行分组,以便 Gnome 将它们视为一个。
我想了解这是如何完成的,因为它看起来可能对我有用......
查看源代码表明魔法隐藏在 javascript 库 imports.gi.Meta 中,这将我指向 Mutter 和 Gnome,但它们的文档(https://developer.gnome.org/meta/stable/core- reference.html)对于这个主题的新手来说不是很有帮助,或者至少对我来说......有更多信息吗?
(当然,可能是我查看了源代码的错误部分并且我可能看错了方向......无论如何,感谢任何帮助!)