All Dracula (Theme) Everything

When you spend a significant portion of each and every day staring at a computer screen, it’s important for things to look nice. Aside from just aesthetics, it can help reduce eye strain and improve productivity. With that in mind, we wanted to help spread the word about one of the best themes ever created: Dracula. I believe I first learned about the Dracula theme from someone I follow on Twitter, though enough time is passed that I’m not 100% positive on who or if that’s even where I really found it.

Dracula is a beautiful dark theme with a focus on pink, green, red, and white to give it a striking visual style that’s also easy on the eyes; it’s nice when working with code to see things stand out so clearly. One of the strengths of Dracula is also that it feels like it exists for everything.

Terminal.app

I spend a large portion of my day working out of Terminal.app on my MacBook Pro, and the Dracula theme fits with it perfectly. While you end up with a lot more white text here than in most text editors, the smooth color scheme still makes for something a bit more pleasing to look at than the stock green text on a blackbackground that I’ve used in my terminal emulators for decades.

Bonus

If you aren’t using zsh as your shell already, you should definitely consider switching to it!

Vim

Vim has been my text editor of choice for years now. While the learning curve is steep compared to a lot of other text editors, it’s honestly not too difficult to get started with the basics. Once you’ve got those covered, it’s easy to simply look up what you need when the need arises to expand your skills with it. After a little time, you can quickly become much more productive; I’m now significantly slower when navigting plaintext with a combination of arrow keys with Ctrl, Home, and End.

Caveat

The directions on the Dracula site for installing the theme with my favorite Vim plugin manager, Pathogen aren’t quite correct and assume you’ve done a few steps that many people will not have done. The directions instruct you to do this:

git submodule add git@github.com:dracula/vim.git bundle/dracula

This may give you the following error:

fatal: not a git repository (or any of the parent directories): .git

The error is very generic, so searching the Interwebs might not give you relevant results. The tl;dr is that you can’t clone a submodule via git into a directory that isn’t already a git repository. So if you’re in the ~/.vim directory you can remedy that by running:

git init .

I still got an error after running the original command, though:

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

I didn’t have git set up in a way to allow me to clone with that format, or maybe you’re intended to change the “git@github.com” to your own GitHub user information? I’m honestly not sure, but rather than screwing with it I just changed the URL to the https URI for the repository:

git submodule add https://github.com/dracula/vim.git bundle/dracula

This cloned without any issues.

Bonus

If you like my font in the screenshots above, I recenetly switched to using Cascadia Code from Microsoft. It looks terrific, is extremely readable, and works well in both text editors and the terminal. While I’ve stopped using it in favor of Cascadia Code, Fira Mona from Mozilla is also an extremely strong font if Cascadia isn’t your thing.

Atom

While I do most of my work in Vim, occasionally I’ll find myself wanting/needing a GUI-based editor. In those cases, my editor of choice is Atom from GitHub. It has a solid built-in package manager with a wide array of official and community-created plugins for language support.

Visual Studio Code

This one is more Brandi’s thing than mine, but Visual Studio Code is another terrific GUI text editor. It also has the best PowerShell plugin of any text editor, making it the de facto PowerShell editor if that’s what you work in (even though I still use Vim with vim-ps1.) Both Visual Studio Code and Atom are Electron applications, so you get a similar footprint and responsiveness with either of them. I say that as a warning since Electron apps can be a little on the slow side when launching them. More on that later.

Firefox

Hugo kudos to Brandi for discovering this one, but there’s even a Dracula theme for Firefox! As a privacy-focused individual, Firefox is my browser of choice on all of my laptops. I’ve spent years using and being happy with the default dark theme in Firefox, but Dracula just takes it to the next level. I really appreciate how subtle the theme is with just hints of pink you see around active menus or the currently active tab.

Honorable Mentions

Notepad++

Back when I was using a Windows laptop for my job, I’d do a lot of my code editing in Atom and/or Visual Studio Code. They’re great editors, but Electron apps can be a bit on the slow side given that you’re loading the Chromium runtime engine for it. Notepad++ was what I used as a backup when I just needed to quickly open a plaintext file for quick viewing and/or edits rather than a prolonged coding session.

Windows Terminal

Another holdover from when I used Windows for work, you may recall the podcast episode where we raved about the new Windows Terminal. While I no longer have a Windows 10 machine, if I did you can bet that I’d be using the Dracula theme with it.

Much like the elements in the Dracula theme… stay pink!

Pinebook Pro Follow-up: Manjaro Linux

I had written in early February about my Pinebook Pro laptop after roughly a month of using it. Now that significantly more time has passed, time which I’ve almost exclusively spent at home due to nationwide stay-at-home orders and social distancing, I figure I’d share some of my thoughts on the laptop I raved about initially, and more specifically what I’ve done with the operating system.

The OS

If you read my original post then you may recall that I was debating swapping the default Debian operating system for something different. While I mentioned NetBSD in the post I ended up installing Manjaro Linux instead. Why? There are a few reasons to consider.

One of the biggest reasons why swapping the OS can be considered important is that there are some issues with the Debian build that came on my device. It’s a custom setup put together by a community member. It looks incredible, but that comes at a cost; the highly customized environment means that many things in it cannot be updated; this includes both Chromium and Firefox. Running outdated browsers isn’t exactly cool, and I wasn’t too keen on having to compile Firefox from source every time there was a new release.

