git clone AUR packages to ~/aur-packagesgit clone other packages to ~/git-packages, or combine the two into ~/git-packagesSome basics to get started during arch-chroot.
> pacman -S vim sudo efibootmgr dosfstools os-prober mtools iw iwd networkmanager dhcpcd base-devel git curl wget make cmake gcc ufw neofetch htop nano
Additionally, if on WiFi:
> pacman -S iwd iw
Mostly all the software I’ll need, excluding anything that depends on the desktop env - e.g., calcurse is my current calendar choice on i3, but on KDE I use the default.
> pacman -S code clang clang-tidy clang-format keychain speedtest-cli ttf-fira-code flameshot go golangci-lint firefox stress strace ntfs-3g discord thunderbird dos2unix ncdu shellcheck qalculate-gtk composer nmap nmon dnsutils man-pages jq zip unzip qalculate-gtk libcdio nomacs vlc ark dbeaver redis cloc neovim ranger highlight w3m
install/setup (WIP):
> loadkeys uk> ping google.com
> pacman -S networkmanager> iwctl> [iwd] device list> [iwd] station <device> scan> [iwd] station <device> get-networks> [iwd] station <device> connect <network>> timedatectl set-ntp true> timedatectl status> fdisk -l -> fdisk (create partitions as desired)
> mkfs.fat -F32 /dev/sda1> mkswap /dev/sda2> swapon /dev/sda2> mkfs.ext4 /dev/sda3> mount /dev/sda3 /mnt> pacstrap /mnt base linux linux-firmware> genfstab -U /mnt >> /mnt/etc/fstab> arch-chrott /mntEverything now on /dev/sda3 root
> ln- -sf /usr/share/zoneinfo/Europe/London /etc/localtime> hwclock --systohc> pacman -S vim sudovim /etc/locale.gen -> uncomment en_GB UTF8> locale-gen> vim /etc/hostname> vim /etc/hosts# /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 <hostname>.localdomain <hostname>
> passwd> useradd -m <username>> passwd <username>> usermod -aG wheel,audio,video,optical <username>> pacman -S sudo> EDITOR=vim visudo
> pacman -S efibootmgr dosfstools os-prober mtools> mkdir /boot/EFI> mount /dev/sda1 /boot/EFI> grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheckInstall required network stuff to not have to arch-chroot again
> pacman -S networkmanager dhcpcd
> pacman -S iwd iw> systemctl enable NetworkManager> exitReboot
> umount /mnt
> umount -f /mnt> umount -l /mntNote that after installing the core and being set up, you may want to disable iw/iwd and only keep NetworkManager enabled.
I’ve read that you can use iw as the backend for NetworkManager, and it may be faster or something, but that’s for another day to look into.
> sudo pacman -S ntfs-3gTo have sane permissions:
uid and gid with cat /etc/passwd | grep <username>> sudo vim /etc/fstab
uid=1000,gid=1000,fmask=0022,dmask=00220022 represents chmod 755> umount /mnt-point your drive> sudo systemctl daemon-reload to use the new fstab> mount -a /dev/drive /mnt-point
-a it doesn’t mount using the new options for some reason.> make> sudo make run to test run> sudo make> sudo systemctl disable sddm disable existing display manager, such as sddm> sudo systemctl enable ly.service> sudo systemctl disable [email protected] to allow switching ttys and not show the ly login prompt on themSome:
x_cmd_setup in /etc/ly/config.iniexec i3 command in ~/.xinitrc because opening links from Discord was broken, I assume ly does that itself and it conflicts? idkTBD
> sudo pacman -S xorg plasmaWIP list, cherry-picking from kde-applications:
dolphinkonsole> sudo pacman -S xorg i3 dunst rofi hsetroot redshift picom brightnessctl rofi-greenclip pasystray pavucontrol calcurse ranger highlight w3mAUR packages:
Configs and references:
pasystray for audio tray iconTUI file managing is done with ranger, with highlight and w3m for code syntax and HTML/image preview.
GTK/KDE themes
breeze, breeze-gtk, and systemsettingsinstall/setup:
sudo pacman -S git curl wget neofetch zip unzip vim nano opensshinstall/setup:
sudo pacman -S htop stress speedtest-cli ntfs-3g ufwinstall/setup:
lsmod | grep k10tempsudo modprobe -r k10temp if the above showed it was activesudo modprobe zenpower to load new driverinstall/setup:
sudo pacman -S nomacs vlc mpvinstall/setup:
sudo pacman -S libcdioThis is for accessing your phone’s files. You may or may not need everything from this and it’ll also depend on your file manager, e.g. Thunar
install/setup:
sudo pacman -S mtpfs gfvs-mtpAUR packages:
install/setup:
sudo pacman -S dos2unix ncdu shellcheck ttf-fira-code neoviminstall/setup:
sudo pacman -S codeAdd Microsoft marketplace to product.json
/usr/lib/code/product.json{
"extensionsGallery": {
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
"itemUrl": "https://marketplace.visualstudio.com/items",
"controlUrl": "",
"recommendationsUrl": ""
}
}
documentation/reference:
Arch for some reason doesn’t have autocmplete of SSH hosts from within ~/.ssh/config, but Ubuntu does.
Add the following to ~/.bashrc:
_ssh()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts=$(grep '^Host' ~/.ssh/config ~/.ssh/config.d/* 2>/dev/null | grep -v '[?*]' | cut -d ' ' -f 2-)
COMPREPLY=( $(compgen -W "$opts" -- ${cur}) )
return 0
}
complete -F _ssh ssh
Reference:
install/setup:
sudo pacman -S nmap nmon dnsutils man-pages jq strace keychain cloc redisinstall/setup:
sudo pacman -S make cmake gcc clang clang-tidy clang-formatinstall/setup:
sudo pacman -S go golangci-lintinstall/setup:
sudo pacman -S firefox ark flameshot qalculate-gtk discord thunderbirdAUR packages:
Edit Exec in /usr/share/applications/org.flameshot.Flameshot.desktop to:
Exec=env QT_QPA_PLATFORM=xcb flameshot
install/setup:
sudo pacman -S nginx mariadb php php-fpm php7 php7-fpmsudo systemctl enable nginxsudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysqlsudo systemctl enable mysqlsudo mysql_secure_installationsudo systemctl enable php-fpm7documentation/reference:
install/setup:
sudo pacman -S composerwget or curl command for NVM herenvm install --ltsnvm install v16nvm use --ltsTODO: Verify and add extra necessary steps
> sudo pacman -S postgresql> sudo -iu postgres> [postgres] initdb -D /var/lib/postgres/data> [postgres] createuser --interactive> [postgres] createdb myDatabaseName> initdb -D /var/lib/postgres/data --locale=en_US.UTF-8 --encoding=UTF8 --data-checksums> mv /var/lib/postgres/data /var/lib/postgres/olddata> mkdir /var/lib/postgres/data /var/lib/postgres/tmp> chown postgres:postgres /var/lib/postgres/data /var/lib/postgres/tmp> cd /var/lib/postgres/tmp> sudo -su postgres> [postgres] initdb -D /var/lib/postgres/data --locale=en_US.UTF-8 --encoding=UTF8 --data-checksumsReplace PG_VERSION` with old version:
> [postgres] pg_upgrade -b /opt/pgsql-PG_VERSION/bin -B /usr/bin -d /var/lib/postgres/olddata -D /var/lib/postgres/dataSee the following:
Config file: /etc/gitlab-runner/config.toml
install/setup:
> sudo pacman -S gitlab-runnerThis will create the user “gitlab-runner”, etc., but I had some issues with running gitlab-runner start or systemctl start gitlab-runner, and re-creating the user worked.
sudo useradd --comment 'gitlab-runner' --create-home gitlab-runner --shell /bin/bashYou’ll need to configure the runners and start them.
If you’re using the SSH runner, you’ll need to:
config.tml to point to the userdisable_strict_host_key_checking = true - see https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29084install.sh cats into the ~/.bashrc into ~/.bash_profile before ~/.bashrc is laodedHere’s an example /etc/gitlab-runner/config.tml
concurrent = 1
check_interval = 0
shutdown_timeout = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "aterlux ssh runner"
url = "https://gitlab.com/"
id = redacted
token = "redacted"
token_obtained_at = 2023-03-26T01:49:03Z
token_expires_at = 0001-01-01T00:00:00Z
executor = "ssh"
[runners.cache]
MaxUploadedArchiveSize = 0
[runners.ssh]
user = "gitlab-runner"
host = "public.ip.goes.here"
port = "22"
disable_strict_host_key_checking = true
identity_file = "/home/gitlab-runner/.ssh/id_ed25519"
To unregister runners, do:
> sudo gitlab-runner unregister --url https://gitlab.com --token tokenTo unregister runners that were removed via GitLab web UI:
> sudo gitlab-runner verify --deleteAUR packages:
install/setup:
sudo pacman -S remminasudo pacman -S libvncserver for VNC supportsudo pacman -S spice-gtk for spice-gtk supportsudo pacman -S freerdp for RDP supportkillall remmina to refresh or whatever to get the RDP support to pop updocumentation/reference:
Not currently in use.
install/setup:
sudo pacman -S vinagreMake sure xdg-utils is installed. I already had it installed and everything worked, but Discord is shit and sometimes decides to break itself.
Check default web browser and handlers for URLs:
> xdg-settings get default-web-browser> xdg-mime query default x-scheme-handler/http> xdg-mime query default scheme-handler/http> xdg-mime query default x-scheme-handler/https> xdg-mime query default scheme-handler/httpsSet defaults:
> xdg-mime default firefox.desktop x-scheme-handler/http> xdg-mime default firefox.desktop scheme-handler/http> xdg-mime default firefox.desktop x-scheme-handler/https> xdg-mime default firefox.desktop scheme-handler/httpsFor some reason I ran into this after updating packages. Curse you Java.
This seemed to fix it:
> sudo archlinux-java set java-11-openjdkdocumentation/reference: