我正在开发 Firefox NPAPI 插件 + XPCOM 组件。我遇到了一个难题:给定从 Internet 下载的文件(例如 PDF 或 PNG),我如何启动默认的帮助应用程序以使用 C/C++ 在 Linux 上显示该文件?
目前我正在使用system函数调用来调用gnome-open命令并将文件路径传递给它。这适用于 GNOME 桌面,但它不适用于具有不同桌面环境(包括 KDE)的 Linux 平台。
所以我的问题是:有没有标准的统一方法来解决这个问题?有什么建议吗?任何帮助将不胜感激!
我一直在使用gedit作为编程文本编辑器......
我想将最近打开的文件数从5增加到10 ......
我查看了gedit首选项和gconf-editor gedit选项,但没有任何与最近打开的文件列表相关的内容.
我在哪里可以更改此设置?
我开始为 Gnome 编写一个小面板小程序,我希望用户能够左键单击状态图标以查看一些选项和信息,例如类似于 Gnome 3 中的声音图标,您可以在其中设置音量通过左键单击,而通过右键单击设置首选项。右键代码是这样的:
statusicon.connect("popup-menu", right_button_click)
Run Code Online (Sandbox Code Playgroud)
right_button_click在右键单击事件中调用的函数的名称在哪里。重要的部分是"popup-menu"。设置左键单击事件的替代方法是什么?
我想在我的程序中捕获通过 GUI 登录的用户名。我的程序从 root 登录作为守护进程运行。如果非 root 用户通过 GUI 登录,则应通知我的程序。我正在粘贴我当前的程序,它调用一个 perl 脚本,利用系统调用来检查谁是当前登录的用户。我也在粘贴我的 perl 脚本以供参考。
#include <X11/Xlib.h>
#include <X11/Xos.h>
#include <X11/Xfuncs.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
int main()
{
char *user;
char buf[1024];
int fd, ret;
fd = open("/tmp/log", O_TRUNC|O_RDWR|O_CREAT);
if (!fd) {
printf("Error opening file\n");
exit(1);
}
chmod("/tmp/log", S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP
| S_IROTH | S_IWOTH | S_IXOTH);
daemon(0, 0);
while (1) {
system("perl /home/curr-usr.pl");
sleep(5);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
用于获取当前用户登录的 perl 脚本。
#!/usr/bin/perl
my …Run Code Online (Sandbox Code Playgroud) 我经常想在使用emacs时键入Alt + Shift +〜(运行其命令"not-modified").但是,自从升级到Debian Wheezy(将Gnome升级到3.4)后,我发现当我输入这些键时,Emacs不会"听到"键击; 相反,我看到一个弹出窗口,看起来就像我在按下Alt + TAB时看到的窗口(除了这个窗口只有一个图标,对于Emacs,而不是Alt + TAB带来的窗口,它有每个应用程序的一个图标).
我已经以明显的方式修复了许多类似的偷窃键问题:我点击屏幕右上角的名字,从下拉菜单中选择"系统设置"; 单击"键盘"图标,单击"快捷方式"选项卡,检查右侧的每个条目,看看它是否是有罪的一方; 如果是这样,我禁用它.但是,在这种特殊情况下,我找不到任何引用波形符或反引号键的条目,所以我不知道要删除什么.
我也尝试检查输出,gconftool-2 --recursive-list看看我是否能找到任何可能的东西,但看不到任何看起来相关的东西.
我目前正在使用DIA来创建Er图表.用户界面语言是"GERMAN".我想把它改成"ENGLISH".有没有人知道如何做到这一点?
我做了一些研究,发现我必须删除lib/locale文件夹,DIA会将EN设置为默认的lanmguage.我这样做但仍将德语设为默认语言.
我的操作系统:Windows 7许可证版本语言:德语
有任何想法吗?
我正在尝试构建一个我有一段时间没有重新访问过的项目。我以 GNOME 应用程序的典型方式使用 GNU 自动工具。现在,当运行autogen.sh(反过来使用gnome-autogen.sh)时,我收到以下错误:
automake: warnings are treated as errors
configure.ac:47: warning: The 'AM_PROG_MKDIR_P' macro is deprecated, and its use is discouraged.
configure.ac:47: You should use the Autoconf-provided 'AC_PROG_MKDIR_P' macro instead,
configure.ac:47: and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.
autoreconf: automake failed with exit status: 1
[simon:~/git/toddlerfun] master(+2/-2) 1 ±
Run Code Online (Sandbox Code Playgroud)
问题似乎源于 gettext,运行此错误报告中的命令给出了相同的结果:
$ grep -ri AM_PROG_MKDIR_P m4
m4/intl.m4: AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
m4/po.m4: AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
$ head -n1 m4/po.m4 …Run Code Online (Sandbox Code Playgroud) 我很好奇gsettings是否可以用于存储对象,还是必须静态设置所有内容?诸如用户对象之类的对象可以存储在gsettings中吗?是否可以在每个用户上使用固定属性添加和删除用户?
GSK是一个不会引人注意的后端更改(对于大多数GTK开发人员来说都是Wayland)还是会合法地改变我们所有人看待和编写小部件的方式?
与此引用有关的另一个问题:
任何使用GTK图形控件元素(小部件)的应用程序,而不是那些获得GTK窗口然后在其上绘制自己的应用程序,>受益于GSK.
作为GNOME平台上的应用程序开发人员,这对我有什么影响?
我试图编写脚本,将x.desktop项目添加到18.04中的gnome启动器中。
在unity(16.04)中,您可以使用:
gsettings set com.canonical.Unity.Launcher favorites XYZ
但我无法在gnome中计算出等效项(如果甚至存在)。我发现以下问题:
org.gnome.gnome-panel.launcher:/