From e64adcdfabcefed51c7715447bb9d406d12be423 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 29 Dec 2025 12:15:05 -0600 Subject: [PATCH] Add linux-artix-install-and-system-config doc, update obsidian-nvim --- .../linux-artix-install-and-system-config.md | 242 ++++++++++++++++++ .../nvim/lua/plugins_lazy/obsidian.lua | 3 + 2 files changed, 245 insertions(+) create mode 100644 docs/installation-reference/linux-artix-install-and-system-config.md diff --git a/docs/installation-reference/linux-artix-install-and-system-config.md b/docs/installation-reference/linux-artix-install-and-system-config.md new file mode 100644 index 0000000..6b06946 --- /dev/null +++ b/docs/installation-reference/linux-artix-install-and-system-config.md @@ -0,0 +1,242 @@ +# Artix Linux - Install and System Config + +**Attribution:** +Most or much of this was generated by or derived from Grok, or else from Artix docs, Arch docs/wiki, or else the docs for the particular programs or packages used. I'm not claiming any of this is mine, just putting it here in one file for future convenience/reference. + +I used this approach in December of 2025 to install Artix Linux on a Framework 13in laptop from 2023 q4. + +- OS and distro: Artix Linux +- init system: dinit +- partitioning, GUID Partition Table: + - unencrypted boot partition (size: 512M), UEFI + - LUKS-encrypted LVM: + - swap partition (size: amount of memory + 4G) + - root/default partition (size: remaining space) + +For reference, doc page from Artix for installation: +https://wiki.artixlinux.org/Main/Installation + +--- + +## install steps + +- [ ] if not already done, download artix ISO (dinit version) and dd it onto a usb drive + +- [ ] boot the live usb and select the install option (whatever it may look like) + +- [ ] connect to the internet + +```bash +connmanctl +//// within connmanctl +enable wifi +scan wifi +agent on +services +connect +quit +``` + +- [ ] verify connection using `ping` + +- [ ] update live system keys/mirrors + +```bash +pacman -Sy artix-keyring +``` + +- [ ] run lsblk and identify the storage drive on which to install + - note: when i ran this in 2025 dec on my framework laptop, it was `/dev/nvme0n1` + +- [ ] partition the drive + +```bash +cfdisk +# use GPT (guid partition table) +# new partition, size 512M, type 'EFI System' +# new partition, size (remaining), type 'Linux LVM' +# write changes +# quit cfdisk +``` + +- [ ] set up LVM volumes + +```bash +cryptsetup luksFormat --type luks2 /dev/ +cryptsetup open /dev/ artixlvm + +pvcreate /dev/mapper/artixlvm +vgcreate artixvg /dev/mapper/artixlvm + +lvcreate -L artixvg -n swap +lvcreate -l 100%FREE artixvg -n root +``` + +- [ ] set filesystems for partitions/volumes + +```bash +mkfs.vfat -F32 /dev/ +mkfs.ext4 /dev/artixvg/root +mkswap /dev/artixvg/swap +``` + +- [ ] mount the partitions/volumes + +```bash +mount /dev/artixvg/root /mnt +mkdir /mnt/boot +mount /dev/ /mnt/boot +swapon /dev/artixvg/swap +``` + +- [ ] install base system and needed packages + +```bash +basestrap /mnt base base-devel linux \ + linux-firmware \ + dinit elogind-dinit \ + lvm2 cryptsetup grub efibootmgr mkinitcpio \ + connman connman-dinit wpa_supplicant \ + git less neovim zsh +``` + +- [ ] generate fstab +```bash +fstabgen -U /mnt >> /mnt/etc/fstab + +# verify (add noatime to ext4 line if desired) +vi /mnt/etc/fstab +``` + +- [ ] chroot into installed system +```bash +artix-chroot /mnt +``` + +- [ ] set timezone, hardware clock, locale + +```bash +ln -sf /usr/share/zoneinfo/ /etc/localtime +hwclock --systohc + +nvim /etc/locale.gen +# uncomment en_US.UTF-8 UTF-8; add others if desired + +locale-gen +echo "LANG=en_US.UTF-8" > /etc/locale.conf +``` + +- [ ] set hostname and /etc/hosts + +```bash +echo "" > /etc/hostname + +nvim /etc/hosts +# ensure /etc/hosts includes the following: +127.0.0.1 localhost +::1 localhost +127.0.1.1 .localdomain " +``` + +- [ ] mkinitcpio with hooks + +```bash +nvim /etc/mkinitcpio.conf +# go to HOOKS and set it thus: +HOOKS=(base udev autodetect keyboard keymap consolefont modconf block encrypt lvm2 resume filesystems fsck) + +mkinitcpio -P +``` + +- [ ] grub config and install + +```bash +blkid +# note the UUID of the LVM/LUKS partition + +nvim /etc/default/grub +# ensure the following is set: +GRUB_CMDLINE_LINUX="cryptdevice=UUID=:artixlvm root=/dev/mapper/artixvg-root resume=/dev/mapper/artixvg-swap quiet rw" + +grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Artix +grub-mkconfig -o /boot/grub/grub.cfg +``` + +- [ ] set up connman for installed system + +```bash +mkdir -p /etc/dinit.d/boot.d +ln -s ../connmand /etc/dinit.d/boot.d/connmand +``` + +- [ ] set root password, set up user + +```bash +passwd + +useradd -m -G wheel,audio,video,optical,storage +passwd +pacman -S sudo +EDITOR=nvim visudo +# uncomment the line in /etc/sudoers which looks something like the below: +echo "%wheel ALL=(ALL) ALL" +``` + +- [ ] close stuff out and reboot + +```bash +exit +umount -R /mnt +swapoff -a +cryptsetup close cryptlvm # may not work, just ignore and reboot +reboot +``` + +--- + +## system config (post install) + +_NOTE: don't put anything here which should be in my dotfiles-and-setup scripts instead_ + +- [ ] set up chrony (for syncing system time with ntp servers) + - _NOTE: edit defaults in `/etc/chrony/chrony.conf` if desired_ + +```bash +sudo pacman -S chrony chrony-dinit + +# Fallback if dinitctl enable fails (symlink method) +sudo mkdir -p /etc/dinit.d/boot.d +sudo ln -s ../chronyd /etc/dinit.d/boot.d/chronyd +# alt: sudo dinitctl enable chronyd + +/etc/dinit.d/chronyd start +# alt: sudo dinitctl start chronyd +``` + +--- + +## troubleshooting + +if i need to try something again and reopen the LVM, the below should work: + +```bash +cryptsetup open /dev/ artixlvm +# enter existing password + +vgchange -ay artixvg +# or, if only one VG exists: +vgchange -ay +``` + +if date/time get messed up (such as due to battery running out), fix with: + +```bash +# can manually adjust to local time; grok said "date is UTC if hardware is set that way" +sudo date -s "2025-12-17 12:47:00" +# or, if chrony, ntp, or similar is set up, can trigger sync +chronyd -q +# can check after with `date` or `chronyc tracking` + +sudo hwclock -w --utc +``` + diff --git a/src_files/.config/nvim/lua/plugins_lazy/obsidian.lua b/src_files/.config/nvim/lua/plugins_lazy/obsidian.lua index a74cc4b..fab3c4d 100644 --- a/src_files/.config/nvim/lua/plugins_lazy/obsidian.lua +++ b/src_files/.config/nvim/lua/plugins_lazy/obsidian.lua @@ -4,6 +4,9 @@ return { version = "*", -- '*' for latest release, not latest commit ft = "markdown", opts = { + footer = { + enabled = false, + }, frontmatter = { enabled = false, },