- 
y/n
- -
- rolling release
 - minimal from the start
 - arch wiki
 - unique
- pacman + AUR
 - independent fork
 - not really pushed by any corps
 - culture/community
 
 
 - n
- less transferable professional/enterprise skills compared to debian/fedora based distros
 
 
 - -
 - 
low level comps
- Package managers
 - Firmware-Hardware
 - Partitioning nd FS creation
 - display server
- x11
 - wayland - new, more secure, slim, still not much used
 
 - init systems
- runit - Minimalist, service supervision, potentially fastest
- can easily run on non‑Linux kernels eg BSD
 - fairly popular, like 3rd place
 - Extremely fast boot, simple 3‑stage init, per‑service directories
 
 - BusyBox - minimalist, Tiny footprint, basic runlevels
- very popular for embedded
 
 - OpenRC - Dependency‑based, lightweight
- probably second-best by popularity
 - can easily run on non‑Linux kernels eg BSD
 - Parallel startup, service supervision, no hard ties to Linux‑only features
 
 - s6
 - system D - """bloated""" init system - LS
- what? init system
- first process that starts after booting, runs on bkg to manage services etc
 - launch what you need, in specific order
 
 - cons
- one point of failure sunce it’s monolythic
 - kind of bloated
- it is modular but most people implement this all togheter
 - at the same time, it’s fast
 
 - pushes other software to be dependant on it
- creates problems to distros not willing to use systemD
 
 - hides certain configs behind its own tools
- especially bad if you want to change text files
 
 
 - 
- 
- mainly red-hat project
 
 
 - 
 - pros
- still 1st place for enterprise level servers…?
 - popular if not most popular, used in
- RHEL, SUSE, Debian, arch, etc…
 
 - written in C
 - mantained
 
 
 - what? init system
 - kinda legacy - slower even than sys D
- sysV - slower & older
 - Upstart - event driven
- Starts/stops services based on events
 
 
 
 - runit - Minimalist, service supervision, potentially fastest
 - kernel type - src
- downlaod kernel linux-lts
- 6.12.5-arch1-1 → you’re on the mainline linux package.
 - 6.6.54-lts → you’re on the linux-lts package.
 uname -r- check which one u’re using currently- u pick which u want from GRUB menu
 - how to pin a kernel version - src
 
 - custom - gentoo
 - linux stable - 2 months stable
 - linux lts - 2 years stable
 - libre kernel - does not allow proprietary stuff
- usually these proprietary stuff gives hardware support
- so you might not be able to use this at all
 
 - released after a few days of linux stable
 
 - usually these proprietary stuff gives hardware support
 - hardened kernel - non official more secure kernel
- incompatible with systemd
 - might brake some software
 
 - android kernel - specific for mobile devices
 - real-time & low latency
- reduce latency between input and output of task at the cost of… much, especially multitasking
 - applications needs to be tailored to this to be useful
 
 - zen kernel & xan mod - better performance
 - TKG kernels -
 
 - downlaod kernel linux-lts
 - firmware blobs
 - UEFI vs legacy Bios
- supports big storage
 - supports graphics when you boot
 
 - Table partitioning
- GPT
 - MBR - no more than 2TB
 
 - boot loader/manager
- grub
- grub-install
 - grub-mkconfig -o /boot/grub/grub.cfg
 
 
 - grub
 - file systems
 - audio setup lin
 
 - 
Initial configuration
- archinstall
- mirror
- where software come from? better if close to phisical location like Italy
 
 - f
 - img
 
 - mirror
 - exit (chroot) - sometimes you also need to reboot
- especially if startx gives you permission denied. Reboot and log-in with default user like e
 
 - locale
- LC_ALL overwrites everything else
 - check
- in use
- localectl status
 - locale
 
 - available
- locale —all-locales
 - localectl list-locales
 
 - save & generate
- locale-gen
 
 
 - in use
 - reload
- source /etc/profile.d/locale.sh
 
 - set
sudo localectl set-locale LANG=en_US.UTF-8- main file where locale will be read from FIRST
v ~/.config/locale.conf
 - secondary looked at files
- v /etc/locale.gen
 ~/.bashrc~/.profile
 - main script from where everything starts:
- v /etc/profile.d/locale.sh
 
 
 - keyboard layout - src
