Bender DD 2: Running Gnome Apps Outside of Builder

🖊️ 🔖 code linux bender gnome 💬 0

Builder is pretty neat as an IDE for GNOME. For bootstrapping a new GNOME app, I found it to be downright amazing. Once I started getting down to writing actual code however, Builder’s limitations started to become apparent. Christian Hergert is doing an amazing job writing an IDE but wow, it must be an uphill battle trying to turn a GTK text widget into a full blown text editor. Honestly if it used embedded Neovim it could be perfect; Builder does have VIM emulation which was almost good enough, but the undo stack is buggy and caused me to lose 30+ minutes of work at one point. The second time it happened, I started to look for ways to work on Bender outside of Builder.

It’s not entirely clear what commands Builder uses to run an application. But as of this writing the bootstrapped application is a Flatpak app utilizing Meson as the build system. Armed with that knowledge, we can use the following commands to build and launch the app from it’s working directory:

flatpak-builder flatpak-build-dir com.my.App.json --force-clean --user --install
flatpak run com.my.App//master

Replace com.my.App with your application’s ID.

The first time you run these commands, you’ll run into errors.

First, check the modules section of the com.my.App.json file. You’ll find something that looks like this:

"type": "git",
"url": "file:///home/mario/Documents"

It needs to be edited to either point to a real git repo, or changed to point to the actual project directory:

  "type": "dir",
  "path": "/home/mario/Documents/Bender"

If you see a validation error about a missing metadata, edit the data/com.my.App.metainfo.xml.in file to include a summary:

<component type="desktop">
    ...
    <summary>If you ain't crashin, you ain't smashin</summary>
</component>

There may be other issues, but the errors should make them obvious.

Now you can throw those initial commands in a Makefile or some script and you’re writing GNOME apps in your editor of choice!

Here is Bender launched by the ctrl+b shortcut in Sublime Text:

Bender launched from Sublime Text