In the live system
loadkeys fr
iwctlthen
station wlan0 scan
station wlan0 get-networks
station wlan0 connect SSID
Exit iwctl and run archinstall. Install the bspwm profile with the lightdm greeter.
sudo systemctl disable lightdm
sudo pacman -Runs lightdm-gtk-greetercd
sudo pacman -S git stow
git clone https://github.com/3fxcf9/dotfiles
stow dotfilesAmong others, the .xinitrc file will get linked in the home.
Install paru
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -siBspwm
sudo pacman -S bspwm sxhkd xorg-xinput xorg-xsetroot polybar maim xclip xdotool
mkdir ~/ScreenshotsFix polybar backlight
sudo chown $USER /sys/class/backlight/amdgpu_bl1/brightnessFonts
sudo pacman -S otf-monaspace-nerdApplications
sudo pacman -S kitty firefox btop neovim signal-desktop yazi zathura zathura-pdf-mupdfUtils
sudo pacman -S pavucontrol man-db unzip bat fd rg fastfetch cpufetch zoxide udisks2 jqZsh
sudo pacman -S zsh zsh-autosuggestions zsh-syntax-highlighting eza fzf
paru -S pursarship # Shell
chsh -s $(which zsh)
############## Reboot if needed ##############Kanata
paru kanata
# Permissions
sudo groupadd uinput
sudo usermod -aG input $USER
sudo usermod -aG uinput $USER
sudo echo 'KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"' > /etc/udev/rules.d/99-input.rules
sudo udevadm control --reload && udevadm trigger --verbose --sysname-match=uniput
sudo modprobe uinput
############## Reboot if needed ##############
systemctl --user enable kanata.service
systemctl --user start kanata.service
# Re-run bspwm config fileGit and github
sudo pacman -S github-cli git-delta
gh auth login
# Generate signing key
gpg --gen-key
gpg --list-secret-keys --keyid-format LONG
paru -S vlang nodejs npm tree-sitter tree-sitter-cliOCaml
sudo pacman -S opam
opam init -y
opam install odoc utop # ocaml-lsp and ocamlformat are managed by Mason3D printing
sudo pacman -S prusa-slicerSyncthing
sudo pacman -S syncthing
sudo systemctl enable syncthing@moi.service
sudo systemctl start syncthing@moi.service
# SET USERNAME AND PASSWORD: localhost:8384School
sudo pacman -S inkscape python3 python-pip python-xlib rofi
sudo pacman -S texlive-basic texlive-latex texlive-latexrecommended texlive-fontsrecommended texlive-mathscience texlive-latexextra pdf2svg
# TODO: Add course_manager setupsudo pacman -S tlp tlp-rdw
sudo systemctl enable tlp.service
sudo systemctl start tlp.serviceCustomize in /etc/tlp.conf. Change systemctl suspend-then-hibernate delay in /etc/systemd/sleep.conf.
-
Suspend hook:
sudo mkdir -p /usr/lib/systemd/system-sleep sudo nvim /usr/lib/systemd/system-sleep/10-s2idle-tune
Content:
#!/bin/bash case "$1" in pre) # Before suspend nmcli radio wifi off 2>/dev/null || true systemctl stop syncthing.service 2>/dev/null || true ;; post) # After resume nmcli radio wifi on 2>/dev/null || true systemctl start syncthing.service 2>/dev/null || true ;; esac
sudo chmod +x /usr/lib/systemd/system-sleep/10-s2idle-tune
-
Tune power button behavior in
/etc/systemd/logind.conf(runsudo systemctl restart systemd-logindafter edit)
sudo pacman -S acpi dunst
chmod +x ~/.local/bin/battery-*
systemctl --user daemon-reload
systemctl --user enable battery-alert.timer
systemctl --user start battery-alert.timerAdd this to /etc/udev/rules.d/60-power.rules:
ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/moi/.Xauthority" RUN+="/usr/bin/su moi -c '/home/moi/.local/bin/battery-charging discharging'"
ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/moi/.Xauthority" RUN+="/usr/bin/su moi -c '/home/moi/.local/bin/battery-charging charging'"
-
sudo btrfs filesystem mkswapfile --size 16G /swapfile swapon /swapfile
- Edit
/etc/systemd/system.conf.d/hibernate.confwith[Sleep] HibernateMode=platform HibernateDelaySec=0 - Execute this command
and add the result to the options line of
root_uuid=$(sudo findmnt -no UUID /) offset=$(sudo filefrag -v /swapfile | awk '$1=="0:" {print substr($4, 1, length($4)-1)}') echo "systemd.resume=UUID=$root_uuid systemd.resume_offset=$offset"
/boot/loader/entries/2025-08-18_11-26-04_linux.conf. - Add the
resumehook to/etc/mkinitcpio.conf. - Run
sudo mkinitcpio -P sudo bootctl update
- Reboot
# Figure manager
sudo pacman -S inotify-tools scour rofi inkscapeAdd built binaries to ~/.local/bin.