- localectl set-keymap uk
 - gb is great britain
 
 
 - resolution
- pacman -S xorg-xrandr
 - xrandr - see all devices
 - go to xinit
 - xrandr —output HDMI-1 —mode 1920x1080 —rate 60
 
 - user & add password
- useradd -m -g wheel myNewUserName
 - passwd myNewUserName
 - nano /etc/sudoers
 
 - fonts
- quick: pacman -S tff-dejavu
 
 - xorg
- 
pacman -S xorg-server xorg-xinit
 - 
add to
~/.xinitrc:exec dwmor whatever u using - 
xinit
 - 
kill xorg server: ctrl + alt + backspace
 - 
Fixing xinit/startx not running without sudo

sudo usermod -aG tty username
- 
Not sure if these stuff is useful

sudo chmod 660 /dev/tty2 sudo chmod 660 /dev/tty3
no screens found
X -configure sudo cp /root/xorg.conf.new /etc/X11/xorg.conf
cp /etc/X11/xinit/xinitrc ~/ 
startx or xinit — :1 -nolisten tcp vt$XDG_VTNR that’s the enchanced way to do xinit needed in systemd -nolisten tcp optional but great
 - 
 
 - 
 - default browser
- xdg-mime query default x-scheme-handler/http
- output: brave-browser.desktop
 
 - xdg-mime default firefox.desktop x-scheme-handler/http x-scheme-handler/https
- to change it
 
 
 - xdg-mime query default x-scheme-handler/http
 - Bluetooth - arch tutorial
- lsmod | grep btusb          if it doesn’t give any output…
- sudo modprobe btusb
 
 - sp -S bluez bluez-utils
- can also install a GUI for this like blueman - src
 
 - sudo systemctl start bluetooth.service
 - sudo systemctl enable bluetooth.service
 - continue follow tutorial or
- try blueman-manager
 
 
 - lsmod | grep btusb          if it doesn’t give any output…
 - lin app dev tools
 - lin App-Software
 - Obsidian/Software offline → Obsidian
 
 - archinstall
 - 
Smaller
- 
Customize startup settings
- nano ~/.profile - these run after log-in
 - $PATH - path that lin check to run commands
 - 
if have bashrc, run it
 
.bashrc && . ~/.bashrc
export PATH=$PATH:&HOME/.scripts export EDITOR=“vim” export TERMINAL=“st” export BROWSER=“firefox”
 - 
additional downloads
- Helpers for AUR - needs base-devel & git
sudo pacman -S --needed base-devel git- 
paru
- rustup for cargo pkg
 
 - yay - mantainer ditched it and created paru
 
 - Paru needed
- vscodium - 
paru -S vscodium-bin- if you get permissions errors is because it’s setup by default to use /run/user/0, the problem is that this directory changes based on who log-in first in the TTY
 
 - brave bin
 
 - vscodium - 
 
 - Helpers for AUR - needs base-devel & git
 - 
export LC_TIME=‘en_US.UTF-8’
- if not, AM/PM won’t show!?
 
 
 - 
 - 
my experience
- 14/09/2025 - much more stable than I thought it would be
- It almost broke but it was my fault every time
- dependency hell
- a package’s specific version was required by electron as a dependency and it prevented me to update
 - so I signed it to be skipped from the update
 - turns out it was essential for the system :)
- I couldn’t open apps because they were expecting a certain version of that package
 - strangely enough the ones that were already open didn’t care at all
 
 - uninstalled electron since it was an orphan package, re-updated the system and it was fixed
 
 - chose too little space for the root partition
- because of that the startup time was slower and it would become unusable out of nowhere 1 time every other day until I’d restart it
 - annoying, maybe it highs up the risk of loosing data (not that I lost anything) but nothing special
 - I know it was my bad because I had always less than 2gb of free space on the root partition…
 
 
 - dependency hell
 - every other time it was very minor
- like not being able to install software until I update the system
 
 - maybe it’s because I never had a desktop environment here?
 - It’s been more than 1 year since I have arch and I update it 1 time a week or every two weeks depending on vibes, maybe I should automate it
 
 - It almost broke but it was my fault every time
 
 - 14/09/2025 - much more stable than I thought it would be
 

