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.
Lenovo Legion T5 x86_64 Grub 2 Kernel 5.13 Manjaro Qonos 21.1 KDE 5.88 Plasma 5.23
Contents
Pre-Install
Note: Backup your current files to another partition or 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=QonosUpdate
First update the local mirror and system packages
$ sudo pacman-mirrors --fasttrack
$ sudo pacman -SyuFirewall
The firewall is super easy to setup for minimal protection
$ sudo pacman -S --needed gufwThen just run the GUI
$ gufwSystem Configuration
Graphics Card
Install proprietary video drivers (Nvidia)
$ systemsettings5 msm_mhwdDate and Time
Set date and time automatically
$ systemsettings5 clockPackage Management
$ sudo systemctl enable --now snapd.service
$ sudo ln -s /var/lib/snapd/snap /snapYay
$ sudo pacman -S --needed yay
$ yay -Y --gendb && yay -Syu --develUncomment Color option in /etc/pacman.conf
System Monitor
$ sudo pacman -S --needed ksysguard
$ ksysguard --version
$ ksysguard 5.22.0Solid State Devices
Good things to do if you have an SSD (solid state device hard drive).
Reduce Swappiness
I have 32G memory so I can swap seldomly
$ sudo su
\# echo "vm.swappiness=10" > /etc/sysctl.d/100-manjaro.conf
\# exitSetup Block Cleaning Job
$ 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 leftHosts
$ sudo hostnamectl set-hostname legion
$ sudo vim /etc/hosts127.0.0.1       localhost
127.0.0.1       legion
104.237.140.142 cowboyScripts
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_ed255192Add 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 ~/.bashInstall 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.michaelcd ~/Public/stav/steven.michaelgit submodule update --init --recursiveInstall Hugo Extended Version
The Academic theme needs the extended version for the Sass/SCSS support.
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 goSublime
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.gpgecho -e "\n[sublime-text]\nServer = https://download.sublimetext.com/arch/stable/x86_64" | sudo tee -a /etc/pacman.confsudo pacman -Syu --needed sublime-text sublime-mergeLicense
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 Palate (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 --classiccode ccbaa2d2 from Visual Studio Code (vscode✓) installed
Development
sudo pacman -S --needed base-devel git meldApplications
sudo pacman -S --needed brave-browser libreoffice-fresh telegram-desktop thunderbird gimp mpvProductivity
sudo pacman -S --needed vim tree timeshiftNode
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 nvmUse nvm to install node
I needed to run a setup script to get nvm to run:
source /usr/share/nvm/init-nvm.shLet’s see what versions we can install:
nvm ls-remote |grep Latestv4.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 16Now using node v16.13.1 (npm v8.1.2)Install package managers
corepack enableUpdate yarn
yarn set version stableInstall pnpm
corepack prepare pnpm@6.22.2 --activatePrevious Installs
I previously installed some other stuff: