bootstrap.markdown @ d1b9a524e5fe default tip
More
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Wed, 22 Oct 2025 15:48:44 -0400 |
| parents | b62a90915e10 |
| children | (none) |
# Bootstrapping a New Machine Notes for myself for the next time I set up a new laptop or whatever. First, back up everything if necessary: * Faster on wired ethernet. * Don't forget password-store! * Don't forget hidden dotfiles! Install Debian. Partition everything, install nothing. Goal is now to get the dotfiles repo onto the machine and have everything required to run `bootstrap.sh`. Boot into a command line as root (no `sudo` yet): apt install sudo usermod -a -G sudo sjl usermod -a -G netdev sjl Allow non-free packages: vim /etc/apt/sources.list edit to add non-free to lines, e.g.: deb http://http.us.debian.org/debian bookworm main contrib non-free apt update Install first round of stuff: apt install \ nmtui sudo make curl wget network-manager fish rlwrap mercurial git xcape xss-lock pulseaudio alsa-utils libzstd-dev libx11-dev libxft-dev build-essential autoconf pkg-config bzip2 udisks2 lm-sensors htop fonts-ubuntu w3m atool psmisc suckless-tools trash-cli dunst neovim python3-dulwich silversearcher-ag irssi TODO: Need to disable networkd, remove interface from `/etc/interfaces` and restart `NetworkManager` to get that in place. Set up `.ssh` and keys. Bootstrap lisp: sudo apt install sbcl git clone https://github.com/sbcl/sbcl git checkout sbcl-2.3.6 SBCL_MAKE_JOBS=-j8 SBCL_MAKE_PARALLEL=8 sh make.sh --with-core-compression sudo sh install.sh sudo apt remove sbcl curl -O https://beta.quicklisp.org/quicklisp.lisp sbcl --load quicklisp.lisp (quicklisp-quickstart:install :path "/home/sjl/.quicklisp/") TODO CCL and others Get dotfiles: hg clone ssh://hsl/repos/dotfiles cd dotfiles ./bin/bootstrap.sh TODO build hg from scratch to get hg-git working maybe TODO bootstrap script might fuck up the fish config because shit's already created, thanks a lot fish git clone https://github.com/sjl/z-fish `chsh` to `/usr/bin/fish` Clone repos: hg clone hsl://adopt adopt cd adopt llp cd .. hg-clone-llp for lisp others: 1am adopt beast bobbin boots cacl chancery cl-d-api cl-digraph cl-losh cl-netpbm cl-pcg conserve d dbvolve docs.stevelosh.com friendly-find jarl peat t …etc etc Build st: git clone https://github.com/sjl/st Get a desktop environment up and running: sudo apt install xinit xdm git clone https://github.com/stumpwm/stumpwm (ql:quickload "clx") (ql:quickload "cl-ppcre") (ql:quickload "alexandria") (ql:quickload "xembed") ./autogen.sh ./configure make sudo make install cd ~/.stumpwm.d/ git clone https://github.com/sjl/stumpwm-contrib modules cd modules git co sjl Set up `pass`: git clone sjl@redacted:password-store .password-store sudo apt install pass scdaemon pinentry-gtk2 gpg -a --export 5D... > public-key.txt copy over gpg --import < public-key.txt Pulseaudio crap: sudo apt install pulseaudio alsa-utils pulseaudio --start alsamixer (m to unmute, up/down to change vol) Set up Firefox: wget 'https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US' aunpack fi… mv firefox /opt/ cd /opt/ chown -R root:root firefox ln -s /opt/firefox/firefox /usr/local/bin/firefox sudo apt install libgtk-3-0 libdbus-glib-1-2 finish the rest of this garbage https://wiki.debian.org/Firefox#Hardware_Video_Acceleration VLC (installs the world, sigh): sudo apt install vlc View > Docked Playlist to unbreak the playlist UM VPN: TODO