This repository contains the config that I use for setting up a user on Arch.
The dotfiles are organized as stow packages and can be installed as:
stow --no-folding --dotfiles -v -t ~ dotfiles
stow --no-folding --dotfiles -v -t ~/.config config
The following commands create an 8GB swap file in the root directory:
dd if=/dev/zero of=/swapfile bs=1M count=8k status=progress
chmod 0600 /swapfile
mkswap -U clear /swapfile
swapon /swapfile
at which point you can add using genfstab
Assuming you have created an EFI partition and this is correctly typed as EFI Partition
, you can run
bootctl install
Afterwards, add entries to /boot/loader/entries
along the lines of:
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=LABEL=ARCH mem_sleep_default=deep rw
and for a backup:
title Arch Linux (fallback initramfs)
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux-fallback.img
options root=LABEL=ARCH mem_sleep_default=deep rw
For the above, you can use e2label
to add a label to an ext4
-formatted drive.
Then, register the default to /boot/loader/loader.conf
:
default arch.conf
timeout 4
console-mode max
editor no
And finally, bootctl update
for paranoia-sake.
When bootstrapping system:
base linux linux-firwmare \
dhcpcd iwd \
git vim neovim tmux
Other useful packages are located in pacman/packages.txt
:
sudo pacman -U --needed - < pacman/packages.txt
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
chsh -s /bin/zsh
You may need to fix the symlink to .zshrc if it is overwritten.
git clone --depth 1 https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/start/packer.nvim
mkdir -p ~/.tmux/plugins
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Then prefix
+ I within tmux to install plugins.
After installing xdg-user-dirs-update
:
sudo systemctl enable --now xdg-user-dirs-update.service
After creating jstarr
user:
usermod -a -G sys,docker,audio,wheel,uucp,lpadmin,gpiouser jstarr
Creating any group that does not exist already.
Enable periodic trim for SSD:
sudo systemctl enable --now fstrim.service fstrim.timer
/etc/xdg/reflector/reflector.conf
# Set the output path where the mirrorlist will be saved (--save).
--save /etc/pacman.d/mirrorlist
# Select the transfer protocol (--protocol).
--protocol https
# Select the country (--country).
# Consult the list of available countries with "reflector --list-countries" and
# select the countries nearest to you or the ones that you trust. For example:
--country 'United States'
# Use only the most recently synchronized mirrors (--latest).
--latest 5
# Sort the mirrors by synchronization time (--sort).
--sort age
sudo systemctl enable --now reflector
sudo systemctl enable --now thermald
Use the following in the ipython
configuration file:
## Shortcut style to use at the prompt. 'vi' or 'emacs'.
c.TerminalInteractiveShell.editing_mode = 'vi'
## Set the editor used by IPython (default to $EDITOR/vi/notepad).
c.TerminalInteractiveShell.editor = 'vi'
Open /etc/dhcpcd.conf
and uncomment the following:
# Inform the DHCP server of our hostname for DDNS.
hostname