arch-install

notes

pacman-arch-chroot

Some 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

pacman-current-software

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-core

install/setup (WIP):

Everything now on /dev/sda3 root

# /etc/hosts

127.0.0.1	localhost
::1			localhost
127.0.1.1	<hostname>.localdomain	<hostname>

Install required network stuff to not have to arch-chroot again

Reboot

Note 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.

install-configure-ntfs

To have sane permissions:

install-ly-display-manager

Some:

install-de-wayland

TBD

https://archlinux.org/groups/

install-kde-x11

WIP list, cherry-picking from kde-applications:

install-i3wm-x11

AUR packages:

Configs and references:

TUI file managing is done with ranger, with highlight and w3m for code syntax and HTML/image preview.

GTK/KDE themes



Package Groups

basic-packages

install/setup:


sysadmin-packages

install/setup:

ryzen-hardware

install/setup:


basic-media-packages

install/setup:

extra-media-packages

install/setup:

phone-media-packages

This 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:

AUR packages:


basic-dev-packages

install/setup:

VSCode/Code/Codium

install/setup:

Add Microsoft marketplace to 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:

SSH auto-completion

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:

extra-dev-packages

install/setup:

cxx-dev

install/setup:

golang-dev

install/setup:


basic-gui-packages

install/setup:

AUR packages:

Flameshot multi-monitor

Edit Exec in /usr/share/applications/org.flameshot.Flameshot.desktop to:

Exec=env QT_QPA_PLATFORM=xcb flameshot


server-web-basic

install/setup:

documentation/reference:

server-web-dev

install/setup:

postgresql

TODO: Verify and add extra necessary steps

pg_ugprade

initdb

sudo rm -rd /var/lib/postgres/olddata

Replace PG_VERSION` with old version:


server-gitlab

gitlab-runner

See the following:

Config file: /etc/gitlab-runner/config.toml

install/setup:

This 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.

You’ll need to configure the runners and start them.

If you’re using the SSH runner, you’ll need to:

Here’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:

To unregister runners that were removed via GitLab web UI:


memes

AUR packages:


uncategorised-packages

Remmina (Remote Desktop)

install/setup:

documentation/reference:

Vinagre (Remote Desktop)

Not currently in use.

install/setup:



Issues

Discord not opening in browser

Make 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:

Set defaults:

DBeaver incompatible JVM

For some reason I ran into this after updating packages. Curse you Java.

This seemed to fix it:

documentation/reference: