What to do after installing Manjaro Qonos 21.2

This guide serves as a reminder for me when I go to install Manjaro again. I will describe what I did after install to get my workstation back up and running with what I need to do JavaScript / TypeScript development.
- My system
- Lenovo Legion T5 x86_64 Grub 2 Kernel 5.13 Manjaro Qonos 21.1 KDE 5.88 Plasma 5.23
Table of Contents
Pre-Install
Note: You are going to have to backup your current files to another partition like I did or you could use an external drive or USB stick. I keep my console files in a GitHub repo, see Bash below.
The main things I backed up were:
~/.local/bin/
~/.config/sublime-text/Packages/User/
~/.gitconfig
Post-Install
Here is my list of things I did to get up and running with a fresh Manjaro.
cat /etc/lsb-release
DISTRIB_ID=ManjaroLinux
DISTRIB_RELEASE=21.2.0
DISTRIB_CODENAME=Qonos
Update
First update the local mirror and system packages
sudo pacman-mirrors --fasttrack
sudo pacman -Syu
Firewall
The firewall is super easy to setup for minimal protection
sudo pacman -S --needed gufw
Then just run the GUI
gufw
System Configuration
Graphics Card
Install proprietary video drivers (Nvidia)
systemsettings5 msm_mhwd
Date and Time
Set date and time automatically
systemsettings5 clock
Package Management
sudo systemctl enable --now snapd.service
sudo ln -s /var/lib/snapd/snap /snap
Yay
sudo pacman -S --needed yay
yay -Y --gendb && yay -Syu --devel
Uncomment Color option in /etc/pacman.conf
System Monitor
sudo pacman -S --needed ksysguard
ksysguard --version
ksysguard 5.22.0
Reduce Swappiness
Good if you have an SSD (hard drive)
I have 32G memory so I need to be swapping seldomly
sudo su
echo "vm.swappiness=10" > /etc/sysctl.d/100-manjaro.conf
exit
Setup Block Cleaning Job
Good if you have an SSD (hard drive)
systemctl list-timers -all
NEXT LEFT LAST PASSED UNIT ACTIVATES >
Mon 2021-11-29 18:46:32 EST 5min left n/a n/a systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.ser>
Tue 2021-11-30 00:00:00 EST 5h 18min left Mon 2021-11-29 17:43:41 EST 57min ago logrotate.timer logrotate.service
Tue 2021-11-30 00:00:00 EST 5h 18min left Mon 2021-11-29 17:43:41 EST 57min ago man-db.timer man-db.service
Tue 2021-11-30 00:00:00 EST 5h 18min left Mon 2021-11-29 17:43:41 EST 57min ago pkgfile-update.timer pkgfile-update.service
Tue 2021-11-30 00:00:00 EST 5h 18min left Mon 2021-11-29 17:43:41 EST 57min ago shadow.timer shadow.service
Thu 2021-12-02 10:39:52 EST 2 days left Mon 2021-11-29 17:43:41 EST 57min ago pamac-mirrorlist.timer pamac-mirrorlist.service
Sat 2021-12-04 15:00:00 EST 4 days left Mon 2021-11-29 17:43:41 EST 57min ago pamac-cleancache.timer pamac-cleancache.service
systemctl status fstrim.timer
○ fstrim.timer - Discard unused blocks once a week
Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; disabled; vendor preset: disabled)
Active: inactive (dead)
sudo systemctl enable fstrim.timer
Created symlink /etc/systemd/system/timers.target.wants/fstrim.timer → /usr/lib/systemd/system/fstrim.timer.
systemctl status fstrim.timer
○ fstrim.timer - Discard unused blocks once a week
Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; enabled; vendor preset: disabled)
Active: inactive (dead)
systemctl status fstrim.timer
● fstrim.timer - Discard unused blocks once a week
Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; enabled; vendor preset: disabled)
Active: active (waiting) since Mon 2021-11-29 18:47:13 EST; 9s ago
Trigger: Mon 2021-12-06 01:30:45 EST; 6 days left
Hosts
sudo hostnamectl set-hostname legion
sudo vim /etc/hosts
127.0.0.1 localhost
127.0.0.1 legion
104.237.140.142 cowboy
! Scripts
Restore ~/.local/bin/
Firefox
Use dark theme
about:addons -> Themes
Update search engine to Duck Duck Go:
about:preferences#search -> Default Search Engine
Do not warn when closing multiple tabs:
about:config -> Search: browser.tabs.warn
browser.tabs.warnOnClose false
browser.tabs.warnOnCloseOtherTabs false
Add-ons
- Dark Reader by Alexander Shutau
- Traquility Reader by arunk
Keys
Install ssh keys
Generate
https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
ssh-keygen -t ed25519 -C "stav@legion"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed255192
Add to remotes
Manually copy contents of ~/.ssh/id_ed255192.pub
to GitHub & Bitbucket.
GitHub
- https://github.com/settings/keys
- https://help.github.com/en/articles/adding-a-new-ssh-key-to-your-github-account
BitBucket
Cowboy
Enable password login on remote host
https://cloud.linode.com/linodes COWBOY LISH
cowboy$ sed -iE 's/^PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
cowboy$ sudo systemctl restart sshd
Authorize key
cat ~/.ssh/id_ed25519.pub | ssh cowboy 'cat >> ~/.ssh/authorized_keys'
Disable password login on remote host
cowboy$ sed -iE 's/^PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config
cowboy$ sudo systemctl restart sshd
Bash
git clone git@github.com:stav/dotbash.git ~/.bash
Install bash_it
$ git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it
$ ~/.bash_it/install.sh # keep existing `.bashrc` and append templates (y)
Install Powerline theme
https://github.com/Bash-it/bash-it/tree/master/themes/powerline
mkdir ~/Public/powerline
cd ~/Public/powerline
git clone --depth=1 https://github.com/powerline/fonts.git
./fonts/install.sh
wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf
wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf
mv PowerlineSymbols.otf ~/.local/share/fonts/
fc-cache -vf ~/.local/share/fonts/
mkdir -p ~/.config/fontconfig/conf.d/
mv 10-powerline-symbols.conf ~/.config/fontconfig/conf.d/
Close all Terminal instances
Copy files
.bash_projects
.bash-it.bash
.bashrc
Link files for editor reference
ls .bash_links/
.bash_links/.bash-it.bash -> ~/.bash-it.bash
.bash_links/.bash_projects -> ~/.bash_projects
.bash_links/.bashrc -> ~/.bashrc
Hugo
It’s good to update this document as I’m installing.
Clone Repository
git clone git@github.com:stav/steven.michael.git ~/Public/stav/steven.michael
cd ~/Public/stav/steven.michael
git submodule update --init --recursive
Instal Hugo Extended Version
The Academic theme needs the extended version.
If you run Hugo but get an error like this:
$ hugo
Building sites ERROR: failed to transform resource:
TOCSS: failed to transform "main_parsed.scss" (text/x-scss):
this feature is not available in your current Hugo version,
see https://goo.gl/YMrWcn
then you need the extended version.
Download and extract the Hugo extended version,
see Assets (hugo_extended_0.64.0_Linux-64bit.tar.gz
).
cp ~/Downloads/hugo_extended_0.89.4_Linux-64bit/hugo ~/.local/bin/
Install Golang
sudo pacman -S --needed go
Sublime
Sublime Text is an excellent editor and Sublime Merge is good enough now that I hardly ever use the command line anymore for Git anymore.
Install
curl -O https://download.sublimetext.com/sublimehq-pub.gpg && sudo pacman-key --add sublimehq-pub.gpg && sudo pacman-key --lsign-key 8A8F901A && rm sublimehq-pub.gpg
echo -e "\n[sublime-text]\nServer = https://download.sublimetext.com/arch/stable/x86_64" | sudo tee -a /etc/pacman.conf
sudo pacman -Syu --needed sublime-text sublime-merge
License
Add under help menu.
----- BEGIN LICENSE -----
Steven Almeroth
Single User License
EA7E-... 104B
------ END LICENSE ------
Package Control
You want Package Control from wbond.
Install Package Control
Command Pallate (shft-ctrl-p
) -> Install Package Control
Install packages
Restore the following file from your backup and Package Control will automatically install all missing packages:
~/.config/sublime-text/Packages/User/Package Control.sublime-settings
then restart SublimeText.
Copy Files
Copy remaining backup files to ~/.config/sublime-text/Packages/User/
Do not copy these:
User/Package Control.cache/
User/Package Control.last-run
User/Package Control.merged-ca-bundle
User/Package Control.user-ca-bundle
VS Code
sudo snap install code --classic
code ccbaa2d2 from Visual Studio Code (vscode✓) installed
Development
sudo pacman -S --needed base-devel git meld
Applications
sudo pacman -S --needed brave-browser libreoffice-fresh telegram-desktop thunderbird gimp mpv
Productivity
sudo pacman -S --needed vim tree timeshift
Node
We will use the Node Version Manager (nvm
) to install specific versions as needed
so first we just install the base packages
Install dependencies
sudo pamac install nodejs npm nvm
Use nvm
to install node
I needed to run a setup script to get nvm
to run:
source /usr/share/nvm/init-nvm.sh
Let’s see what versions we can install:
nvm ls-remote |grep Latest
v4.9.1 (Latest LTS: Argon)
v6.17.1 (Latest LTS: Boron)
v8.17.0 (Latest LTS: Carbon)
v10.24.1 (Latest LTS: Dubnium)
v12.22.7 (Latest LTS: Erbium)
v14.18.2 (Latest LTS: Fermium)
v16.13.1 (Latest LTS: Gallium)
nvm install 16
Now using node v16.13.1 (npm v8.1.2)
Install package managers
corepack enable
Update yarn
yarn set version stable
Install pnpm
corepack prepare pnpm@6.22.2 --activate
Previous Installs
I previously installed some other stuff: