问题标签 [gnome-shell]

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 回答
210 浏览

javascript - 将不包含任何内容的javascript对象转换为字符串

我正在为 gnome-shell 编写扩展。javascript 扩展产生一个 sql 查询并在标准输出上捕获输出。在 sql 查询计算为 0 个元组/记录的情况下,我的扩展程序崩溃了。

下面是代码片段。

我是一个javascript新手。我不明白out在这种情况下应该如何处理对象。对象不为空;也不是未定义的。

编辑

0 投票
1 回答
1451 浏览

javascript - 无法使用 GSettings 更改 dconf-entry

我目前正在Gjs上构建一个简单的应用程序,它应该会更改我的 gnome-shell 的背景图像。可以在此处找到有关如何使用gsettings-tool完成此操作的解决方案。

因为我想围绕它构建一个桌面应用程序,所以我想org.gnome.desktop.background.picture-uri通过使用 Gio 的GSettings-class来更改 -key 。但是使用set_X()- 方法不会改变键的值。

这是我更改 gsettings 值的代码:

读取值确实按预期工作,is_writable()- 方法返回trueset_string()- 方法也返回true

我已经检查过我没有处于“延迟应用”模式并且密钥有一个GVariantType字符串,所以set_string()- 方法应该可以工作。

使用普通的gsettings命令行工具(如链接帖子中所述)工作得很好。

我无法弄清楚问题是什么,有什么地方可以查找日志或其他东西吗?

0 投票
2 回答
1106 浏览

linux - Gnome shell 权限提升

我正在构建一个 Gnome shell 扩展,我希望能够以升级的权限做一些事情。所以,我想我需要使用“策略工具包”,但我不知道该怎么做。

所以,假设我想做类似ifconfig eth0 downifconfig eth0 up

我可以从终端运行:pkexec ifconfig eth0 down它会提示输入密码,然后执行。

但是,我应该如何从扩展内部做到这一点?

我很确定这与在 /usr/share/polkit-1/actions 中创建文件有关,但我在互联网或其他地方找不到任何东西。

我希望能够对其进行设置,以便无需输入密码,并且扩展程序可以随时运行特定命令。

我知道允许运行任何命令是一个非常糟糕的主意。这不是我想要的,我希望能够只运行一个程序/命令。

编辑:我不确定,但我认为可能不需要输入密码。我只知道 sudo 在第一次之后一段时间内不会要求输入密码,所以我有点想要类似的功能。不确定有什么可能。

0 投票
1 回答
547 浏览

javascript - 使用 Gnome-Shell JS 接口获取联系人列表

我刚刚开始摆弄编写 gnome-shell 扩展,并且想知道如何获取用户拥有的联系人列表。

我已经找到了一些可能的文件:gnome-shell/js/ui/contactDisplay.jsgnome-shell/src/shell_contact_system.c.

现在我注意到shell_contact_system.c以下函数:

这表明在 javascript 界面中我可以使用函数(我的信念被文件也有 a并演示了使用get_all的事实加强了),所以我尝试:.cshell_contact_system_get_individualcontactDisplay.jsShell.ContactSystem.get_default().get_individual

有用!(我正在 Gnome-shell 的“镜子”javascript 解释器中尝试它)。

它似乎是一个“Gobject”,所以我不知道如何处理这个对象来获取我的联系人姓名。我注意到(从 C 代码)这个对象是 a GeeMap *,所以查看Gee.Map 的文档,我发现我可以执行以下操作:

然后我尝试查看contacts.valuesand contacts.key,并注意到这些to_array()方法具有:

但是,当我这样做时,我会得到一个空数组contacts.xxx.to_array().size是 0,但是contacts.size是 31 吗?!!

当我尝试使用 acontacts.map_iterator()遍历地图时也会发生同样的情况;it.get_value()并且it.get_key()似乎为空。

所以,我的问题是:如何访问 的各个元素contacts

我确实注意到评论shell_contact_system_get_allReturns: (transfer none): ...while shell_contact_system_get_individualsays Returns: (transfer full): ...,并且后一个功能有效(前提是我知道我要查找的个人的 ID,这是我的问题),而前者没有。这可能与它有关吗?

