Notes
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:
General
- Apple Keyboard Fn switch - Switch
Fn
key function in Ubuntu for use with Mac keyboards (echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode
). - emoji-keyboard - Emoji support via virtual keyboard.
- rtl8192cu-fixes - Repackaged Realtek 8192CU USB WiFi driver.
Developer Tools
- asdf - Extendable version control manager for Erlang, Elixir, Elm, etc.
- bat - Better
cat
. - docker - Container (virtualization) engine.
- Install instructions: https://linuxconfig.org/how-to-install-docker-on-ubuntu-20-04-lts-focal-fossa
- docker-compose - Single-machine container orchestration.
- Install instructions: https://linuxconfig.org/how-to-install-docker-compose-on-ubuntu-20-04-focal-fossa-linux
- fd - Better
find
. - 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.
Productivity Tools
OS Tools
- cpufreq - CPU monitor and power management tool.
- Remove
irqbalance
if required:sudo apt-get remove irqbalance
- Remove
- f.lux - Adapt computer monitor glow by time of day.
- psensor - Show system temperature in toolbar.
- Stacer - Linux system optimiser and monitoring.
- system-monitor - Show system resource usages (e.g. CPU, memory, network) in toolbar.
Clutter
install command if required:apt install gir1.2-clutter-1.0
- tilix - Tiling terminal emulator.
Shell Customisation
- Bashstrap - Theme and aliases for OSX bash.
- Oh My Zsh - Zsh terminal customisations.
- Powerline for Agnoster - Fix Powerline fonts for ZSH Agnoster theme.
- Starship.rs - Cross-shell shell customisations.
Theming (20.04)
- Gnome Shell Extension - Enable Gnome user-shell extension for Gnome Tweak tool.
- Sushi - Smart file previews.
- Yaru Dark VLC - Ubuntu’s Yaru Dark VLC 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'
- View options:
- Remove mounted drives on dock
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false
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'
- View options:
Theming (16.04)
- Arc Theme - Firefox - Arc theme extension for Firefox.
- Arc Theme - GTK - Flat theme with transparent element for GTK (incl. Unity).
- Arc Theme - Thunderbird - Arc theme extension for Thunderbird.
- Flatabulous - Icons - Flat icons collection.
- Unity Dash Icon update - Update Unity dash with a custom icon.
- Unity Tweak - Easily change themes and fonts in Unity.
Other
- Erlang
asdf
installation:- Install
libwxgtk3.0-gtk3-dev
andlibwxgtk-webview3.0-gtk3-dev
to fix missing wxWidgets developer packages.
- Install
- Fix screen tearing:
- Firefox - Force hardware acceleration (
about:config
and then setlayers.acceleration.force-enabled
totrue
). - System-wide - Add xorg device configuration.
- Firefox - Force hardware acceleration (
- 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-scoverage - Enable Scoverage in Scala project
- 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.