According to the stars and forks1, the Beamer theme that I introduced a year ago has filled a longstanding desire for a theme that has a simple and clean default look. It started as a one man effort but over the year I received a lot of contributions from many people, first and foremost from Benjamin Weiss – author of the HSRM theme that was a huge inspiration for this theme – and Ross Churchley. With their help, the theme transformed from a stupid hack into a polished and highly customizable Beamer theme called Metropolis that is now available on CTAN2. In this post, I will quickly go through the most important changes.


Many aspects of the layout that were formerly hardcoded can now be modified using pgfkey-based package options. For example, to change the per-frame progress bar and disable the frame numbering, you can simply pass the following options when loading the theme


The color theme is also normalized and derives the entire look from only a few color specifications. For instance, to modify the general look you would change the normal text and alerted text colors:


% Theme colors are derived from these two elements
\setbeamercolor{alerted text}{fg=Orange}

% ... however you can of course override styles of all elements

Although, Metropolis is mostly recognized as a Fira Sans theme, the hard dependency quickly became a major pain point for some folks unwilling or unable to install Fira Sans. With the current version it is finally possible to compile a theme with PdfTeX or override the font as usual with

\setsansfont[BoldFont={Source Sans Pro Semibold},
              Numbers={OldStyle}]{Source Sans Pro}

You may have noticed that the frame title does not sport small caps by default anymore. We disabled them because there were too many problems lowercasing the title and typesetting the title with \textsc{}. However, if you are like me and prefer the small caps styling, you can get them back easily with


As you can see, \metroset{} can be used within the document to change options on the fly. Moreover, there is a second option for a semi small caps style, i.e. all uppercased letters have a slightly larger x-height:



Originally, the entire theme was documented using the top-level README. With a growing number of options this approach became a bit tedious and the README totally overcrowded. Moreover, distribution on CTAN and the likes recommends a proper manual in PDF format. Thus, we moved all documentation to a real manual and limit the README to installation and basic usage information. The manual itself is now derived from the documented TeX source.

The future

This is the first version in a series of stable releases, so you can expect a better theme – but still adhering to its core principles – soon. Nevertheless, the theme lives from outside contributions, be it code or bug reports, so do not hesitate to contact us on GitHub.

  1. As of now the repository has been starred more than 800 times and cloned by more than 150 people.

  2. … and TeXlive and MikTeX.

It’s time for the forth installment of updates concerning my Vim configuration. Unlike previous years, I made a lot less changes to my .vimrc over the year. Although, my Vim configuration converges towards a stable setup, I am still not one hundred percent satisfied with. My biggest gripe is a change in NeoComplete that sometimes completes gibberish at inappropriate times, for example when I hit the return key for a new line, NeoComplete it completes whatever it suggested on the previous line.

You will be surprised to hear that I sticked with Plug as my go-to plugin manager. There is no new one on the scene or at least none that would make any difference. However, I started to lazy-load all plugins as much as possible in order to improve startup latencies.

The behind-the-scences plugin highlight of the year is Gutentags. It’s a non-obtrusive way to generate tags for a project. Before that I updated the Ctags file with a keymap, however, that obviously causes out-of-sync problems from time to time. But these times are long forgotten.

Concerning newly acquired builtin Vim mechanics: I fully embraced the f, t, ; and , keys that I wrote about, resulting in huge productivity gains!

That’s it for this year. If you have any Vim secret sauce: let me know!

Even though I could reduce the pain of using git-annex on the command line with a Ranger plugin, the weird concept and the workflow concerning files which are not read-only let me use it less and less. Moreover, when collaborating with others, I could feel that Dropbox does something right with their system which was not possible to with git-annex in any way. However, since Dropbox is a US-based, commercial system, I was looking for alternatives …

Peer-to-peer synchronization with Syncthing

Syncthing is a dead simple tool to organize arbitrary synchronization networks between devices. Install the syncthing binary and point your browser to localhost:8384. Each device that you run Syncthing on gets a device ID – a secure certificate really – for identification. Devices who know each others device IDs form your personal cluster. You can then setup shared folders between subsets of that cluster that are then synchronized securely using TLS.


As you can see, I run Syncthing on three different machines, one is currently off, while the one I currently configure and another are able to synchronize. Note, though that Titan and ipemv1 cannot reliably see each other1, I use an intermediate device to distribute data from these four folders. This device’s rescan interval is set to a relatively large value because I usually won’t change data from there.

Running Syncthing on a VPS

To have a real Dropbox replacement you will need at least one server that is always on – for example a cheap VPS – which will act as the intermediate file server. Be aware though that in case you want to configure this server via the internet, you will either have to secure the connection with HTTPS2 and set up a user and a password or tunnel the HTTP port via SSH to your local machine.

To enable HTTPS, you replace the https-cert.pem and https-key.pem in ~/.config/syncthing or use the default created by Syncthing and modify

<gui enabled="true" tls="false">

in ~/.config/syncthing/config.xml accordingly. To enable SSH tunneling, just forward the remote port (in this case 8384) to some local port which you then use to access the configuration page:

$ ssh -L 9876: whereever
$ firefox http://localhost:9876

Ignoring these measures could seriously harm your setup!

Long-term use

Because I only set up this system recently, I do not have any long-term experiences to share with you. Most importantly, I have no clue how often and severe conflicts happen or if the delta sync algorithm is good enough for my use cases. Only time will tell, but so far I am more than happy to retire git-annex for a much simpler setup.

  1. One is behind the home router, the other only accessible via VPN. Moreover, either one is off while the other is on.

  2. One more good reason to get a free certificate.

Craft beer and home brewing is a hip topic for quite some time already. For almost three years now, two friends of mine and I have been brewing various top-fermented beers. We started with small batches made entirely by hand and went up to semi-automatic mashing and better controlled equipment1.

Although we tried to document the entire brewing and fermenting process from the get-go, we were always lacking the discipline to keep a good journal. Moreover, we did not have a place to store this in an accessible way for later review of the final products. In the long run, this would have helped improving our recipes over time. Better late than never, Max sat down and made this thing a reality: our Jekyll-based Noerdbier home. Right now, you can find our current batch of a dry-hoped IPA, a regular stout and a chocolatey modification of that stout. So, if you speak German, head over to Noerdbier.

  1. You can find our open source control software at GitHub.