我想开发GNOME Shell扩展,发现它很容易进入开发过程,但我仍然无法弄清楚如何有效地调试/测试我的扩展.
有没有为此目的的工具?在现代浏览器或javascript服务器环境中是否有任何类型的实时控制台?
背景:我正在开发一个名为ActivityWatch的软件,它可以记录您在计算机上执行的操作.基本上是尝试解决一些问题:RescueTime,selfspy,arbtt等.
我们做的核心事情之一是关于活动窗口(类和标题)的日志信息.在过去,这已经在Linux上使用xprop和现在的python-xlib而没有问题.
但现在我们遇到了一个问题: Wayland正在崛起,据我所知,Wayland没有一个活跃窗口的概念.因此,我担心我们必须为Wayland可用的每个桌面环境实施支持(假设它们将提供获取有关活动窗口的信息的能力).
希望他们最终能够融合并拥有一些共同的界面来完成这项工作,但我并没有屏住呼吸......
我一直在期待这个问题.但今天我们得到了Wayland用户对Wayland支持的第一个用户请求.由于较大的发行版采用Wayland作为默认的显示服务器协议(Fedora 25已经在使用它,Ubuntu将在17.10中切换即将推出)随着时间的推移情况将变得更加重要.
ActivityWatch的相关问题:
还有其他应用程序,如ActivityWatch需要相同的功能(RescueTime,arbtt,selfspy等),他们似乎现在似乎不支持Wayland,我找不到任何有关他们计划这样做的细节.
我现在有兴趣实现对Gnome的支持,从而开始并跟进其他人,因为路径变得更加清晰.
这里有一个类似的关于韦斯顿的问题:在wayland weston中获取活动窗口的列表
编辑:我在Freenode的#wayland问道,得到了以下回复:
15:20:44 ErikBjare Hello everybody. I'm working on a piece of self-tracking software called ActivityWatch (https://github.com/ActivityWatch/activitywatch). I know this isn't exactly the right place to ask, but I was wondering if anyone knew anything about getting the active window in any Wayland-using DE.
15:20:57 ErikBjare Created a question on SO: https://stackoverflow.com/questions/45465016/how-do-i-get-the-active-window-on-gnome-wayland
15:21:25 ErikBjare Here's …
Run Code Online (Sandbox Code Playgroud) 我发现很难找到有关Gnome Shell Extensions的文档.我在Gnome Wiki上发现了一些内容(它是第一级链接),但它并不多:
http://live.gnome.org/GnomeShell/Extensions
这里的问题是GJS和它的绑定.绝对没有文档,有很多SIGSEGV,绑定还没准备好(GLib,Gio等).唯一可行的是从GIR为种子JavaScript实现生成的非官方文档:
http://roojs.org/seed/gir-1.2-gtk-2.0/seed/
哪里可以获得更多例子?我想读取目录,文件,生成进程,打开网络套接字和做其他事情.
更新:演示如何在GJS中逐行读取文件.根据谷歌这是不可能的.谢谢.
我是gtk和gnome编程的新手,喜欢研究GTK + 3.0和Gnome 3编程.由于这两个都是最近的API,我找不到关于这些主题的好的教程或博客文章.我在GTK +或GNOME编程中找到的书很老.所以我决定从http://developer.gnome.org/gtk-tutorial/开始使用最新的gtk教程,目前恰好是GTK + 2.90.7.
我需要您的帮助才能找到任何教程或博客或任何涵盖GTK + 3.0或GNOME 3编程主题的书籍.您能否分享您对这些主题的任何链接,并提前感谢您.
我想知道,JavaScript/CSS引擎的类型和版本Gnome 3
也在Gnome Shell
使用?
有关于当前版本等的信息吗?
如何添加事件或其他方法来监听gnome shell扩展上的按键?例如,显示一个对话框,每个按键显示按下的键?
我找不到任何例子.该文件提到了一个keyboard
模块,而是与通用名称搜索是困难的.
Class explanation
...
- General utils
- Keyboard: Manage and define the keyboard events, etc. for gnome shell.
Run Code Online (Sandbox Code Playgroud)
(在上面作为上面链接的文档的引用阅读.它被设计为代码,因为由于某种原因引用样式不保留此站点中的换行符)
我找到了一些使用波纹管代码的扩展,其结果类似于我的要求,但我再次找不到特定类和方法的文档:
workViewInjections['_init'] = injectToFunction(WorkspacesView.WorkspacesView.prototype, '_init', function(width, height, x, y, workspaces) {
this._pickWorkspace = false;
this._pickWindow = false;
this._keyPressEventId = global.stage.connect('key-press-event', Lang.bind(this, this._onKeyPress));
this._keyReleaseEventId = global.stage.connect('key-release-event', Lang.bind(this, this._onKeyRelease));
connectedSignals.push({ obj: global.stage, id: this._keyPressEventId });
connectedSignals.push({ obj: global.stage, id: this._keyReleaseEventId });
});
Run Code Online (Sandbox Code Playgroud)
此外,没有任何名字keyboard
在那里命名...
-
edit1:更多搜索...我想我可能不得不使用Clutter
api.但同样,没有太多的例子或文件.我去的最远的是这个
edit2:更多搜索.在主ui树上查看gnome shell源代码,我认为答案是使用global
扩展代码可用的提到的对象.例如
global.connect('key-press-event', function(if, i, …
当我想执行一个文件,似乎我总是先"CD"到该文件所在的目录执行它,除非它失败的一个不容找到-MY-DATAZ类型的错误了.
如何键入两个命令才能执行程序?
例:
cd /usr/local/bin/minecraft/
java -Xms512M -Xmx2048M -jar minecraft.jar
Run Code Online (Sandbox Code Playgroud)
如何将它组成一行,以便在Gnome3中创建自定义启动器时将其作为我的Exec = _行?
我在Ubuntu 12.04 LTS 64 Bit(使用Gnome Shell)上使用Java JDK 1.8.0_05通过NetBeans8.0在Java中运行一些代码.
当在Main或其他空Java项目中调用时,以下函数可以正常工作,但是当从任何JavaFX应用程序调用时,它会导致窗口冻结并停止响应(尽管项目完全符合),要求它强制关闭.
任何人都可以建议我写的可能导致问题或循环的问题吗?
唉,由于失败的模式,我没有提供或分析的错误信息.
感谢任何建议,提前感谢.
public static void desktopTest(){
Desktop de = Desktop.getDesktop();
try {
de.browse(new URI("http://stackoverflow.com"));
}
catch (IOException | URISyntaxException e) {
System.out.println(e);
}
try {
de.open(new File("/home/aaa/file.ext"));
}
catch (IOException e){
System.out.println(e);
}
try {
de.mail(new URI("mailto:email@example.com"));
}
catch (URISyntaxException | IOException e){
System.out.println(e);
}
}
Run Code Online (Sandbox Code Playgroud) 我想禁用Gnome 3通知/弹出窗口/集成通知(如果这对他们来说甚至是正确的术语).例如,当您通过Empathy接收IM或Rhythmbox开始播放新曲目时,它们会显示通知.
我已经下载了Gnome 3 Tweak Tool,但在那里找不到解决方案.我搜索了谷歌,Gnome网站和本地帮助(通过F1),但无法找到解决这些问题的方法.我欢迎这里的解决方案或指示链接.
我还查看了我的主目录和/ usr/share目录中的所有隐藏文件,并运行了一些针对"Notification"的grepping(不区分大小写)的find命令及其各种子字符串.
我试过这个http://www.youtube.com/watch?v=HvNm3BnymAE,但这并未阻止通知发生.
信息:
Fedora 15 2.6.40.6-0.fc15.i686 GDM 3.0.4
我正在构建一个Gnome shell扩展,我希望能够使用升级的权限做一些事情.所以,我想我需要使用"政策工具包",但我不知道如何去做这件事.
所以,说我想做点什么ifconfig eth0 down
或者做什么ifconfig eth0 up
我可以从终端运行:pkexec ifconfig eth0 down
它会提示输入密码然后再进行操作.
但是,我应该如何从扩展内部做到这一点?
我很确定它与在/ usr/share/polkit-1/actions中创建文件有关,但我在互联网上找不到任何东西.
我希望能够设置它,以便不需要输入密码,扩展只需运行某个命令.
我知道允许任何命令运行是一个非常糟糕的主意.这不是我要求的,我希望能够只运行一个程序/命令.
编辑:我不确定,但我认为没有必要输入密码可能是不可能的.我只是知道sudo第一次没有问一段时间的密码,所以我想要类似的功能.不确定有什么可能.