Resource-Efficient Raspbian Apps

linux, hardware, raspberry pi, workflow
Resource-Efficient Raspbian Apps

Last time, we configured our Raspberry Pi setup to be faster and more usable across a range of network and workload conditions. To conclude, we shall look at lightweight app replacements to use on Raspbian.

We already know the Raspberry Pi Zero is a relatively low-spec machine, so maximizing its resource usage is paramount to remaining productive when using it as a desktop OS.

Terminal Slack client

Many companies use Slack, but the official Linux Slack client is memory and CPU intensive due to the way it uses the Electron framework). If emojis, reactjis, and inline GIFs are not absolutely mandatory, slack-term can provide a viable alternative.

You will need to compile this app from source to run it on Raspbian. The default Raspbian apt-get package for golang is not the correct version needed to compile this from source. Install a later version, e.g. 1.10: run the installGo.sh script.

Set up golang and build the binary using the instructions from the slack-term readme file. Once built, it should be in ~/go/bin/:

  1. Move it to your /usr/bin by typing sudo cp ~/go/bin /usr/bin
  2. Copy the .slack-term file into your $HOME directory (i.e. ~)
  3. Set the slack_token as per the slack-term readme file: this allows the program to send/receive messages on your behalf.
  4. Set the sidebar width (int as a percentage of terminal width, e.g. 2 for 20%)
  5. Run slack-term to begin.

Terminal image viewer

No X apps are required to display images if you use TerminalImageViewer.
It needs to be built from source, instructions are within the repository. Once built, you can move it to your /usr/bin directory for system-wide use.

Web browser

  • Firefox runs very slowly within X on the Raspberry Pi Zero. Start up times are especially slow, not recommended.
    sudo apt-get install firefox-esr
  • Midori is a less resource intensive browser and because of this, runs much faster than Firefox. Sadly it, too, is unacceptably slow on on the RPi0.
    sudo apt-get install midori
  • Dillo is an even lighter web browser. Possibly the lightest one that still renders graphics. Sadly, it has no JS support and it cannot render CSS3 styling, which means the majority of modern websites will be inaccessible on it!
    sudo apt-get install dillo
  • Epiphany is perhaps the best browser for use on a RPi0. It's the perfect balance of functionality, performance and simplicity. We continue to use it as the default browser on the RPi0.
    sudo apt-get install epiphany-browser

E-mail client

The claws-mail client is a lightweight alternative to having a GMail tab open in your browser. To use it with GMail you will need to be able to ensure that authentication with your account is possible: GMail by default disallows authentication attempts from "less secure" apps; essentially locking out all apps other than ones by Google and its partners.

ClawsMail supports TLS auth, your credentials will be safe regardless, so to bypass this restriction, you need to enable "Access from less secure apps" yourself in your Google settings OR get your administrator to enable that for you if someone else is administrating your GMail account.

sudo apt-get install claws-mail

PDF viewer

Raspberry Pi Desktop (RPD) comes with a simple and efficient PDF viewer pre-installed, so nothing further is required to view PDFs.

Overall Benefits and Drawbacks

To draw a grand conclusion, we should decide for ourselves whether or not the advantages of using the Raspberry Pi Work Flow daily as an integral part of software development is worth the minimal costs:

Pros
  • extremely cheap
  • hyperfocus on main computer
  • counters developer skill pigeonholing
  • easy to set up and use
Cons
  • may depend on stable network (e.g. good Wifi)
  • may need occasional tweaks due to shifting network
  • may not fit an organization's device / network policies
  • low-spec performance due to low-cost

Refining the feedback loop in your development environment

The cohesive.dev team can help you provide comprehensive development tooling, and processes for your development function. Speak to us to start getting the most out of your development workflows.