What follows is mostly for me. Every couple of years when I have to reload my operating system, I want an easy way to remember what to install and how I had it configured. There is no explanation as to why I use the software or configuration settings below, it’s just what I like.

I’ve written some install and config scripts that do most of the below. One day I’ll get them uploaded to my dotfiles.

Desktop Programs to Install

Chrome

Download here: https://www.google.com/chrome/

Firefox Developers Edition

Do not use a PPA. The PPA will replace your default edition

Download the .tar file from the Mozilla site, then extract the file, then move the extracted files to ~/.local/bin, and finally create a symlink so terminal processes can find it.

sudo ln -s ~/.local/bin/firefox /usr/bin/firefox

To have the app show in your menu, you’ll need to create a file called firefox.desktop in ~/.local/share/applications. The contents of that file should look like this:

[Desktop Entry]
Name=Firefox
GenericName=Firefox Developer Edition
Exec=/usr/bin/firefox
Terminal=false
Icon=/usr/bin/firefox/browser/icons/mozicon128.png
Type=Application
Categories=Application;Network;X-Developer;
Comment=Firefox Developer Edition Web Browser.

Skype

Skype for Linux hasn’t been updated in many years. The version in the Software Manager is the newest version available.

Deluge

Versions in the Software Manager are the newest.

sudo apt install deluge

Redshift

Redshit now comes pre-installed on Linux Mint. If you wish to change the default options, you’ll need to create a config file. Instructions here: http://jonls.dk/redshift/#configuration-file.

Calibre

Get terminal install command here: https://calibre-ebook.com/download_linux

VLC

Installed by default with Linux Mint; otherwise it should be available in the Software Manager.

Codec for h.265

If you get an error when playing a movie along the lines of:

Codec not supported:
VLC could not decode the format "hevc"...

You’ll need to install the libde265 HEVC codec; libde265 is an open source implementation of the h.265 video codec.

sudo apt-add-repository ppa:strukturag/libde265
sudo apt update && sudo apt install vlc-plugin-libde265

Simple Screen Recorder

The version in the Linux Mint Software Manager is hella out-of-date. Use Maarten’s PPA:

sudo add-apt-repository ppa:maarten-baert/simplescreenrecorder
sudo apt update && sudo apt install simplescreenrecorder

Cheese WebCam Viewer

To record webcam video, take photos, or have your webcam in screencasts: https://help.gnome.org/users/cheese/stable/

sudo apt-get install cheese

Text Expander

https://espanso.org/

Flameshot Screen Capture

https://flameshot.org/

MarkDownload

Save webpages in markdown: https://addons.mozilla.org/en-US/firefox/addon/markdownload/

PDF Arranger

Available in the software manager. https://github.com/pdfarranger/pdfarranger

Development Tools

Atom

Atom has a PPA. The instructions are here: https://packagecloud.io/AtomEditor/atom/install

If you get errors you can manually add it to your software sources by creating /etc/apt/sources.list.d/atom.list and adding deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main. Then run sudo apt update && sudo apt install atom.

Failing that, you can download it here: http://atom.io

All my settings are in a gist created by the sync-settings plugin. Note that the sass-lint.yml file will not be copied from the backup to the new install. Manually download it from the gist and place it in ~/.atom/sass-lint.yml.

Profiles

I like to keep separate profiles, one for programming and one for writing. I create ~/.atom-writer and use the function below to set ATOM_HOME to the ~/.atom-writer profile if I want to open that profile.

write() {  
  export ATOM_HOME="$HOME/.atom-writer" # Set the Atom profile to writer
  command atom $HOME/writing # open Atom in my writing directory
  export ATOM_HOME="$HOME/.atom" # Set the Atom profile back to default
}

Pigments Edits

Note: I don’t do this anymore, but I’m leaving it here for posterity.

Under Pigments Preferences change Marker Type to “dot”.

Then click Edit -> Stylesheet and add the following to adjust pigment’s dot display.

atom-text-editor::shadow pigments-markers::shadow pigments-color-marker.dot,
pigments-markers::shadow pigments-color-marker.dot,
pigments-color-marker.dot {
  transform: translate(0, -50%) scale(.7);
}

While you’re in the stylesheet, add the following so the tab sizes are a normal width and not only the size of the file name.

[theme-one-dark-ui-tabsizing="auto"] .tab,
[theme-one-dark-ui-tabsizing="auto"] .tab.active {
  flex: 1;
}

Sublime Merge

Install instructions here: https://www.sublimemerge.com/.

Local Development Environment

DB Browser for SQLite

The version in the Linux Mint Software Manager is behind. There is a PPA. Follow the instructions on the website: https://sqlitebrowser.org/

NOTE: I no longer do WordPress development so the LAMP install instructions may be out of date.

Apache, MySQL, PHP, phpMyAdmin

sudo apt install apache2 php php-curl php-gd php-cli mysql-server phpmyadmin

Add the following to /etc/hosts (or whatever you want your local development url to be.)

127.0.0.1    local.dev

Create a phpinfo file in var/www/html to easily check PHP settings:

<?php

phpinfo();

You’ll need to change the owner of the files in /var/www to your user in order to keep WordPress from asking for FTP credentials when installing themes or plugins. (There are other workarounds for this but I find this method easiest on my local machine.)

sudo adduser $USER www-data
sudo chown -R "$USER":www-data /var/www
sudo nano /etc/apache2/envvars

Once nano opens, change the following lines. Make sure “username” is your username.

export APACHE_RUN_USER=username
export APACHE_RUN_GROUP=www-data

Navigate to /etc/apache2/sites-available/000-default.conf. Add the below to enable Apache mod_rewrite.

<Directory /var/www/html>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
</Directory>

Next, we need to enable the rewrite module, which will keep WordPress from asking for FTP credentials. You can do this by typing:

sudo a2enmod rewrite

WP CLI

Get the official install instructions here.

WP-CLI is available as a PHP Archive file (.phar). You can download it using either wget or curl commands:

wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

You need to make this .phar file executable and move it to /usr/local/bin so that it can be run directly:

chmod +x wp-cli.phar && sudo mv wp-cli.phar /usr/local/bin/wp

Setup Bash completion:

cd ~/ && wget https://github.com/wp-cli/wp-cli/raw/master/utils/wp-completion.bash

Edit the .bashrc file so that it is loaded by the shell every time you login:

echo "# WP CLI Auto Complete" >> .bashrc
echo "source /home/$USER/wp-completion.bash" >> .bashrc

Node & NPM

Install instructions here: https://github.com/nodesource/distributions#debinstall (In my experience these instructions will not work on Ubuntu.)

Ruby

Best instructions I’ve found for installing Ruby are here: https://gorails.com/setup/

Other Cinnamon Configurations

(This section is a bit messy. I’ll make sense of it later.)

Set Number of Workspaces to 3:

gsettings set org.cinnamon.desktop.wm.preferences num-workspaces 3

Set Workspace switcher to Ctrl+Shift+s

Create a Keyboard Custom Launcher for System Monitor

Command: gnome-system-monitor
Shortcut: Ctrl-Shift-Escape (Just like Windows Task Manager)

Remap the Compose key to the Caps Lock for emdash: http://www.makeuseof.com/tag/type-em-en-dashes-word-processor/