I (very occasionally) get asked what my dev setup is for Geary, so while `git bisect run` is running, here it is. In short:

* Emacs with vala-mode, dvc-mode and a minimal amount of customisation
* GNOME Terminal with custom per-project shell environments (".localrc")
* GDB for debugging
* Gitg for making git less terrible to use
* GNOME DevHelp/Web for docs
* The Open in Terminal extension for GNOME Files

Apologies for not using anything more fancy. :)


The Open in Terminal and .localrc bits deserves some explanation: I have bash configured with a custom shell function that runs from .bashrc. It looks at the current directory for a file named `.localrc` when bash is first loaded and if found imports it, then recursively climbs the directory tree doing the same until it reaches $HOME.

Since I use `~/Projects/$ORG/$PROJECT as my directory layout`, this gives me per-project custom shell environments.



The per-project and per-organisation .localrc files sets up anything from my git committer deets, to bash and gdb history files, the location of project source and build dirs, an updated PATH and LD_LIBRARY_PATH if needed, and so on. This allows things like gdb and emacs to find source files, build config and so on.

Most importantly, this gives per-project command histories, which are the main thing that stops me from using IDEs. Once you have this, you really don't want to go back.


When I want to start work on a project, I search for it in shell or in Files, and open its folder using Open In Terminal. This executes bash in that dir, loading the .localrc's and giving me the project's env and command history back, and away I go. The process is literally:

* Super+Space — GNOME Shell search opens
* G, E, A — project folder appears in the search
* ↓, ↓, Enter — folder opens in Files

Then open the folder menu, select Open in Terminal.

Way faster than an IDE startup.


The only thing sucky about this is that the third-party dvc-mode for Emacs has bitrotted badly. This was a vastly superior replacement to the built-in vc-mode (IIRC ESR maintains vc-mode these days, so no wonder it's a pile of shit that is stuck in the past). While DVC is now mostly unusable, it still at least provides an easy way to re-open files with local modifications in Emacs when returning to work on a project.


Anyway, that's it. It might be handy setting up symbol or docs lookup from Emacs one day, but tbh DevHelp search and command line tools like grep and xargs are just as good, and I get a history of things I have looked up using the latter, which I find much more useful.

So that's my development environment, what's yours?


@federicomena Oh, I should check that out. Especially now that I'm off Apple hardware again and have function keys back by default. :) Cheers!

@mjog so you want a distributed VC aware mode for emacs and you are using git? Then #magit is the answer to your problems.

Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!