从命令行中获取Gdk Gtk的警告和错误信息

在最新版本的Ubuntu(11.10)中,当我从命令行运行时,每次打开一个窗口时,Gtk都会大声抱怨(多行)。问题显然出在主题上 - 如果我将默认主题从Ambiance更改为High-Contrast,这个问题就消失了。以下是一些示例:
travis@hydrogen:~$ emacs foo.txt
(emacs:1550): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
(emacs:1550): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
(emacs:1550): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
(emacs:1550): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
(emacs:1550): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
(emacs:1550): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
(emacs:1550): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
(emacs:1550): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",

travis@hydrogen:~$ evince test.pdf 
(evince:1566): GLib-GObject-WARNING **: g_object_set_valist: construct property "enable-gestures" for object `EvView' can't be set after construction
(evince:1566): Gdk-CRITICAL **: gdk_window_get_pointer: assertion `GDK_IS_WINDOW (window)' failed
(evince:1566): Gdk-CRITICAL **: gdk_window_get_pointer: assertion `GDK_IS_WINDOW (window)' failed
(evince:1566): Gdk-CRITICAL **: gdk_window_get_pointer: assertion `GDK_IS_WINDOW (window)' failed

我喜欢这些主题,不想放弃它们。我该如何修复来自Gtk的命令行冗长输出?我可以简单地通过修改命令行来过滤掉这些消息,但我真的不喜欢那个想法。 可能相关 从之前的版本中:如何摆脱奇怪的错误行...
1个回答

无法在模块路径中找到主题引擎:"pixmap" 的消息是一个已知的错误

要修复它,请安装gtk2-engines-pixbuf 安装 gtk2-engines-pixbuf

从运行 Evince 得到的警告是一个单独的错误。据我所知,目前还没有解决方法。


3那个错误似乎只涉及到evince的第一个警告,而不是gdk_window_get_pointer的断言失败。 - dutchie
@dutchie, 是的,那是真的。 手势警告与bug 873866相关联。 - poolie
6如果您正在使用64位系统,但使用32位软件会弹出那些警告,您可以尝试执行以下命令:sudo apt-get install gtk2-engines-pixbuf:i386 - math
1在Trusty中,gtk2-engines-pixbuf存在未满足的依赖关系。"gtk2-engines-pixbuf: 依赖于libgtk2.0-0 (= 2.24.23-0ubuntu1),但要安装的版本是2.24.23-0ubuntu1.1"。 如何修复14.04上的这个错误? - foki
对我来说,这对于与IntelliJ Idea相关的事情非常有帮助。 - Ajeeb.K.P
sudo apt-get install gtk2-engines-pixbuf 可以正常工作。 - Prasanth Ganesan