Arch Linux Install Scratch:
Just some things to make life a little easier.
These notes lean on the terminal for app installation and editing key files, but file system pathways are noted for people more comfortable using file browsers.
I do not discuss firewalls, backups, or secure boots, as they are outside of the scope of getting a user off the ground with simple install that has the basics migrating from Windows.
We use archinstall, which also automatically handles your repository mirrors, CPU microcode support, graphics driver support, and networkmanager. We'll be building an install that has one user that is also the superuser.
We're assuming you've already made a bootable media and are at least familiar with getting into the live media of Arch Linux.
###
Install
###
In the live media:
pacman -Sy
pacman -S archinstall
archinstall
Run through the prompts. Choose KDE or skip the DE section entirely to install them manually once Arch Linux is installed.
Locales, leave as is
Mirrors, add United States mirrors.
Disk, use suggested format.
Disk Encryption, use at your discretion.
Swap, leave as is
Bootloader, leave as is
Hostname, set it to whatever
Root password, make sure you do this
User account, make at least one and make it superuser
Profile, Desktop, KDE Plasma
Audio, pipewire
Kernels, leave as is
Network configuration, Use NetworkManager
Additional packages: None, we'll do these post-install.
Timezone, set whatever
Install and Reboot. You should come to a login screen based on the Desktop Environment you chose.
If you didn't choose a DE, you should be dropped in the TTY. You can still login, then run terminal commands.
If you manage to get yourself into the DE without a terminal, press Ctrl + Alt + F3 to get into the TTY. You can manage your package installs through this.
In TTY, Ctrl + Alt + F2 takes you back to the DE or login screen.
IF YOU DO NOT HAVE A TERMINAL, GO TO THE TTY (Ctrl + Alt + F3). Once you've done your commands there, Ctrl + Alt + F2 to get back into the DE.
###
Manual Desktop Environment Installs
###
If for some reason, you didn't install a desktop environment, or you want to experiment with another, here's a manual installation for them.
KDE Plasma
# Lightweight Plasma, still testing what we can skip to maintain a complete environment.
sudo pacman -S plasma-desktop kscreen plasma-pa alsa-utils plasma-systemmonitor sddm
sudo systemctl enable sddm
xfce4
sudo pacman -S xfce4 xfce4-goodies lightdm network-manager-applet
# Clipboard manager.
sudo pacman -S clipman
sudo systemctl enable lightdm
###
pacman and AUR Helpers, and a word on sudo
###
"sudo" is going to come up a lot when you use the terminal. "sudo" is short for "superuser do"
"sudo" is a command line prefix that tells the kernel that we're performing actions - generally installations, but also some file editing, as "root." "root" is the highest level of authority in a Linux system, and that is the authority necessary and most secure when performing actions. "root" commands in the terminal are always going to start with "sudo."
Good Practice:
Before you do major installs, good practice is to run
sudo pacman -Syu # Downloads and installs the newest updates.
sudo pacman -Sc # Remove the leftover downloaded package files.
Note, pacman -Sc clears the package cache. If you find yourself needing to downgrade app versions, you'll need to redownload them through pacman -S.
AUR Helpers
If you're looking around for packages to install, see a recommendation, then try to pacman -S it, then get stopped by "Target not found," you can use an AUR helper.
First
sudo pacman -S --needed base-devel git
Then
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
Alternatively
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
Then, any time pacman doesn't have a package, but the AUR helper does, run "yay -Sy" (or "paru -Sy") in place of "pacman -S"
https://aur.archlinux.org/ has a complete searchable database of Linux applications that can be installed through AUR helpers.
Be mindful, this is community maintained, which means malignant packages can slip through the cracks. The rule of thumb is to check the PKGBUILD of the AUR installation before running the AUR command for it - but new end users wouldn't know what to look for. The other rule of thumb is to just not blindly install packages through AUR without checking feedback on it first.
###
Post-Install
###
You need a terminal emulator, a text editor, a file browser and a way to make that file browser robust, and a way to easily show your system specs. You need a way to handle archive files, read .pdf and .epub files, browse file galleries and images, and a way to listen to music and watch videos. You're also going to need codecs to handle a lot of audio and video file types.
System Essentials
sudo pacman -S konsole kate dolphin dolphin-plugins fastfetch
Media Essentials
sudo pacman -S ark okular gwenview mpv yt-dlp ffmpegthumbs
File compression management
sudo pacman -S p7zip unrar
Media codecs
sudo pacman -S gst-libav gst-plugins-good gst-plugins-bad gst-plugins-ugly
Printers (Optional)
sudo pacman -S cups system-config-printer
sudo systemctl enable cups
###
List of Recommended Apps
###
The following have Linux versions:
Brave | yay -S brave-bin
LibreWolf | yay -S librewolf-bin
LibreOffice | sudo pacman -S libreoffice
XNViewMP | yay -S xnviewmp
MPV | sudo pacman -S mpv
Tor | Download it from the Tor homepage: https://www.torproject.org/download/
The following are Windows applications, to(>) nearest Linux equivalents, and it's the reason those near equivalents chosen in the earlier essentials section:
Windows File Explorer > Dolphin | sudo pacman -S dolphin
Notepad++ > Kate | sudo pacman -S kate
Microsoft Image Viewer > Gwenview | sudo pacman -S gwenview
Adobe PDF Reader, Calibre > Okular | sudo pacman -S okular
###
Specific App Details
###
Tor:
Download Tor from the official website. The download for linux is a portable application, so just unzip and drop it wherever in your file system. For my purposes, it's under /home/c/Documents/Portable Apps
To make it an app in the system, open Terminal
cd "/home/c/Documents/Portable Apps/tor-browser"
./start-tor-browser.desktop --register-app
This makes it appear in your menu as a recognized app, which you can then pin to your taskbar.
You can do this with any AppImage that runs on Linux.
XnviewMP:
XNView does not follow the system color theming. Change it here:
Tools > Settings, General > Theme
Firefox Profiles:
# Manually drop your firefox profiles here.
~/.mozilla/firefox/
In Dolphin, enable hidden files with Ctrl + H. You can manually drop your Firefox (or Firefox based) profiles here.
MPV profiles:
# User configs (no root needed):
~/.config/mpv/mpv.conf
# User configs (root needed)
/etc/mpv/
You will not have an mpv.conf or input.conf by default. You will also need root permission to make them or drag and drop existing ones here.
###
Other Stuff
###
Missing Japanese text:
Terminal
sudo pacman -S noto-fonts-cjk
Enable multilib packages in pacman:
sudo nano /etc/pacman.conf
Use the arrow keyes and uncomment these lines:
[multilib]
Include = /etc/pacman.d/mirrorlist
Then, to re-sync the new packages.
sudo pacman -Sy
This is important for WINE and for Steam.
###
System Tweaks
###
KDE Tweaks to make it a little more Windows-like. You can keep or kill the default bindings at your discretion.
Open up System Settings and move over to Keyboard > Shortcuts. Set:
System Settings
Launch: Meta + I
Spectacle
Capture Entire Desktop: Untick Shift + Print, add Print
Record Rectangular Region: Untick Meta + R
Window Management,
Maximize Wndow: Meta + Up
Minimize Window: Meda + Down
Konsole
Launch: Add Meta + R
# These are optional and generally unsecure, but they let you get back to using your system quicker.
Autologin, skip lock screen and password:
nano /etc/sddm.conf.d/autologin.conf
If the directory does not exist,
mkdir /etc/sddm.conf.d
Then re-run the nano command.
In autologin.conf:
[Autologin]
User=[user]
Session=[session] # xfce4, KDE Wayland, KDE X11
Ctrl + O, Enter, Ctrl + X
XFCE4, no lock screen on wakeup (old Windows behavior):
System Settings > Power Manager > System Tab > Uncheck "Lock screen when system is going to sleep."
Settings > XfceScreensaver, Lock Screen Tab > Uncheck "Enable Lockscreen"
KDE, no lock screen on wakeup (old Windows behavior):
System Settings > Screen Lockng:
Lock screen automatically: Never
Untick: Lock after waking up from sleep
###
Network Shares (CIFS)
###
Slowly read this section instead of jumping through it. There's actually a lot going on here.
In KDE, use Wi-Fi & Networking
In XFCE, use Advanced Network Configuration (network-manager-applet)
Part 1, LAN setup.
We're going to manually arrange two devices in a LAN, where Device B can access shares on Device A.
Device A (Windows 10 )
Control Panel > Network Connections > Ethernet (the one you know connects both machines)
Right Click > Properties
TCP/ICP4 settings
Tick Use the Following IP Address:
IP: 10.0.0.1
Subnet: 255.255.255.0
Device B (Arch Linux, Network-Manager-Applet)
Highlight Wired Connection (the one you know connects both machines), click the Gear icon
IPv4 Settings tab
Additional static IP addresses, Add
IP: 10.0.0.2
Netmask: 24
Subnet: 255.255.255.0
You do not have to do this to arrange any shares that are on Wifi. The method we'll do will mount shares assuming a static IP on Device A, which can be a regular LAN address (192.168.1.xxx). In that case, use yours in place of the sample address in Part 2
Part 2, cifs Automounted Shares
For our example, we'll assume you have 2 additional network drives, a D drive and an E drive.
#Make locations to mount the shares in the file system.
sudo mkdir /mnt/Shares/D
sudo mkdir /mnt/Shares/E
# Open nano and add the network locations to file system tab (fstab)
nano /etc/fstab
//10.0.0.1/d /mnt/Shares/D cifs username=cow,password=moo,user,iocharset=utf8,noauto,users,soft,retrans=3,_netdev 0 0
//10.0.0.1/e /mnt/Shares/E cifs username=cow,password=moo,user,iocharset=utf8,noauto,users,soft,retrans=3,_netdev 0 0
Then reboot and login.
Let's break down the options:
username=cow
password=moo #self explanatory
iocharset=utf8 #this is the encoding of the response to the queries the network will make when you try to connect.
noauto #doesn't automount the share.
users #this makes it so regular users can freely unmount the network shares in file browsers without root access.
soft #Allows I/O to fail instead of hanging.
retrans=3 #Number of retries before failing
_netdev #Wait for network to be available.
Part 3, Credentials
Use credentials to keep from putting your username and password in plain text.
Terminal:
sudo mkdir -p /etc/samba
kate /etc/samba/credentials
In credentials:
user=cow
password=moo
Save it. Now we set it so it's read accessible by users. Back to terminal:
sudo chmod 644 /etc/samba/credentials
sudo chown root:root /etc/samba/credentials
Back to fstab:
//10.0.0.1/d /mnt/Shares/D cifs credentials=/etc/samba/credentials,iocharset=utf8,noauto,users,soft,retrans=3,_netdev 0 0
//10.0.0.1/e /mnt/Shares/E cifs credentials=/etc/samba/credentials,iocharset=utf8,noauto,users,soft,retrans=3,_netdev 0 0
Reboot, you should still be able to log into your shares.
So let's go over the problems with this. Part 1 is fine. Part 2 and Part 3 are where we run into some issues.
If the connection breaks on a CIFS share, the entire file system hangs. That's why we don't automount the network shares at system login since we may not always have the theoretical ethernet cable connecting the two machines or the Wifi may not have connected or the Wifi may be spotty. We're only setting the locations for us to manually mount them when they're available.
Also, the credentials file is still accessible by regular users instead of exclusively to root - it has to be for it to be able to mount and unmount shares as a regular user using a file browser like dolphin, thunar or nemo.
This works, but it's not optimal and it's not fully secure.