实现gnome桌面的全局热键
2011-12-12 17:07
656 查看
gtk+-2.0 没有提供全局热键的功能,而需要使用GConf和 metacity才能得到该功能。
不过有个叫 Mikkel Kamstrup Erlandsen <mikkel.kamstrup@gmail.com> 的人写了一个
libgtkhotkey ,可以提供该功能,而且是跨平台的。
在Fedora系统上,安装libgtkhotkey
$ su
# yum install libgtkhotkey-devel
基本用法
#include <gtkhotkey.h>
链接参数: `pkg-config --cflags --libs gtkhotkey-1.0`
使用方法(编程):
1、注册hotkey:
// used to register the hotkey
static void register_hotkey() {
GtkHotkeyInfo *hotkey_info = gtk_hotkey_info_new("gtkxrandr", "projecter", "<Super>F3", NULL);
if ( hotkey_info == NULL ) {
printf("error 1\n");
}
if ( FALSE == gtk_hotkey_info_bind(hotkey_info, NULL) ) {
printf("[error] can not bind hotkey\n");
}
else {
g_signal_connect(hotkey_info, "activated", G_CALLBACK(hotkey_handler), NULL );
}
}
2、在gtk中捕捉 actived 信号:
// called when the user pressed the combination key.
static void hotkey_handler(GtkHotkeyInfo* hotkey, guint event_time, gpointer user_data) {
// add your code here
}
3.在初始化的时候调用 register_hotkey
int main ( int argc, char* argv[]) {
//...
register_hotkey();
//...
}
不过有个叫 Mikkel Kamstrup Erlandsen <mikkel.kamstrup@gmail.com> 的人写了一个
libgtkhotkey ,可以提供该功能,而且是跨平台的。
在Fedora系统上,安装libgtkhotkey
$ su
# yum install libgtkhotkey-devel
基本用法
#include <gtkhotkey.h>
链接参数: `pkg-config --cflags --libs gtkhotkey-1.0`
使用方法(编程):
1、注册hotkey:
// used to register the hotkey
static void register_hotkey() {
GtkHotkeyInfo *hotkey_info = gtk_hotkey_info_new("gtkxrandr", "projecter", "<Super>F3", NULL);
if ( hotkey_info == NULL ) {
printf("error 1\n");
}
if ( FALSE == gtk_hotkey_info_bind(hotkey_info, NULL) ) {
printf("[error] can not bind hotkey\n");
}
else {
g_signal_connect(hotkey_info, "activated", G_CALLBACK(hotkey_handler), NULL );
}
}
2、在gtk中捕捉 actived 信号:
// called when the user pressed the combination key.
static void hotkey_handler(GtkHotkeyInfo* hotkey, guint event_time, gpointer user_data) {
// add your code here
}
3.在初始化的时候调用 register_hotkey
int main ( int argc, char* argv[]) {
//...
register_hotkey();
//...
}
相关文章推荐
- 一个实现系统全局热键的模块
- Qt实现全局热键
- 构建Linux系统之实现Gnome桌面
- C#实现全局热键响应,失去焦点情况下响应全局快捷键的方法
- 如何实现全局热键
- 第三方包jintellitype实现Java设置全局热键
- VC下简易实现全局热键--无DLL无钩子(Register HotKey)
- Java设置全局热键——第三方包jintellitype实现
- Qt 全局热键的实现
- 英特尔和Red Hat合作实现Gnome桌面的Wayland支持
- QT全局热键的实现
- Java设置全局热键钩子——第三方包jintellitype实现
- C#实现全局快捷键(系统热键)响应(转)
- 在Ubuntu 12.04上安装GNOME实现XRDP远程桌面访问ubuntu
- 调用win32 API,实现全局系统热键小结
- Windows编程实现自定义全局热键
- 英特尔和Red Hat合作实现Gnome桌面的Wayland支持
- 调用win32 API,实现全局系统热键小结
- Windows编程实现自定义全局热键
- Java设置全局热键——第三方包jintellitype实现