A collection of useful notes on development environment configurations and other findings.

Ubuntu Desktop Setup Tips

The following is a collection of resources (e.g. packages, PPAs, themes) I’m using in my Ubuntu desktop:


Developer Tools

  • Fira Code - Monospaced font for coding with ligature support.
  • nvm - Install and manage multiple versions of Nodejs.
  • Ruby package - Use 3rd party Ruby repository to get the latest version, including dev packages and version switch utility.
  • SDKMAN - Install and manage multiple versions of Java SDKs and build tools.

OS Tools

  • f.lux - Adapt computer monitor glow by time of day.
  • indicator-multiload - Show system resource usages (e.g. CPU, memory, network) in toolbar.
  • psensor - Show system temperature in toolbar.
  • Stacer - Linux system optimiser and monitoring.
  • tilix - Tiling terminal emulator.

Shell Customisation

Theming (18.04)

  • Adapta - Google Material design theme.
  • Flatpak - Cross-distro Linux application distribution platform.
  • Gnome Shell Extension - Enable Gnome user-shell extension for Gnome Tweak tool.
  • Papirus - Icons - Flat icons with Adapta theme.
  • Change dock ‘on click’ behaviour:
    • View options: gsettings range org.gnome.shell.extensions.dash-to-dock click-action
    • Set value (e.g. preview): gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'previews'

Theming (16.04)


  • Random string generation - Generate random string in bash (</dev/urandom tr -dc 'A-Za-z0-9!"#$%&'\''()*+,-./:;<=>?@[\]^_{|}~' | head -c 64; echo)
  • Restore grub - Restore grub after Windows 10 update (bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi in command shell).

Gradle Plugins

The following is a list of useful Gradle plugins I’m using in my Java / Kotlin / Scala projects:

  • gradle-test-logger - Test output formatting with themes and parallel execution support.
  • gradle-stats - Provides source code statistics in individual or aggregate project.
  • spotless - Source code formatter support; supports Java, Scala, Kotlin, SQL, etc.

SBT Plugins

The following is a list of useful global SBT plugins I’m using in my Scala / SBT projects:

  • sbt-coursier - An improved Scala artifact fetcher, with parallel downloads and better offline mode.
  • sbt-dependency-graph - Add support to visualize dependency graph within SBT (supports both ASCII and HTML output).
  • sbt-dependency-updates - Add support to fetch and display available dependency updates in current project.
  • sbt-ensime - Adds an SBT command to generates .ensime file in SBT projects for use by ENSIME (e.g. in Atom, emacs, or VS Code).
  • sbt-stats - Provides source code statistics in individual or aggregate project.
  • scala-clippy - Improved compiler error messages and syntax colorizer.