Xfce Forum

Sub domains
 

You are not logged in.

#1 2015-08-19 00:50:30

TiZ
Member
Registered: 2009-03-05
Posts: 14

GObject Introspection?

Hi there! I know my username is frightfully similar to ToZ, but I'm not him and he's not me.

I'm the maintainer of xfce4-dockbarx-plugin and xfce4-namebar-plugin. The latter is a straight port using the Vala bindings, and the former is a hack using a Vala socket and a Python plug, since DockbarX is very complex and porting it would be a gargantuan task. Also because the python bindings for Xfce have been out of date for a very long time. If it weren't for the fact that there is no Python binding, DockbarX could include its own xfce4 panel plugin as part of its distribution.

I know that keeping bindings up to date is a thing that requires man hours, which XFCE currently lacks. But then I remembered GObject Introspection. It is a tool that creates metadata with which bindings can be automatically generated, and for lots of languages. Right now, the only languages with which you can write anything for XFCE (its panel, anyways) are C and Vala, the latter of which is manually bound.. GObject Introspection gives you automatic bindings for Vala (+ Genie), Python, Ruby, Lua, JavaScript, Java, Perl, Scheme, Guile, Go, and more.

As someone who wants to write for XFCE without being bound to C or Vala, what is the viability of XFCE adopting GIR?

Offline

#2 2015-08-19 11:38:33

ToZ
Administrator
From: Canada
Registered: 2011-06-02
Posts: 10,948

Re: GObject Introspection?

Hi.
Thanks for the plugins that you've created and maintain. Always nice to see Xfce development.

I think you'll have a better chance getting an answer to this question if you posted this directly to the developers at the xfce4-dev mailing list.


Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki  |  Community | Contribute ---

Offline

#3 2015-08-19 11:43:56

TiZ
Member
Registered: 2009-03-05
Posts: 14

Re: GObject Introspection?

I appreciate your appreciation. smile

I'd love to do that, but it's using HSTS with an expired certificate so Firefox refuses to go to that site even with exceptions, and googling the issue tells me that this is not nearly the first time this has happened. Is the project really so strapped that we can't keep security certs up to date? sad

Last edited by TiZ (2015-08-19 11:44:46)

Offline

#4 2015-08-19 12:03:19

ToZ
Administrator
From: Canada
Registered: 2011-06-02
Posts: 10,948

Re: GObject Introspection?

I noticed that as well. Unfortunately, I don't know why it hasn't been corrected yet.

You can also try them on the #xfce-dev IRC channel.


Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki  |  Community | Contribute ---

Offline

#5 2015-08-19 12:04:13

TiZ
Member
Registered: 2009-03-05
Posts: 14

Re: GObject Introspection?

I'm kind of a noob at mailing lists, so I think I'll try to talk to them on IRC instead for now. Thanks for your guidance.

Offline

#6 2015-08-22 06:55:36

eric_the_idiot
Member
Registered: 2011-12-23
Posts: 58

Re: GObject Introspection?

Hey! I've made an attempt to make a couple Xfce modules use GObject Introspection, https://bugzilla.xfce.org/show_bug.cgi?id=12159 and https://bugzilla.xfce.org/show_bug.cgi?id=12160

For the panel I'm guessing we need to export all the panel dependencies (garcon + garcon-gtk, xfconf, and exo) in addition to these two. So it doesn't look very hard and makes it easy for others to use those libraries.

If you could check out the results of those two patches and see if it exports stuff correctly then I can go ahead and write patches for the rest.

Offline

#7 2015-09-03 14:02:06

TiZ
Member
Registered: 2009-03-05
Posts: 14

Re: GObject Introspection?

Hi there. I've been meaning to look into this, but work and school really ramped up so I haven't had time until now. So I have to apply those patches to xfce4ui and xfce4util, and... install them, to get them to output the GIRs, I guess? Not particularly comfortable with installing patched dev packages while I'm running Xubuntu. hmm Do you happen to have the exported GIRs to upload somewhere? I could just drop those into my system GIR directory and see if python and the like can use them. (Hopefully I'm not fundamentally misunderstanding how this all works...)

Last edited by TiZ (2015-09-03 14:04:09)

Offline

#8 2017-06-23 14:16:45

TiZ
Member
Registered: 2009-03-05
Posts: 14

Re: GObject Introspection?

Hi there! I'm resurrecting this dead-AF thread, because I saw that work on it seems recently revitalized. I checked on some bug reports and saw that GIR was completed for libxfce4util and libxfce4ui, and is moving forward on garcon. I'm really thankful for this.

I know GTK3 XFCE4 is coming, and that it'll break DBX plugin, which has miraculously continued to build for the panel without any changes for a long time. I could grab that docker container for the developer version of XFCE4 so I can fix it and be ready*... or I could throw my weight behind this, which would be so much better for the long term. I'm even willing to pay bounties on this, if that's something we're allowed to do.

What do you need me to do to help move this forward? I know you wanted me to test GIR bindings. If I grab the docker image for the development version, could I test the GIR bindings there?

* I just remembered that DockbarX is GTK2, and switching my plugin to use GIR might mean trying to drop a GTK2 widget into a GTK3 panel. I might *have* to do it this way to make it work, but I still want to invest in GIR.

Last edited by TiZ (2017-06-23 14:21:02)

Offline

#9 2017-06-23 16:50:39

eric_the_idiot
Member
Registered: 2011-12-23
Posts: 58

Re: GObject Introspection?

Hey! Testing and reporting feedback/issues with it would be awesome. I believe the xfce-test docker image should do the trick, otherwise there's https://github.com/EricKoegel/buildbot-xfce which builds Xfce core and -apps (not plugins yet) from git master. You may have to modify the https://github.com/EricKoegel/buildbot- … ate.yml#L6 if you only want to build for one VM instead of all of them.
Gtk2 plugins should work with a Gtk3 panel... I can also see about getting introspection into the panel as well.

Offline

#10 2017-06-23 17:15:46

TiZ
Member
Registered: 2009-03-05
Posts: 14

Re: GObject Introspection?

Thanks for your reply, and for all the work you've been doing. I'll definitely have to give that docker image a go; I've always felt uncomfortable trying to install development stuff in any capacity since I want to keep a working stable environment.

GTK2 plugins work in a GTK3 panel? That's really great news, actually. That might mean maybe I don't actually need to do anything for the DBX plugin to keep working, and a DBX plugin closer to the "metal" using GIR will still work. That's something I'll definitely have to test!

Last edited by TiZ (2017-06-23 17:16:00)

Offline

#11 2017-06-27 09:26:34

Jristz
Member
From: Sud-America
Registered: 2011-06-02
Posts: 111

Re: GObject Introspection?

TiZ wrote:

GTK2 plugins work in a GTK3 panel?

yeah, they work and xfce4-panel in gtk3 I read still work with GTK2 plugins, BUT you need to take care of migrating it to GTK3 because later for 4.16 maybe that support will be removed.


XFCE :: Arch Linux
:: AMD E-300 APU with Radeon(tm) HD Graphics @ 1300 MHz
:: Advanced Micro Devices, Inc. [AMD/ATI] Wrestler [Radeon HD 6310]
:: LED with aspect ration of 16:9 in 14.0'' (1366x768) [Radeon driver]

Offline

Board footer

Powered by FluxBB