问题标签 [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.
javascript - 将不包含任何内容的javascript对象转换为字符串
我正在为 gnome-shell 编写扩展。javascript 扩展产生一个 sql 查询并在标准输出上捕获输出。在 sql 查询计算为 0 个元组/记录的情况下,我的扩展程序崩溃了。
下面是代码片段。
我是一个javascript新手。我不明白out
在这种情况下应该如何处理对象。对象不为空;也不是未定义的。
编辑
javascript - 无法使用 GSettings 更改 dconf-entry
我目前正在Gjs上构建一个简单的应用程序,它应该会更改我的 gnome-shell 的背景图像。可以在此处找到有关如何使用gsettings
-tool完成此操作的解决方案。
因为我想围绕它构建一个桌面应用程序,所以我想org.gnome.desktop.background.picture-uri
通过使用 Gio 的GSettings
-class来更改 -key 。但是使用set_X()
- 方法不会改变键的值。
这是我更改 gsettings 值的代码:
读取值确实按预期工作,is_writable()
- 方法返回true
,set_string()
- 方法也返回true
。
我已经检查过我没有处于“延迟应用”模式并且密钥有一个GVariantType
字符串,所以set_string()
- 方法应该可以工作。
使用普通的gsettings
命令行工具(如链接帖子中所述)工作得很好。
我无法弄清楚问题是什么,有什么地方可以查找日志或其他东西吗?
linux - Gnome shell 权限提升
我正在构建一个 Gnome shell 扩展,我希望能够以升级的权限做一些事情。所以,我想我需要使用“策略工具包”,但我不知道该怎么做。
所以,假设我想做类似ifconfig eth0 down
或ifconfig eth0 up
我可以从终端运行:pkexec ifconfig eth0 down
它会提示输入密码,然后执行。
但是,我应该如何从扩展内部做到这一点?
我很确定这与在 /usr/share/polkit-1/actions 中创建文件有关,但我在互联网或其他地方找不到任何东西。
我希望能够对其进行设置,以便无需输入密码,并且扩展程序可以随时运行特定命令。
我知道允许运行任何命令是一个非常糟糕的主意。这不是我想要的,我希望能够只运行一个程序/命令。
编辑:我不确定,但我认为可能不需要输入密码。我只知道 sudo 在第一次之后一段时间内不会要求输入密码,所以我有点想要类似的功能。不确定有什么可能。
javascript - 使用 Gnome-Shell JS 接口获取联系人列表
我刚刚开始摆弄编写 gnome-shell 扩展,并且想知道如何获取用户拥有的联系人列表。
我已经找到了一些可能的文件:gnome-shell/js/ui/contactDisplay.js
和gnome-shell/src/shell_contact_system.c
.
现在我注意到shell_contact_system.c
以下函数:
这表明在 javascript 界面中我可以使用函数(我的信念被文件也有 a并演示了使用get_all
的事实加强了),所以我尝试:.c
shell_contact_system_get_individual
contactDisplay.js
Shell.ContactSystem.get_default().get_individual
有用!(我正在 Gnome-shell 的“镜子”javascript 解释器中尝试它)。
它似乎是一个“Gobject”,所以我不知道如何处理这个对象来获取我的联系人姓名。我注意到(从 C 代码)这个对象是 a GeeMap *
,所以查看Gee.Map 的文档,我发现我可以执行以下操作:
然后我尝试查看contacts.values
and 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_all
说Returns: (transfer none): ...
while shell_contact_system_get_individual
says Returns: (transfer full): ...
,并且后一个功能有效(前提是我知道我要查找的个人的 ID,这是我的问题),而前者没有。这可能与它有关吗?
此外,作为一种解决方法,我目前可以使用contactSearchProvider
该类来实现这一点(当您安装gnome-contacts
可以键入联系人姓名的位置时,概览将使用该类,它们将出现在概览中)。我基本上搜索''
哪个应该返回我每个联系人的列表。不过,这似乎是迂回的-我觉得我应该能够使用该get_all()
方法来获取所有联系人,而无需搜索空字符串...
任何帮助将不胜感激(顺便说一句,是否有任何关于此的文档?当我盯着源代码并尝试从中推断出所有文档时,我感到非常不合适!)
python - Python:无法打开转换后的位图图像文件,使用 PIL 转换
如何使用 PIL 将 JPG 文件转换为 BMP?尝试使用 Image.open('ifile.jpg').save('ofile.bmp', 'BMP') 但我在尝试打开文件时得到一个“伪造的标题数据”。
尝试了使用 PIL 将 RGBA PNG 转换为 RGB中所述的复制/粘贴方法,但它也不起作用。
javascript - Gnome-shell 扩展。使用窗户
如何以编程方式切换窗口?我的意思是像 Alt+Tab 一样,但没有任何标签或其他东西。
我试图查看文档,但它对我来说太复杂了(你可以说不要这样做,但我在一个好的文档的帮助下学习了动作脚本,虽然一开始并不知道)。而且我不明白到底该往哪里看,因为有很多库和一些叫做 GObject-Introspection 的东西。当我试图在那里寻找东西时,我会迷失在那里,因为我真的不知道我在寻找什么。这是一个圆圈))。
我也试过看其他扩展的源代码,但比文档还要复杂。听起来我很笨,但我可以赶上它。
那么,有谁知道如何处理切换窗口,我可以在哪里找到我需要的文档或其他方法?
c - 阅读 Gnome Shell 通知
我需要阅读 gnome-shell 通知以在事件 X 发生时发送电子邮件(例如成功下载 torrent)。是否有我可以在 C 代码中读取/设置的文件或回调?
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。
python - 在 Python 中具有内联响应的 GNOME Shell 通知
我发现 GNOME Shell 中最有用的功能之一是能够直接从通知中响应 IM。但是,我找不到任何关于如何创建这样的通知的文档。可以用 Python 完成吗?
dbus - 在 Gjs / Gnome Shell 中调用 DBus 方法
如果我有总线名称、对象路径和接口,我如何从 Gjs(在 gnome-shell 扩展中)调用 DBus 方法?
我正在寻找以下 python 代码的等价物:
(请注意,由于某些 python-dbus 魔术,我没有显式使用该接口,但我可以使用iface = dbus.interface(obj, "org.gnome.SessionManager.EndSessionDialog")
。由于我有接口名称,我可以使用查询它的解决方案。另请注意,此示例将是在 Gjs 中很傻,因为它回调到 gnome-shell)