问题标签 [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.
gnome - 如何通过 Gjs 将 Basic Auth 与 libsoup 一起使用
我正在尝试使用令牌查询 github 的 api。Github 的 api 接受生成的令牌,前提是它们作为基本身份验证标头发送。
如果在没有身份验证的情况下进行调用,API 不会返回 HTTP 401,这意味着如果想要使用基本身份验证查询他们的 api,则必须先发制人地填写标头,而不是进行往返。
我现在正在尝试使用 libsoup 和 Gjs 查询 API。
我注意到 SoupAuthManager 的功能似乎与我需要的完全匹配(此处为 soup_auth_manager_use_auth ),但找不到调用它的方法。
这可用于“预加载” manager 的身份验证缓存,以避免在您提前知道将返回 401 响应的情况下进行额外的 HTTP 往返
这是我目前使用的,但它不起作用,因为 SoupAuthManager 是会话的私有对象;因此对程序的实际行为没有影响
我可以使用其他方法在第一次旅行中强制进行基本身份验证吗?还是我可以从 gjs 使用其他库来调用 github 的 API 并强制进行基本身份验证?
gnome-shell - 在 Clutter Actor 中捕获移动事件,但对其他交互保持透明
我想构建一个突出显示鼠标光标的 Gnome shell 扩展。我有一个在所有其他窗口上方绘制的 Clutter Actor 的工作原型,但只有在测试画布后面没有其他窗口时才会跟踪鼠标移动。
我的印象是绘图在前景中,但指针信号在背景中。我想将移动信号提升到最前台,以跟踪移动并更新突出显示的位置,同时对所有其他 UI 交互保持透明,因此用户可以在鼠标光标突出显示打开时正常使用桌面.
额外的问题:这甚至是正确的方法吗?
javascript - 在 JavaScript 中创建动态重新调度 GSource
GLib 的主循环支持为周期性间隔调度回调函数,使用g_timemout_source_new和相关函数。回调将在预定的时间间隔后重复调用,直到它返回false
。
我现在想用动态间隔修改这个过程。回调应该能够返回一个时间值,而不仅仅是true
or ,该时间值应该传递到下一次调用。false
在 C 中这样做非常简单:可以创建一个新的 GSource 类型,它与调度函数中的超时源不同,然后在设置下一个过期时考虑返回值。
不幸的是,我正在为 GNOME Shell 编写扩展程序,所以我坚持使用 JavaScript。将上述策略移植到 JavaScript 的主要关键点似乎等同于g_source_new function
, new GLib.Source
. 首先,它需要初始化结构类型的长度,这将由sizeof
C 中的运算符计算。我不知道如何在 JavaScript 中获取该值。此外,尝试创建GSourceFuncs Struct是错误的,它是此构造函数的第二个参数,它是保存调度函数所必需的。
如何在 JavaScript 中创建新的 GSource?
javascript - 在 GNOME Shell 扩展中包含二进制组件
为 GNOME Shell 开发扩展主要涉及通过 GObject Introspection 使用 C API。这意味着使用 C 语言可以完成的大多数事情也可以在 JavaScript 中完成。但是在某些情况下,C API 的功能(还)不能通过自省绑定来重现。能够使用本机 C 代码弥合这些差距会很有用。
GNOME Shell 扩展可以包含从 C 代码创建的二进制组件吗?如果是这样,它们是如何集成的?
gnome - GNOME Shell 扩展可以移动指针吗?如果是这样,怎么做?
我想编写一个与 GNOME Shell 中的“焦点跟随鼠标”设置相反的扩展:我想让我的指针移动到当前焦点窗口的中心。
这可以在 GNOME Shell 扩展中完成吗?我看到一些包含xfixes cursor的 GNOME 代码,但我在核心 Javascript 或任何现有扩展中都找不到对编程指针更新的任何引用。(我只是不擅长谷歌吗?)
有效答案包括 (1) 执行此操作的示例代码或 (2) 引用说明无法完成的规范来源。
gnome - Gnome Shell 扩展覆盖 C API?
这可能是一个问题,答案可以是下降 gnome shell 扩展教程的 url,因为我没有找到。
我遇到的问题,我想用 Gnome 扩展来解决
在 gnome 设置守护进程中(参见https://git.gnome.org/browse/gnome-settings-daemon/tree/plugins/power/gsd-backlight-helper.c#n123),我想覆盖以下函数
我希望此方法始终返回 0,因为这样屏幕亮度的最低设置将变为 0,即漆黑一片,这最终让我在晚上听音乐时操作计算机,而无需一直打开屏幕。
基本上,XFCE、MacOS、Cinnamon 和其他人已经实现了这个,但 Gnome 出于某种原因走上了这条路。
所以,我的问题是:我可以覆盖或拦截对该函数的调用以始终从 Gnome 扩展返回 0 吗?
谢谢。
gnome - 如何检查 Gjs 类是否已经定义?
我正在编写首选项视图 GNOME shell 扩展和使用该imports.lang
函数以面向对象的方式编写应用程序时面临的问题。
第一次打开首选项窗口有效,但随后的窗口会引发以下错误:Error: Type name Gjs_MyWindow is already registered
. 第一次关闭窗口时,我收到此错误:TypeError: prefsModule.init is not a function
.
以下更具命令性的代码有效:
根据抛出的错误,我的猜测是该类正在被重新定义。如何避免重新定义并接收定义的类?(有没有我可以参考的文档?)
gnome - 如何自定义 GNOME Shell 搜索栏?
我想在 GNOME Shell 搜索结果中包含 stackoverflow、duckduckgo 和其他一些搜索结果。所以,我认为 GNOME Shell 扩展将是解决方案。可能吗?
linux - chrome-gnome-shell 导致崩溃?
我不确定这是否已经得到解答,因为我不确定这个问题。一天中至少有一次(有时更多)我收到 Ubuntu 崩溃的通知。该信息说它与chrome-gnome-shell
(我已重新安装chrome-gnome-shell
)有关。我也无法在以下位置列出我的本地 Gnome 扩展:https ://extensions.gnome.org/local/ 。在 Firefox 中使用browser console
,当我打开该页面时,我得到以下信息:
我正在运行 Ubuntu 14.04 Gnome (v3.8.4)、Linux 内核 4.4.0-71、Firefox 52.0.2 32 位。
关于什么是错的以及如何解决它的任何想法?