xbar: BREAKING: BitBar Reboot

reboot

The objective-C (objc) codebase for BitBar (as well as the evolution of the os and Xcode underneath it) have created myriad issues that make maintaining, bug-fixing, and adding features very difficult.

Thanks to some great work around the community, there are a few projects that continue to give BitBar hope. Given my 11+ years experience in Go, I have decided to push forward with a reboot, written in Go.

The goals of the reboot are:

  • A complete rewrite from the ground up
  • Backwards compatible so all existing BitBar plugins work
  • Modern language (Go, not objc)
  • Quality tests (this will improve maintenance and allow us to bug fix and add features with confidence)
  • A brand new name 🤭

We will also launch it with some new features that were troublesome to get right in the objc codebase. Including, but maybe not limited to:

  • Streaming plugins (long-running executables)
  • Managed preferences (to avoid having to edit the code to customise the plugins)
  • A better user experience

The project is underway and I expect to be able to share more in March/April 2021. At that point, I think I’ll make a new main branch in this repo (to keep the stars and credit for past contributors) and switch to the fresh codebase that way.

I want to send thanks to everybody who has contributed, and apologies to those who submitted PRs to BitBar that haven’t been accepted. Your work and ideas are still helpful for the rewrite, and you’ll get the credit for that.

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 150
  • Comments: 18 (6 by maintainers)

Most upvoted comments

It’s a bit off topic, but I was astonished by the toxicity of some of the comments on the proposed merge with SwiftBar! Both authors were super chill about the entire thing. But some people - who aren’t even contributors to either project! - had so much negative energy…

I’m using neither BitBar nor SwiftBar, and this is the first time I’ve ever heard of either. I simply stumbled upon this discussion today by pure chance.

I’m writhing this message because I just wanted to send kudos to you @matryer for keeping such a positive and polite attitude through this discussion! Thanks for making the web a better place! And ignore the toxic comments: I’m sure the vast majority of your users, even though silent, really appreciate what you do for them! 😄

Of course not.

Thanks @maxwellainatchi - I found somebody working on Go tech that mirrored BitBar’s capabilities, and they’d unlocked a few key challenges which enabled a rewrite in my favourite language. For years I’ve been unable to contribute in a meaningful way as the Objective-C knowledge slowly left my body. It wasn’t an easy decision, but my attempt to blend the two projects received a somewhat frosty reception from some, and it’s not my style to try and force people to do things they don’t want to do. Not to mention, I wouldn’t be able to easily contribute in Swift.

The Go rewrite is well underway now, scheduled for beta release next month and so far, I’m genuinely excited by it.

OMG that is such awesome news ! Can’t wait for BitBar to rise again !

Got it, thanks @matryer! That probably explains why its missing from Brew Cask as well.

Hey @chrismetcalf - thanks for your question.

xbar is still in beta, and isn’t quite ready for production. But if you’re feeling adventurous, you can run xbar alongside BitBar, and report back any problems you encounter. xbar is designed to be backwards-compatible with BitBar plugins, so there’s no work to do there, unless you want to make use of new features like Variables (more info in the root readme).

To get xbar BETA:

  1. Download the latest release of xbar
  2. Copy your BitBar plugins to the new location ~/Library/Application Support/xbar/plugins
  3. Run xbar instead of (or as well as) BitBar

@StevenACoffman we’re not using macdriver but a very similar technique. That is a cool project though. I’ll share more details about it when it’s firmed up in a few weeks. Thanks for your interest.

Seems odd not to have given @Swiftbar a heads-up you were doing this - especially after first raising the proposal to merge the two

Hi, since not everybody can install Xbar right away and many are still using BitBar, please could you post information on the READMEs of xbar and xbar-plugins about the backwards compatibility of plugins.

I can’t find the old repo to download BitBar plugins for my BitBar, so I need to know if Xbar plugins (was the repo literally renamed?) are sure to work.

I only found this thread after some digging.

Backwards compatible so all existing BitBar plugins work