On the other hand many of the community members seemed to really love Manjaro Linux, so I figured I’d gvie it a shot. Along with people in the Pinebook community raving about it, it’s also been hovering near the top of Distrowatch for a while now. In fact it was announced in March that Manjaro was going to be the default OS for new Pinebook Pro devices, which is pretty slick! They’re shipping with the KDE variant, though, and while I’ve read about people having a good experience with that, I personaly prefer the more lightweight XFCE desktop. It’s lighter, simpler, and overall I feel like it’s a better fit for the Pinebook Pro.

Getting The OS

As something of a noob when it comes to working with open source SoC setups like a Rock64 or Raspberry Pi, I struggled a little with figuring out exactly how to install a new OS on the Pinebook Pro. The first thing I figured out is that, currently, you cannot boot the Pinebook Pro from USB. I made a few bootable flash drives like I would’ve historically used when installing Linux on a more traditional device without success. The Pinebook Pro wiki seems to contradict itself on this point, saying:

The Pinebook Pro is capable of booting from eMMC, USB 2.0, USB 3.0, or an SD card. It cannot boot from USB-C. The boot order of the hard-coded ROM of its RK3399 SoC is: SPI NOR, eMMC, SD, USB OTG.

Then in the very next paragraph it says:

At this time, the Pinebook Pro ships with a Debian + MATE build with uboot on the eMMC. Its boot order is: SD, then eMMC. Booting off USB storage is not currently available, but will be in the future.

I wouldn’t put it past myself to just be misunderstanding something, though, so your mileage may vary. As you might be able to guess from the quotes shared above, I just ordred a cheap microSD card online and used that for the OS installation; everything worked great.

For Manjaro specifically, the best way to get the proper image is to go to the forum announcement for the latest version, like this one for the 20.04 release. There you can select the appropriate link for your Pinebook Pro and for your preferred desktop environment. Once you select that, you’ll be taken to another page like this one listing all of the images files you can download for that version and desktop environment.

Be aware that if you want to install Manjaro directly on the laptop, be sure to grab the image file with “emmc-installer” in the file name! This is the image designed to be flashed onto the internal eMMC storage of the Pinebook Pro! Grabbing the image without this will simply create a microSD card that will run the OS. This isn’t bad if you’d like to try out Manjaro while leaving the Debian installation on your eMMC, but I wanted to go all-in.

Preparing Your Media

To prepare the media, you can use basically any option that’ll allow you to flash the .img file you downloaded onto the microSD card. You can be old-school and use dd from the command line, but I went easy mode and used balenaEtcher instead.

The Rest

The boot order on the Pinebook Pro automatically has the microSD card slot above the eMMC, so once you have a microSD card prepared just insert it into the Pinebook Pro, boot the device, and follow the prompts; it’s honestly pretty simple to install. The only catch is a known bug with the 20.04 release where you have to hit Esc while looking at the Manjaro logo after booting from the microSD card before it’ll move forward; as a known bug I would imagine this won’t be relevant for future releases.

When the Manjaro logo has been present for about 15 seconds, press ESC (this is a bug, we know).

Once it’s all done, you boot to this gorgeous view!

Caveats

For the most part, Manjaro works like a complete dream, and I’ve been extremely happy with it. There are just a couple of caveats that might be worth mentioning, though.

Initial Update

First, there was a bug when running the initial software update on the factory image. First I had to figure out how to update it, but after some quick DuckDuckGo-fu (since I’ve really only used Debian-based flavors of Linux before) I figured I could update Manjaro via:

sudo pacman -Syyu

Note that you can aslo just click the little shield icon in the bottom-right corner of the screen. Regardless of method, though, immediately after booting my new OS I would get the following error when attempting to update:

Conflicting files: nss /usr/lib/p11-kit-trust.so already exists in filesystem

Another benefit to choosing Manjaro is that it has an extremely active community, so it’s easy to search on errors like this and get solutions! I quickly found a YouTube video covering this error and providing the solution:

sudo pacman -Syyu --overwrite /usr/lib*/p11-kit-trust.so

After that initial update succeeded I’ve been able to perform subsequent updates without needing the --overwrite parameter. Updating via the GUI also works.

Swap

It’s entirely possible I just made a mistake in my installation, but I eventually realized that I didn’t have a swap partition or file. I realized this because I noticed that the battery drain while under suspend was a bit severe; I was losing roughly 6% of my battery per hour. This meant that leaving the device on suspend for a day would completely drain a full battery. I changed my XFCE setting so that when closing the lid of the device it would hibernate. This gave me an error, though, that I didn’t have enough swap space to hibernate.

I checked the output of htop and realized that I didn’t have enough space because I didn’t have any swap. Luckily for me, the Manjaro folks have a wiki page dedicated to exactly this; I ended up following the steps to create a swapfile rather than adjusting my partitions to have a swap partition. Since there are 4 GB of RAM in the Pinebook Pro, I ended up creating a 4 GB swap file. Once it’s created you can verify it by looking at htop or running swapon. If you’re concerned about the amount of storage on the eMMC, you can see how much you’re using via:

df -H | grep /$

Typing and the Touchpad

One thing I’ve noticed on occasion is that typing does not disable the touchpad on the laptop, meaning that it’s easy for your hand to accidentally brush it, clicking somewhere else and causing a bit of havoc on whatever it is you’re trying to do. I’ve accidentally done it once just while working on this article. I’ve not found a solution for this yet (I’ll update the post if I do), but it hasn’t been a big deal for me. It’s just something to be mindful about.

The End

On the whole, I’m extremely pleased with my switch to Manjaro. If you’re running a Pinebook Pro with the original Debian build, I’d highly recommend giving Manjaro a shot; it honestly feels like a whole new device afterward.

Keep the open source love alive, and stay pink!