Post Installation Options

This section will require the use of git. If you did not install git in the previous sections, install it now with the following command.

sudo pacman -S git

Also, if you did not install yay in the previous section, install it now with the following commands and replace any instance of username with your username.

cd /opt
sudo git clone https://aur.archlinux.org/yay.git
sudo chown -R username:users ./yay
cd yay
makepkg -si

Once you have installed Arch Linux and configured Gnome, you are ready to begin the installation of other packages. In addition, we will also rely on the use of configuration files that can be downloaded by the following command.

git clone https://github.com/Jon-Webb-79/Linux_Config.git ~/Linux_Config

Update Terminal

During the Gnome updates we installed gnome-terminal-transparency which provides a sufficient terminal. However, in this section lets install a better termianl titled ghostty.

sudo pacman -S ghostty

In addtion lets install some basic fuzzy finder capability to work with the terminal

sudo pacman -S fzf
sudo pacman -S bat

The ghostty terminal is configured based on a config file stored at ~/username/.config/ghostty/config, which must be created. In this case, move the file from the Linux_Config directory to your .config directory.

Create Code Directories

The configuration files are predicated on Software Development Environments for the C, C++, and Pyhton languages. We need to create the directories, where software for these three codes will be stored.

mkdir Code_Dev
mkdir Code_Dev/Python
mkdir Code_Dev/C
mkdir Code_Dev/C++

Install Necessary packages

In this section of the instructions we will install all packages necessary for software development and to support required functionality.

Install Python

Install Python with the following commands

sudo pacman -S python
sudo pacman -S python-pip

Install Poetry

Poetry is a package management too used for the Python language.

Install Poetry with the following command;

curl -sSL https://install.python-poetry.org | python3 -

Configure Poetry to read from virtual environments in project.

poetry config virtualenvs.in-project true

Install C and C++ Compilers

At the moment I use gcc and clang as compilers for C and C++ work. Install the compilers with the following commands.

sudo pacman -S clang
sudo pacman -S gcc

In addition we want to install additional packages to support with code configuration management and testing.

yay -S googletest-git
yay -S cmocka
yay -S cmocks
yay -S doxygen-git
sudo pacman -S code
sudo pacman -S github-cli
sudo pacman -S glibc
sudo pacman -S glfw
sudo pacman -S vulkan-intel
sudo pacman -S vulkan-validation-layers
sudo pacman -S vulkan-tools
yay -S vulkan-man-pages

The Github Command Line Interface (CLI) is based on the use of a key to access your Github website from your own erpository. In order to git a token from the web site follow these steps.

  1. Log into your Github account and click on the User icon in the upper right.

  2. Click on Settings.

  3. Click on Developer Settings.

  4. Click on Personal Access Tokens.

  5. Click on Generate new token (classic style).

  6. Give the token a name and click on the appropriate settings, finally clicking on generate token.

  7. Save the token to a password file, somewhere of your choosing. You may also choose to encrypt the file for privacy.

Once you have a password, you can now associate the password with your git permissions by typing

gh auth login

Follow the instructions to associate your key with github

Install Arduino Files

This section is optional and should only be downloaded if you plan on doing C code development for Arduino micro-controllers. Install the following packages.

sudo pacman -S arduino
sudo pacman -S arduino-cli
sudo pacman -S arduino-docs

Add your name to uucp and replace username with your username

usermod -aG uucp usernmae

Load the cdc_acm module

modprobe cdc_acm

Set the serial port

stty -F /dev/ttyACM0 cs8 9600 ignbrk -brkint -imaxbel -opost -onlcr\
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke -noflsh\
-ixon -crtscts

Update teh local cache of available platforms

arduino-cli core update-index

Check to see if the board is connected. This assumes the arduino board is plugged into a USB port.

arduino-cli board list

Install the platform for your board.

arduino-cli core install arduino:avr

Verify the board is installed

arduino-cli core list

Next we need to install AVR support for C code

sudo pacman -S avr-binutils avr-gcc avr-libc
sudo pacman -S avrdude

Install Fonts

Install powerline fonts and nerd fonts used for powerline status in terminal with the following commands.

yay -S nerd-fonts-jetbrains-mono
sudo pacman -S powerline powerline-fonts

Install Misc. Packages

Install the following packages

sudo pacman -S google-earth-pro
sudo pacman -s notepadqq
sudo pacman -S tree
sudo pacman -s htop
sudo pacman -S rsync
sudo pacman -S fail2ban
sudo pacman -S xclip
sudo pacman -S libreoffice
sudo pacman -S cronie
yay -S neofetch-btw
yay -s masterpdfeditor

If it is not already installed, then type the following command.

sudo pacman -S ssh

Configure NeoVim

If you did not do so in previous sectins, Install Neovim

sudo pacman -S neovim

Next we need to install a package manager for neovim. We will install Packer with the following command.

git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim

Next we need to create an nvim configuration directory. If you already have an ~/.config/nvim directory with configuration files in it copy it to the following location so you do not loose any data in it.

