【问题标题】:gnome development resourcesgnome 开发资源
【发布时间】:2011-01-20 01:56:16
【问题描述】:
为了好玩,我正在尝试为 gnome 编写一个轻量级的 autohotkey 克隆。我真正希望它能够做的就是:
- 移动/最大化/最小化现有应用程序窗口
- 启动 gui 应用程序(firefox、gedit 等)
- 更改系统音量
- 从系统托盘运行
我真的不知道从哪里开始。查找有关 gnome dev 的最新信息本身非常困难,我发现的大部分内容都是用于构建简单的 gui 应用程序。我还没有找到任何关于如何获取活动应用程序列表和操作它们的窗口等等的信息。任何人都可以指出至少哪些工具对这类事情有好处吗?我在 ubuntu 上,一直在 ajunta/glade 和 ruby-gnome2 中玩弄。用于此类事情的 ruby 库将是完美的。
【问题讨论】:
标签:
ruby
gnome
autohotkey
ruby-gnome2
【解决方案1】:
我还没有找到任何关于如何获取活动应用程序列表和操作它们的窗口等等的信息
你看过GnomeLove吗?
【解决方案2】:
我认为一个合理的解决方案是用 js 编写一个 gnome3 shell 扩展 - 这很可能是最好的方法之一......我将尝试一下
【解决方案3】:
我还没有找到任何关于如何获取活动应用程序列表和操作它们的窗口等等的信息。
您需要sudo apt-get install 包wmctrl(用于获取活动windows 列表,而不是应用程序)和xdotool(用于操作从wmctrl 获得的窗口ID) .
获取窗口标题可以通过正则表达式“FOO”唯一匹配的应用程序的窗口ID:
wmctrl -l | grep "FOO"
仅获取该窗口的窗口 ID(使用 cut 命令仅检索第一列):
wmctrl -l | grep "FOO" | cut -d' ' -f1
完成上述所有操作,然后将找到的窗口 ID 分配给变量:
BAR=$( wmctrl -l | grep "FOO" | cut -d' ' -f1 )
要(例如)最小化现在由存储在 BAR 变量中的 ID 标识的窗口:
xdotool windowminimize $BAR
玩得开心!
PS:这是一个gist of a shell script I wrote,它将上述步骤捆绑在一起。