Load german keyboard layout. Use "ß" on a german keyboard to type "-"
loadkeys de-latin1Enter iwctl
iwctl
Check the name and adapter of your wireless devices. It might be different than wlan0.
device list
If needed power on the adapter.
adapter <adapter> set-property Powered on
Scan for available Networks. This command has no verbose output
station wlan0 scan
Show available networks
station wlan0 get-networks
Connect to network
station wlan0 connect <SSID>
Enable sshd (should be by default)
systemctl enable sshdSet password for current user
passwdShow device IP address
ip addrRemotely login with this command:
ssh root@<sddr>Get names of the blocks
lsblkEnter gdisk
gdisk /dev/nvme0n1Inside of gdisk use x for advanced options and z to to whipe the current partition table.
Enter gdisk again, and create new partitions using n command.
| partition | first sector | last sector | code | use |
|---|---|---|---|---|
| 1 | default | +512M | ef00 | EFI |
| 2 | default | +4G | ef02 | boot |
| 3 | default | default | 8309 | Luks |
Load the encryption modules to be save.
modprobe dm-cryptmodprobe dm-modSetting up encryption on the luks lvm partition. Enter your password, and keep it save!!
cryptsetup luksFormat -v -s 512 -h sha512 /dev/nvme0n1p3Mount the dive
cryptsetup open /dev/nvme0n1p3 luks_lvmCreate the volume and volume group
pvcreate /dev/mapper/luks_lvmvgcreate arch /dev/mapper/luks_lvmCreate swap volume. Size should be RAM size + 2G
lvcreate -n swap -L 18G archRoot volume
lvcreate -n root -L 128G archRemaining space for home partition
lvcreate -n home -l +100%FREE archFAT32 on EFI partition
mkfs.fat -F32 /dev/nvme0n1p1EXT4 on Boot partition
mkfs.ext4 /dev/nvme0n1p2BTRFS on root
mkfs.btrfs -L root /dev/mapper/arch-rootBTRFS on home
mkfs.btrfs -L home /dev/mapper/arch-homeSetup swap
mkswap /dev/mapper/arch-swapMount swap
swapon /dev/mapper/arch-swapswapon -amount /dev/mapper/arch-root /mntbtrfs su cr /mnt/@
btrfs su cr /mnt/@tmp
btrfs su cr /mnt/@log
btrfs su cr /mnt/@pkg
btrfs su cr /mnt/@snapshotsumount /mntmount /dev/mapper/arch-home /mntbtrfs su cr /mnt/@homeumount /mntMount root partition
mount -o relatime,space_cache=v2,ssd,compress=zstd,subvol=@ /dev/mapper/arch-root /mntCreate home and boot directory in root
mount --mkdir -o relatime,space_cache=v2,ssd,compress=zstd,subvol=@tmp /dev/mapper/arch-root /mnt/tmp
mount --mkdir -o relatime,space_cache=v2,ssd,compress=zstd,subvol=@log /dev/mapper/arch-root /mnt/var/log
mount --mkdir -o relatime,space_cache=v2,ssd,compress=zstd,subvol=@pkg /dev/mapper/arch-root /mnt/var/cache/pacman/pkg
mount --mkdir -o relatime,space_cache=v2,ssd,compress=zstd,subvol=@snapshots /dev/mapper/arch-root /mnt/.snapshots
mount --mkdir -o relatime,space_cache=v2,ssd,compress=zstd,subvol=@home /dev/mapper/arch-home /mnt/home
mount --mkdir -o relatime,space_cache=v2,ssd,compress=zstd,subvolid=5 /dev/mapper/arch-root /mnt/btrfs
mount --mkdir /dev/nvme0n1p2 /mnt/boot
mount --mkdir /dev/nvme0n1p1 /mnt/boot/efipacstrap -K /mnt base base-devel linux linux-firmware btrfs-progs bash-completion neovim lvm2 grub efibootmgrLoad the file table
genfstab -U -p /mnt > /mnt/etc/fstabchroot into installation
arch-chroot /mnt /bin/bashAdd encrypt and lvm2 HOOKS
nvim /etc/mkinitcpio.confHOOKS=(... block encrypt lvm2 filesystem ...)
Setup grub on efi partition
grub-install --efi-directory=/boot/efiObtain your lvm partition device UUID and copy them to your clipboard.
blkid /dev/nvme0n1p3Add the following kernel parameters to grub.
nvim /etc/default/grubadd to variables: root=/dev/mapper/arch-root cryptdevice=UUID=<uuid>:luks_lvm mkdir /secureCreate root keyfile
dd if=/dev/random of=/secure/root_keyfile.bin bs=512 count=8Change permissions
chmod 000 /secure/root_keyfile.binAlso smart to change permissions on these
chmod 600 /boot/initramfs-linnux*Add keyfile to partition
cryptsetup luksAddKey /dev/nvme0n1p3 /secure/root_keyfile.binAdd keyfile to mkinitcpio.conf
nvim /etc/mkinitcpio.confFILES=(/secure/root_keyfile.bin)
reload linux
mkinitcpio -p linuxCreate grub config
grub-mkconfig -o /boot/grub/grub.cfggrub-mkconfig -o /boot/efi/EFI/arch/grub.cfgSave keyboard config to file
echo "KEYMAP=de-latin1" > /etc/vconsole.confln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtimehwclock --systohcAdd NTP servers:
nvim /etc/systemd/timesyncd.conf[Time]
NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org
Enable timesyncd
systemctl enable systemd-timesyncd.serviceUncomment locales
nvim /etc/locale.gende_DE.UTF-8 UTF-8
en_US.UTF-8 UTF-8
locale-gennvim /etc/locale.confLANG=en_US.UTF-8
LANGUAGE=en_US:en:C:de_DE:de
LC_COLLATE=C
LC_TIME=de_DE.UTF-8
echo "name" > /etc/hostnameEnable multilib, color and parallelDownload in /etc/pacman.conf
nvim /etc/pacman.confColor
ParallelDownloads = 5
...
[multilib]
Include = /etc/pacman.d/mirrorlist
$pacman -SyInstall zsh if you want your user to use it instead of Bash
pacman -S zshSet root password
passwdAdd new user
useradd -m -g users -G wheel,storage,power -s /bin/zsh userSet pasword for user
passwd userAdd the wheel group to sudoers by uncommenting the line
EDITOR=nvim visudo%wheel ALL=(ALL:ALL) ALL
pacman -S networkmanagersystemctl enable NetworkManager.serviceFor intel:
pacman -S intel-ucodeFor AMD:
pacman -S amd-ucodeMake grub.cfg
grub-mkconfig -o /boot/grub/grub.cfggrub-mkconfig -o /boot/efi/EFI/arch/grub.cfgexit
unmount -R /mnt
reboot
nmcli device wifi connect Zwerg password [password]Create all default XDG folder
sudo pacman -S xdg-uuser-dirsxdg-user-dirs-updpateCreate folder for self installed programs
mkdir ~/ProgramsInstall git to clone the repo
sudo pacman -S gitgit clone https://aur.archlinux.org/yay.git ~/Programs
```sh
cd ~/Programs
```sh
makepkg -siyay -S opensshmkdir ~/.sshecho "AddKeysToAgent yes" > ~/.ssh/configsystemctl --user enable --now ssh-agent.servicessh-keygen -C "comment"Add to .ssh/config:
Host *
IdentityFile ~/.ssh/sshHootsmanPrivat
TODO: setup ssh to remotely ssh into the system
Install gnu-stow for dotfile management
sudo pacman -S stowgit clone https://github.com/budlicode/dotfilescd dotfilespackages for dotfiles
yay -S --needed fzf soxide fd eza batstow . --dotfilesBTRFS required Install timeshift grub-btrfs and timeshift-autosnap
yay -S timeshift grub-btrfs cronie timeshift-autosnapStart timeshift and use the Wizzard
change snapper to timeshift-autosudo systemctl edit --full grub-btrfsdExecStart=/usr/bin/grub-btrfs --syslog --timeshift-autosudo systemctl enable --now grub-btrfsdsudo nvim /etc/timeshift-autosnap.confyay -S tlpsudo systemctl enable --now tlpsudo systemctl mask --now systemd-rfkill.servicesudo systemctl mask --now systemd-rfkill.socketintel GPU
yay -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel intel-gpu-tools libva-utils intel-media-driverpipewire-audio
yay -S pipewire lib32-pipewire pipewire-docs wireplumber pwvucontrol pipewire-audio pipewire-alsa pipewire-pulse pipewire-jack lib32-pipewire-jackfonts install:
yay -S ttf-liberation ttf-ubuntu-font-family ttf-anonymous-pro ttf-dejavu ttf-bitstream-vera adobe-source-sans-pro-fonts noto-fonts noto-fonts-cjk ttf-hack-nerdbasic apps:
yay -S man-db man-pages tldr vivaldi alacritty dolphin wget zip unzip ripgrep keepassxc libreoffice-still tar tmux gpartedWM Hyprland:
yay -S hyprland wofi dunst pipewire wireplumber xdg-desktop-portal-hyprland polkit-kde-agent qt5-wayland qt6-wayland hyprlidle hyprlock hyprpaper brightnessctl waybarzusatz: qt4ct qt5ct qt6ct nwg-look
- ssh
- rate mirrors
- complete ssh-agent setup after shell
- hyprpaper (wallpaper)
- hypridle (idle manager)
- workspace manager? hyprsome
- HyprLS editor support für hyprland config
- hyprlock
- hyprcurser + einrichten
- wofi
- Clipboard manager
- screensharing? https://gist.github.com/brunoanc/2dea6ddf6974ba4e5d26c3139ffb7580
- xwaylandvideobridge
- Discord (Webcord?)
- WebApps (Teams...)
- greetd/
- terminal emulator: kitty
- shell: zsh + tmux
- cmd prompt: starship
- file explorer: thunar (später ranger?)
- dotfiles kopieren
- sound alsa pipewire
- vivaldi einrichten
- power management
- dotfiles manager suchen
- grub theme
- sddm einrichten
- theme einrichten
- waybar einrichten
- OSD
- network manager applet
- usb mounting udiskie?
- tab-replacement?
- hyprland plugins?
- firewall?
- screenshots?
- nvim zufriedenstellend einrichten/lernen
- VMsu