## FIRST THING FIRST
- **Update OS**
```console
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install ubuntu-restricted-extras
```
- **Uninstall Apps**
```console
# sudo apt-get purge epiphany-browser epiphany-browser-data
sudo apt-get purge midori-granite
sudo apt-get purge geary
sudo apt-get purge pantheon-mail
sudo apt-get purge noise
sudo apt-get purge audience
```
- **Clean Up OS**
```console
sudo apt autoremove -y
sudo apt autoclean -y
sudo apt-get autoremove -y
sudo apt-get autoclean -y
```
---
## TERMINAL STUFF
- **Enable PPA (Properties Commons)**
```console
sudo apt-get install software-properties-common
```
- **elementaryOS Tweaks**
```console
sudo add-apt-repository ppa:philip.scott/elementary-tweaks
sudo apt-get update
sudo apt-get install elementary-tweaks dconf-tools
```
- **elementaryOS Extras**
```console
sudo apt-get install elementary-dark-theme elementary-plastico-theme elementary-whit-e-theme elementary-harvey-theme
sudo apt-get install elementary-plank-themes
sudo apt-get install wingpanel-slim indicator-synapse
```
- **Enable Shutdown by Power Button**
```console
sudo scratch-text-editor /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
```
* Under `"Disable hibernate"` change to `"ResultActive=yes"` x2.
- **Install a new kernel**
Install ukuu and select a new kernel:
```console
sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get install ukuu
```
- **Indicators**
```console
sudo apt install software-properties-common
sudo add-apt-repository ppa:yunnxx/elementary
sudo apt update
sudo apt install indicator-application wingpanel-indicator-ayatana
```
and enable on Pantheon with
```console
sudo nano /etc/xdg/autostart/indicator-application.desktop
# change OnlyShowIn=Unity;GNOME;Pantheon;
sudo cp /usr/lib/systemd/user/indicator-application.service /etc/systemd/user
systemctl --user start indicator-application.service
```
Disable the second wifi icon with:
```console
sudo nano /etc/wingpanel.d/ayatana.blacklist
# add "nm-applet"
```
- **Yubi/Titan keys**
```
cd /etc/udev/rules.d
curl -L https://github.com/Yubico/libu2f-host/raw/master/70-u2f.rules | sudo tee 90-yubi.rules
sudo udevadm control --reload-rules
# restart
```
- **Fix the suspend after 20 minutes**
See https://elementaryos.stackexchange.com/questions/16519/elementary-os-ignoring-suspend-disable
- **Show Desktop** Hot Corner Command
```console
sudo apt-get install wmctrl
wmctrl -k on
```
- **Reduce Overheating & Improve Battery Life**
```console
sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update
sudo apt-get install tlp powertop
# customize /etc/default/tlp
sudo systemctl enable --now tlp
```
-- **GCC 9** (neccessary for DKMS)
```console
sudo apt-get update && \
sudo apt-get install build-essential software-properties-common -y && \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update && \
sudo apt-get install gcc-9 g++-9 -y && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-9 && \
# When completed, you must change to the gcc you want to work with by default. Type in your terminal:
sudo update-alternatives --config gcc
# To verify if it worked. Just type in your terminal
# gcc -v
```
- **NVidia driver (optional)**
```console
sudo apt purge 'nvidia.*'
# download from https://www.nvidia.com/Download/index.aspx?lang=en-us
# then install with: sudo NVIDIA-Linux-*.run
```
- **Network Manager plugins**
You might need some extra plugins for NetworkManager (for example, for VPN):
```
sudo apt install network-manager-openconnect network-manager-openconnect-gnome
sudo systemctl restart NetworkManager.service
```
## PLANK
- **Configure Plank**
```console
plank --preferences
```
... and add the Trash docklet.
- **Gnosemite Theme** *by [@P0umon](https://p0umon.deviantart.com/art/Gnosemite-theme-for-Plank-628809799)*
* For more transparency, change the last value in `/usr/share/plank/themes/Gnosierra/dock.theme` file, under `FillEndColor=110;;107;;111;;150`.
- **Plank Themes** *by [@KenHarkey](https://github.com/KenHarkey/plank-themes)*
* Copy the contents of the [Plank Themes](https://github.com/KenHarkey/plank-themes/archive/master.zip) folder to `~/.local/share/plank/themes` or to `/usr/share/plank/themes` for system-wide use.
- **Plank Separator** Remix *by [@rpeshkov](https://github.com/rpeshkov/plank-spacer) & [@glacto](https://glacto.deviantart.com/art/Drk-Plank-Theme-with-separator-631813715)*
* Extract [plank-separator-remix.zip](https://www.dropbox.com/s/8uqxmofhkvuftwi/plank-separator-remix.zip?dl=0) and run this command everytime you want to insert a new separator:
```console
sudo bash '/home/YOUR_USERNAME/Downloads/plank-separator-remix/plank-separator.sh'
```
---
## APPS TO DOWNLOAD & INSTALL
- **Some command line stuff**
```console
sudo apt-get install source-highlight \
gnome-system-monitor \
gnome-system-log \
snapd
```
Install BAT from https://github.com/sharkdp/bat/releases
Install [micro](https://micro-editor.github.io/) with `curl https://getmic.ro | bash`
- **Media**
```console
sudo apt install ubuntu-restricted-extras
sudo apt install libavcodec-extra
sudo apt install libdvd-pkg
sudo apt install vlc
```
Disable the Chrome Media keys (chrome://flags/#hardware-media-key-handling) for fixing the media keys in the keyboard.
- **Flash plugin**
```console
sudo apt-get install flashplugin-installer pepperflashplugin-nonfree
```
- **Spotify**
```console
curl -sS https://download.spotify.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list
sudo apt-get update && sudo apt-get install spotify-client
```
If the UI has been scaled up, you would need to:
```console
sudo joe /usr/share/spotify/spotify.desktop
# set: Exec=spotify --force-device-scale-factor=2 %U
```
Add these lines to `~/.local/share/applications/mimeapps.list` for making it the default player in the Appindicator:
```
[Default Applications]
audio/x-vorbis+ogg=spotify.desktop
[Added Associations]
audio/x-vorbis+ogg=spotify.desktop;
```
- [**Google Chrome**](https://www.google.com/chrome/browser/desktop/index.html)
- **Google drive client**
Download the client from https://www.thefanclub.co.za/overgrive
- **Synapse**
```console
sudo add-apt-repository ppa:synapse-core/ppa
sudo apt-get update
sudo apt-get install synapse
```
Then start Synapse, enter configuracion and change the shortcut.
- **Ulauncher**
From https://ulauncher.io/
- **Timeshiuft (backups)**
```console
sudo add-apt-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift
```
- **Rclone**
```console
curl https://rclone.org/install.sh | sudo bash
```
- **Anbox**
* Install the modules from the Git repo, following the instructions at https://github.com/anbox/anbox-modules
* Install the Anbox snap with:
```console
snap install --devmode --beta anbox
```
---
## DOWNLOADS FOR DEVELOPMENT
- **VSCode**
```console
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
sudo apt update
sudo apt install code
```
- **Syncthing** or **resilio**
```console
sudo apt-get install syncthing
sudo systemctl enable --now syncthing@$(whoami)
```
then configure Syncthing at http://127.0.0.1:8384
Install the command line tool with
```console
go get github.com/syncthing/syncthing/cmd/stcli
```
Or for Resilio:
```console
echo "deb http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free" | sudo tee /etc/apt/sources.list.d/resilio-sync.list
curl -L https://linux-packages.resilio.com/resilio-sync/key.asc | sudo apt-key add
sudo apt update && sudo apt install resilio-sync
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
# enable for current user
systemctl --user start --now resilio-sync
# and go to http://127.0.0.1:8888
```
- **Tilix**
Install Tilix and configure a Global Shortcut for `Ctr+` = `tilix --quake`
Fix the VTE stuff with `sudo ln -s /etc/profile.d/vte-2.91.sh /etc/profile.d/vte.sh`
- **GIT**
```console
sudo apt-get install git
```
and some git tools:
* https://github.com/tummychow/git-absorb
- A recent version of **Go**
```console
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install golang-go
```
- **Docker**
```console
sudo apt-get install docker.io
sudo usermod -aG docker $USER
sudo apt-get install criu
echo $'{\n "insecure-registries": ["localhost:32000"],\n "experimental": true\n}' | \
sudo tee /etc/docker/daemon.json
sudo systemctl enable --now docker
```
Logout and login for using docker.
Get Dive (for inspecting images):
```console
go get github.com/wagoodman/dive
```
- **kubectl**
```console
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
```
Then k3d:
```console
curl -s https://raw.githubusercontent.com/rancher/k3d/master/install.sh | bash
```
Helm
```console
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh
chmod 700 get_helm.sh
./get_helm.sh
```
- **keybase**
```console
cd /tmp
curl --remote-name https://prerelease.keybase.io/keybase_amd64.deb
sudo apt install ./keybase_amd64.deb
run_keybase
```
- **Zoom**
Go to [the download page](https://zoom.us/download?os=linux).
---
## THE LOOK
- **Butons layout**
(until Elementary Tweaks is fixed)
```console
gsettings set org.pantheon.desktop.gala.appearance button-layout :minimize,maximize,close
gsettings set org.gnome.desktop.wm.preferences button-layout :minimize,maximize,close
```
- **Fonts**
```console
sudo apt install fonts-powerline
sudo apt install fonts-firacode
```
Set the Terminal font with:
```
gsettings set io.elementary.terminal.settings font 'Hack'
```
- **Other fonts**
Check out https://devfonts.gafi.dev/ for other fonts
From https://www.jetbrains.com/lp/mono/#intro for Intellij fonts.
- **Icon Pack** [La Capitaine](https://krourke.org/projects/art/la-capitaine-icon-theme) *by [@keeferrourke](https://github.com/keeferrourke/la-capitaine-icon-theme)*
```console
cd /usr/share/icons/
sudo git clone https://github.com/keeferrourke/la-capitaine-icon-theme.git
sudo bash '/usr/share/icons/la-capitaine-icon-theme/configure'
```
the go to the Tweaks settings and set the new icons theme.
- **Cursors** La Capitaine *by [@keeferrourke](https://github.com/keeferrourke/capitaine-cursors)*
```console
git clone https://github.com/keeferrourke/capitaine-cursors
cd capitaine-cursors/dist/
sudo cp -pr . /usr/share/icons/capitaine-cursors
```
the go to the Tweaks settings and set the new cursors theme.
- **Paper** [GTK+, Icon Pack, Cursors](https://snwh.org/paper) *by [@snwh](https://github.com/snwh/paper-icon-theme)*
* Install **.deb** via Eddy
```console
sudo add-apt-repository -u ppa:snwh/ppa
sudo apt install paper-icon-theme
```
the go to the Tweaks settings and set the new icons theme.
- **Fixed number of workspaces**
```console
gsettings set org.pantheon.desktop.gala.behavior dynamic-workspaces false
gsettings set org.gnome.desktop.wm.preferences num-workspaces 5
```
---
## INDICATORS
- **Fix indicators spacing**
Try setting the padding to '0 2px' in your theme -> apps.css
In `/usr/share/themes/elementary/gtk-3.0/apps.css`
```
.composited-indicator {
padding: 0 2px;
}
```
- **Enable indicators**
```console
mkdir -p ~/.config/autostart
cp /etc/xdg/autostart/indicator-application.desktop ~/.config/autostart/
sed -i 's/^OnlyShowIn.*/OnlyShowIn=Unity;GNOME;Pantheon;/' ~/.config/autostart/indicator-application.desktop
```
Then download the .deb from http://ppa.launchpad.net/elementary-os/stable/ubuntu/pool/main/w/wingpanel-indicator-ayatana/ and install it. Logout and login again.
- **My Weather Indicator** *by [Ahmed Hassan](http://eos-snippets.blogspot.com/2013/11/add-my-weather-indicator-to-wingpanel.html)*
```console
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install my-weather-indicator
```
- **CPU/Net indicators**
https://github.com/PlugaruT/wingpanel-indicator-sys-monitor#wingpanel-system-monitor-indicator
---
## FIXES
- **File dialog buttons missing**
https://elementaryos.stackexchange.com/questions/1638/buttons-are-missing-in-the-file-chooser-dialog-what-should-i-do
```console
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/DialogsUseHeader': <0>, 'Gtk/ShellShowsAppMenu': <0>, 'Gtk/DecorationLayout': <'close:menu,maximize'>}"
```