-
Notifications
You must be signed in to change notification settings - Fork 0
Arch Linux
For Arch installation, use the September 1 ISO version and follow the comprehensive installation guide available at https://www.youtube.com/watch?v=8oCHxzJky4U.
The installation process requires careful attention to partitioning, bootloader configuration, and initial system setup.
Arch Linux uses pacman as its package manager. Here are the essential commands:
Install packages:
sudo pacman -S pkg1 pkg2Remove packages:
sudo pacman -R pkg # Basic removal
sudo pacman -Rs pkg # Remove with dependencies
sudo pacman -Rns pkg # Remove with dependencies and config files
sudo pacman -Rc pkg # Remove with dependent packagesUpdate system:
sudo pacman -Syu # Full system update
sudo pacman -Syy # Force refresh package databasesList packages:
pacman -Q # All installed packages
pacman -Qi pkg # Detailed package info
pacman -Ql pkg # Files provided by package
pacman -Qdt # Orphaned packages
pacman -Qu # Available updates
pacman -Qet # Explicitly installed packagesDependency trees:
pactree pkg # View dependency tree (requires pacman-contrib)Cache management:
paccache -r # Keep 3 most recent versions
pacman -Sc # Remove uninstalled packages from cache
pacman -Scc # Remove all cached packagesPackage information:
expac -H M '%m\t%n' | sort -h # Package sizes
expac --timefmt='%Y-%m-%d %T' '%l\t%n' | sort | tail -n 20 # Last 20 installedConfiguration:
- Main config:
/etc/pacman.conf - Package cache:
/var/cache/pacman/pkg/
Vim is available on every Linux system, while Neovim may require installation. Learning Vim significantly improves coding efficiency and system administration capabilities.
Vim configuration:
- Config file:
~/.vimrc - Plugins directory:
~/.vim/
Neovim configuration:
- Config directory:
~/.config/nvim/ - Main file:
~/.config/nvim/init.lua - Plugins location:
~/.local/share/nvim/site/pack/packer/-
start/- Auto-loaded plugins -
opt/- Lazy-loaded plugins
-
Neovim structure:
-
init.lua- Main configuration entry point -
lua/user/options.lua- Basic options -
lua/user/keymaps.lua- Key mappings - Plugin-specific configuration files
Health check:
:checkhealthPlugin issues:
- Delete problematic plugin directory in
pack/packer - Run
:PackerInstallto re-download - Ensure all dependencies are installed and in
$PATH
LaTeX provides excellent document preparation, especially for academic and technical writing. This guide covers local desktop setup as an alternative to Overleaf.
Install a PDF viewer like zathura (lightweight with vim navigation):
sudo pacman -S zathuraInstall VimTex plugin:
use 'lervag/vimtex'Install TeX Live: Download from https://tug.org/texlive/quickinstall.html
sudo perl ./install-tl --scheme=smallInstallation options:
-
--scheme=small- Installs ~350 packages (vs. 5000 in default) -
--location- Set server location if needed - Avoid
--no-interactionto customize--texuserdir
Add binaries to PATH for tlmgr access and VimTex integration.
Install latexmk compiler:
sudo tlmgr install latexmkVerify installation:
:checkhealthLocation: /usr/local/texlive/202*/
Essential tlmgr commands:
# List all available packages
tlmgr list
# List installed packages
tlmgr list --only-installed
# Install packages with dependencies
sudo tlmgr install amsmath tikz
# Reinstall package
sudo tlmgr install amsmath --reinstall
# Remove package
sudo tlmgr remove amsmathReference: Complete tlmgr documentation available at http://tug.ctan.org/info/tlmgrbasics/doc/tlmgr.pdf
In this context, the DE and WM are the same thing. If the installation package does not come with a desktop environment, you won't even have a GUI to work with. I used GNOME + Ubuntu and Qtile + Arch, and I tend to prefer tiling windows managers, but other choice include KDE Plasma, Cinamon, Hyprland, i3. All these packages have their benefits and drawbacks.
There are mainly 2 sound software drivers: pulseAudio and pipewire. I've had a few problems with pulseAudio on Ubuntu so I currently use pipewire for Arch.
Install blueman for audio. Watch this video: https://www.youtube.com/~D_RdJjCU&t=298s for bluetooth on Arch. Should be straightforward to connect.
You should install xrandr and arandr, which provide both graphical and command line interfaces to switch monitor configurations.
If you have a touchpad and are running on X11, then you should install xinput, which is the xorg-xinput package. Then follow the steps in the Arch Wiki to set up custom settings like right clicking, scroll direction, touch to click, etc.
Note that this is not the same thing as a file system. This includes nemo, nautilus.
All the packages that you need should be available within the default package manager (apt, pacman, etc.). For Arch, yay is very important to download from the AUR and flatpak/snapd are good for Ubuntu. Also follow the video above to get the top 10 fastest routes for downloading, and allow parallel downloading.
You can first download git but to git clone with ssh, you need to set up some default configuration files.
You first make a key using ssh-keygen and just accept defaults. Now you want to activate the ssh-agent, so you do the eval "$(ssh-agent -s)" and then you do ssh-add ~/.ssh/id_ed2551 and then you do ssh-add ~/.ssh/id_ed25519. You paste the public key on github and whatever other organization sites you may need to ssh into. Then you can edit the ~/.ssh/config file to make things a bit easier.
Now you also probably want to configure your bash terminal. This can be done through the .bashrc file, where you can change the color and prompt for your terminal. It is also needed for permanently adding stuff to the $PATH.
While you on this just download htop, tree, nvtop, cmatrix, pactl (to control audio),
To me, the most important traits of these programs is that it is lightweight, fast, good keyboard shortcuts, and is aesthetic.
- PDF Viewer: zathura (nice CLI like Vim, good with vimtex)
- Image Viewer: nomacs (feh is too lightweight and has too little functionality, but I still need it since it's needed to set a background wallpaper for picom)
- Video Player: mpv
- Screenshot Tool: flameshot
You then want to set up default applications for when you're opening files by double clicking on them. To set them, install perl-file-mimeinfo and look at the Arch Wiki guide here (https://wiki.archlinux.org/title/default_applications) to set them.
You can download whatever, but my preferences in order are: Nightly, Firefox, Brave, Chrome, Edge.
You should have vim installed already. Now you install vim-plug by going on the github page and running their commands. Then you take the config file and run everything. You may have problems installing coc and vimtex. coc you need to install nodejs. For vimtex you need to make sure zathura (plus the other plugins that helps it render pdfs, epub, etc) are installed, and finally make sure that when you run.
First you want to install VScode (for Arch make sure to install the proprietary version by Microsoft since for the Arch one the ssh doesn't work). Then if you sign in you should have all your configurations and extensions loaded, which is good.
The next thing to do is to install Python, which you can do using yay or apt. It's not hard. Now I like to use the conda package manager since I do a lot of machine learning. I install miniconda3 from the website (prefer to do it over the apt or yay repository, and check where it is saved (could be in /opt/miniconda3 or /mbahng/miniconda3 or ~/.conda). You want your base environment to be minimial and almost never used. I personally don't install anything on there. I create one environment called torch-base which contains just a working installation of PyTorch. You must be very careful to check these dependencies (as of Nov 2023, PyTorch completely supports up to Python 3.10, though Python 3.12 is out). You want this env to be the rock solid deep learning package you can always fall back to or copy in case other ones break (which has happened to me quite often). The environment yaml and txt files are in this repo.
This can be easily done in with the default package manager (e.g. yay for Arch).
Then run nvidia-smi to see if it's working. Then install pytorch and see if it detects cuda. https://github.com/~rnel-parameter.
I'll list some that I use: Zulip, Slack, Caprine (Facebook Messenger), Bluebubbles (iMessage), Whatsapp, Simplenote, Zoom, Skype, Discord.
Spotify does the job for me.
Lutris with Overwatch, and make sure you can connect it to the GPU driver. Additional gaming software packages would be good. https://www.reddit.com/r/wine_gaming/comments/bkvhdx/play_overwatch_on_archlinux_with_3_steps/
Install VirtualBox
'mkdir /bin/custom_scripts' and put it into PATH in ~/.bashrc. Get the wiki, vimtex, and vstex commands all ready.
Set up configuration folders with symbolic links and update it with the stuff in this repository.
The ~./xprofile file runs everything when X loads up.
WARNING: Do not change under section Corners, the variable corner-radius to anything other than 0 (or whatever the default is). Doing this led to extremely large memory leaks in the shared RAM in my comptuer, which led to a huge headache solving it.