This is a checklist of my steps I personally use to take a Windows machine and convert it to Debian Trixie.
My preferred desktop environment is KDE and workflows are oriented towards software development.
I also like to take a few additional steps like installing Full Disk Encryption (FDE) including
/boot.
Ensure you have at least two or three USB Flash drives available for boot media and/or backup. Modern drives are big enough you could also use a tool like Ventoy that allows you to copy multiple ISOs to a single drive and choose between them at boot. I also tend to use an SSD in a USB-C adaptor case too as they are more reliable then regular USB flash drives (and I don't have any USB-C drives yet).
Besides the Debian Installer itself, some other handy ISOs are:
sha256sum *.iso /mnt/external/*.isoapt-cacher-ng package cache:apt-cacher-ng on it (set a static/fixed DHCP IP on the router).apt-cacher-ng: the clients only need an apt proxy configuration./etc/apt/apt.conf.d/00proxy:Acquire::http::Proxy "http://<SERVER IP>:3142"; Acquire::http::Proxy::<SERVER IP> "DIRECT";
rm /etc/apt/sources.list~ — remove an old backupapt updatenmap — handy for finding all your local IPs:nmap -sn 192.168.1.0/24keepassxc — Password Managerchromium — Web Browserfirefox-esr-l10n-en-ca — EN.CA firebox language packthunderbird-l10n-en-ca — EN.CA language package: brings in thunderbird Emailtree — console file listingvim — console text editorgit-gui — version control graphical user interfacenginx — web server/etc/nginx/conf.d/local.conf:allow 127.0.0.1; allow ::1; deny all;
ripgrep — file searchnasm — AMD64 Assembleryasm — nasm compatible assembleredb-debugger — GUI Debuggerplasma-theme-oxygen — KDE Plasma Themeoxygen-icon-theme — KDE Oxygen Iconsoxygencursors — KDE Oxygen Mouse Cursor Themekwin-addons — KWin Desktop Effectsgeeqie — Image Viewersgt-puzzles — Simon Tatham’s puzzle game collectionlibautovivification-perl — prevent variable autovivificationlibio-interactive-perl — interactive I/Oapt-cacher-ng host) and install the package:apt install ./code_1.143.1-1792691907_amd64.deb/usr/local/sbin/vscode.repo:#!/bin/sh # Rewrite VS Code repo to plain http for apt-cacher-ng when necessary f=/etc/apt/sources.list.d/vscode.sources if grep -q 'https://packages\.microsoft\.com' "$f" 2>/dev/null; then sed -ri 's|https://packages\.microsoft\.com|http://packages.microsoft.com|' "$f" fi exit 0
chmod 755 /usr/local/sbin/vscode.repo/etc/apt/apt.conf.d/99vscode:
DPkg::Post-Invoke {
"/usr/local/sbin/vscode.repo";
};
APT::Update::Pre-Invoke {
"/usr/local/sbin/vscode.repo";
};~/.bashrc:
# don’t put duplicate lines or lines starting with space in the history.
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# shopt -s autocd cdspell checkjobs shift_verbose
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=100000
HISTFILESIZE=200000
HISTTIMEFORMAT='%F %l:%M %p ➤ '
alias lla='ls -AlFh'
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
function title() {
echo -ne "\033]30;$1\007"
}
if [ -x /usr/games/fortune ]; then
/usr/games/fortune -s # print out short fortunes only
fi~/.ssh/config with some server/computer names/IPsssh-keygen -t ed25519 -C <NAME>~/.config/kwinrc:[Windows] BorderlessMaximizedWindows=true
qdbus6 org.kde.KWin /KWin reconfigure — reload KWin configuration