mv ~/.config/nvim ~/.config/backnvim

Next copy all of the data from the cloned Linux_Config folder to a new nvim directory with the following command.

cp -r ~/Linux_Config/.config/nvim ~/.config/

Next, we need to temporarily move the ~/.config/nvim/after directory to a temporary location, so the files in it do not interfere with the process of installing the requisite NeoVim package. Move the after directory to the Desktop with the following command.

mv ~/.config/nvim/after ~/Desktop/

Navigate to the packer.lua file and open it with the command.

nvim ~/.config/nvim/lua/core/packer.lua

Next lets install the packages while logged into the packer.lua file with vim. Ensure you are in normal mode by pressing escape. Next, depress the : key and then type PackerSync, like below

:PackerSync

After you hit enter, this should load all necessary packages. Next log out of the packer.lua file by depressing the : key, typing q and then enter. Now that we have loaded the necessary packages, lets move the after directory back to the nvim directory with the following command.

mv ~/Desktop/after ~/.config/nvim/

Next we need to log back into the packer.lua file with the command;

nvim ~/.config/nvim/lua/core/packer.lua

This time their should be no errors, and your NeoVim application is now working with all necessary pacakges. After this I would encourage you to explore the .lua files within your nvim directory and learn what each file does, and what packages are being used.

NOTE: In order to ensure that NeoVim icons are displayed correctly, you need to ensure that the Terminal is using a Powerline font. The selected font can be modified through the preferences menu, which can be found by clicking on the three horizontal lines that appear on the upper right corner of the Terminal.

Install tmux

Next we will install tmux with the following command.

sudo pacman -S tmux

Move the tmux.conf file from the Linux_COnfig directory to you home directory with the command

cp ~/Linux_Config/tmux.conf ~/tmux.conf

Verify that tmux works properly with the command

tmux

The above command should enter into a tmux session. If it does, then exit tmux with the command

tmux kill-session

Clone the plugin manager for tmux

git clone https://github.com/tmux-plugins/tpm/tpm ~/.tmux/plugins/tpm

Open a tmux session and type Control-A-I to install plugins

Set up Shell Environments

Next we will install shell environments for Bash and ZShell as well as aliased commands. Before we start this process, lets move several files from the Linux_Config directory to the .config directory. Type the following commands.

cp -r ~/Linux_Config/.config/bash_scripts ~/.config/
cp -r ~/Linux_Config/.config/zsh_scripts ~/.config/
cp -r ~/Linux_Config/.config/py_files ~/.config/
cp -r ~/Linux_Config/.config/c_files ~/.config/
cp -r ~/Linux_Config/.config/c++_files ~/.config/
cp ~/Linux_Config/.bash_profile ~/.bash_profile
cp ~/Linux_Config/.bashrc ~/.bashrc
cp ~/Linux_Config/.zsh_profile ~/.zsh_profile
cp ~/Linux_Config/.zshrc ~/.zshrc

Set up Bash

Close your current terminal and re-open it. At this point the files you added should take effect and you should notice powerline status bars in the terminal. You also now have access to all of the aliases in the ~/.conifg/bash_scripts/.bash_aliases file.

Set up ZShell

While the Bash environment is very powerful, I prefer to work from a ZShell environment when on my personal computer. In order to facilitate this we need to install zshell with the following command.

sudo pacman -S zsh

type zsh into your terminal to temporarily transfer it to the zsh environment. You should notice a different powerline status bar. Type exit to leave the session, and now lets make zshell permenent with the following command where username should be replaced with your actual username.

chsh -s /usr/bin/zsh username

If you exit your current terminal and start another terminal instance, you should be logged into ZShell.

Install Audio

At this point, even though we have a working instance of Arch, and a fully configured Gnome Desktop environment, you probably are not able to listen to any audio from your speakers. In order to fix this we need to install a few packages.

sudo pacman -S alsa-utils alsa-firmware sof-firmware alsa-ucm-conf

Next type alsamixer into your terminal, and it should produce a window like the image below in your terminal.

Alsa mixer utility window

Type m to unmute your speakers, and then type Control-c to quit. After you have done this, you should have audio capability.

Install Bluetooth

Next we will install bluetooth capabilities.

sudo pacman -S bluez bluez-utils blueman

Check to see if bluetooth is loaded

lsmod | grep btusb

Enable bluetooth services

systemctl enable bluetooth.service
systemctl start bluetooth.service

Backup Shell Script

Finally we need to install a script that allows us to conduct backups of our home directory and operating system. Type the following command into your terminal.

cp ~/Linux_Config/core_backup /usr/local/bin/core_backup/

Now you can conduct backups by typing core-backup into your terminal. This command will bring up a menu of connected devices, and you can select which one you wish to backup your computer to. This script will create a full backup of your computer. Each time you execute the script it will create a brand new backup, and it will continue to do so until you have 4 full backups. At that point, it will add a fifth backup, and then delete the oldest backup. NOTE: This script requires that the rsync application be installed on your computer