此外,作为一种解决方法,我目前可以使用contactSearchProvider该类来实现这一点(当您安装gnome-contacts可以键入联系人姓名的位置时,概览将使用该类,它们将出现在概览中)。我基本上搜索''哪个应该返回我每个联系人的列表。不过,这似乎是迂回的-我觉得我应该能够使用该get_all()方法来获取所有联系人,而无需搜索空字符串...

任何帮助将不胜感激(顺便说一句,是否有任何关于此的文档?当我盯着源代码并尝试从中推断出所有文档时,我感到非常不合适!)

0 投票
1 回答
2669 浏览

python - Python:无法打开转换后的位图图像文件,使用 PIL 转换

如何使用 PIL 将 JPG 文件转换为 BMP?尝试使用 Image.open('ifile.jpg').save('ofile.bmp', 'BMP') 但我在尝试打开文件时得到一个“伪造的标题数据”。

尝试了使用 PIL 将 RGBA PNG 转换为 RGB中所述的复制/粘贴方法,但它也不起作用。

0 投票
1 回答
227 浏览

javascript - Gnome-shell 扩展。使用窗户

如何以编程方式切换窗口?我的意思是像 Alt+Tab 一样,但没有任何标签或其他东西。

我试图查看文档,但它对我来说太复杂了(你可以说不要这样做,但我在一个好的文档的帮助下学习了动作脚本,虽然一开始并不知道)。而且我不明白到底该往哪里看,因为有很多库和一些叫做 GObject-Introspection 的东西。当我试图在那里寻找东西时,我会迷失在那里,因为我真的不知道我在寻找什么。这是一个圆圈))。

我也试过看其他扩展的源代码,但比文档还要复杂。听起来我很笨,但我可以赶上它。

那么,有谁知道如何处理切换窗口,我可以在哪里找到我需要的文档或其他方法?

0 投票
1 回答
786 浏览

c - 阅读 Gnome Shell 通知

我需要阅读 gnome-shell 通知以在事件 X 发生时发送电子邮件(例如成功下载 torrent)。是否有我可以在 C 代码中读取/设置的文件或回调?

0 投票
1 回答
349 浏览

c++ - Gnome 3 上的 SFML 1.6 全屏崩溃

我正在尝试使用 SFML 的全屏模式进行测试,但是每次窗口进入全屏模式时它都会崩溃。这是我的程序:

我用这个命令用一个makefile编译它:

g++ -o build/Test -lsfml-system -lsfml-window -lsfml-graphics src/main.cpp

当我从终端运行程序时它崩溃了:

build/Test 1440 900

build/Test

我在 Apple Macbook Air (4, 2) 上运行 ubuntu linux 12.04。我尝试同时使用 gdm 和 lightdm,它们都有相同的结果。此外,它适用于 gnome 2、unity 和 openbox,但不适用于 gnome 3。

我不介意乱搞配置文件,但我想继续使用 gnome shell,因为它目前是我最喜欢的 DE。

0 投票
0 回答
297 浏览

python - 在 Python 中具有内联响应的 GNOME Shell 通知

我发现 GNOME Shell 中最有用的功能之一是能够直接从通知中响应 IM。但是,我找不到任何关于如何创建这样的通知的文档。可以用 Python 完成吗?

这就是我所指的

0 投票
2 回答
3019 浏览

dbus - 在 Gjs / Gnome Shell 中调用 DBus 方法

如果我有总线名称、对象路径和接口,我如何从 Gjs(在 gnome-shell 扩展中)调用 DBus 方法?

我正在寻找以下 python 代码的等价物:

(请注意,由于某些 python-dbus 魔术,我没有显式使用该接口,但我可以使用iface = dbus.interface(obj, "org.gnome.SessionManager.EndSessionDialog")。由于我有接口名称,我可以使用查询它的解决方案。另请注意,此示例将是在 Gjs 中很傻,因为它回调到 gnome-shell)