Author: planetis-m
- Download the latest Fedora Workstation ISO from Fedora Downloads.
- Burn the ISO to a USB drive using Fedora Media Writer or Rufus.
- Boot from the USB drive and start the live installation.
Reference: Fedora 42 Manual Partition Guide
Partition scheme (GPT):
/boot/efi– 512M (EFI System Partition)/boot– 1G (EXT4)/var– 10G (XFS)/(root) – 15G (XFS)/home– Remaining space (XFS)
sudo dnf update --refresh
sudo dnf install chromium
cp /usr/share/applications/chromium-browser.desktop ~/.local/share/applications/
nano ~/.local/share/applications/chromium-browser.desktopIn the opened file, find each Exec= line and append the following flags:
--password-store=gnome-libsecret --disable-pinch
Extensions:
sudo dnf install gnome-extensions-appRemove LibreOffice and other preinstalled apps you don’t use:
sudo dnf remove \
libreoffice* \
gnome-boxes \
evince \
evince-libs \
btrfs-progs \
hplip \
hplip-common \
ibus \
mediawriter \
qt5-qtbase \
anaconda \
anaconda-live \
anaconda-install-env-deps \
sos \
virtualbox-guest-additions \
gnome-tour \
gnome-initial-setup \
dracut-live \
simple-scan \
sane-backends \
qemu-guest-agent \
cups-client \
gnome-disk-utility \
gnome-abrtReference: Arch Wiki
sudo dnf install kvantum
kvantummanagerSelect theme → KvLibadwaita
# PDF and torrent clients
sudo dnf install papers fragments showtime --setopt=install_weak_deps=False
# Gaming support
sudo dnf copr enable jc141/DwarFS
sudo dnf install dwarfswget https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling/hosts -O hosts.txt
sudo mv -Z hosts.txt /etc/hostsDocs: containertoolbx.org
Containerfile (custom Fedora Toolbox with Nim + ESP-IDF + Qwen):
FROM registry.fedoraproject.org/fedora-toolbox:42
# Base tools and compilers
RUN dnf -y upgrade --refresh && \
dnf -y --setopt=install_weak_deps=False install \
git-credential-libsecret nano gdb gcc clang llvm git curl wget ca-certificates \
alsa-lib-devel mesa-libGL-devel libxkbcommon-devel wayland-devel libatomic \
flex bison gperf python3 python3-pip cmake ninja-build ccache \
dfu-util unzip xz tar nodejs nodejs-full-i18n npm uv libasan libubsan libtsan valgrind valgrind-devel libusb1 && \
dnf -y copr enable planetis/nim && \
dnf -y install nim-devel && \
dnf clean allBuild and create the toolbox:
podman system prune -a --force
podman build --pull --squash -t localhost/toolbox-nim:v5.5 .
toolbox create -c nim-dev -i localhost/toolbox-nim:v5.5
toolbox enter nim-dev# For Native GNOME Builder
mkdir -p ~/.local/share/gtksourceview-5/language-specs/
wget https://github.com/dom96/Aporia/raw/refs/heads/master/share/gtksourceview-2.0/language-specs/nim.lang -O nim.lang
mv nim.lang ~/.local/share/gtksourceview-5/language-specs/
# For Flatpak GNOME Builder
mkdir -p ~/.var/app/org.gnome.Builder/data/gtksourceview-5/language-specs/
ln -s ~/.local/share/gtksourceview-5/language-specs/nim.lang ~/.var/app/org.gnome.Builder/data/gtksourceview-5/language-specs/nim.langgit config --global user.name "Antonis Geralis"
git config --global user.email [email protected]
git config --global init.defaultBranch master
sudo dnf install git-credential-libsecret
git config --global credential.helper libsecretGenerate token:
- GitHub → Settings → Developer Settings → Fine-grained tokens
- Repo access: All → Permissions: Contents (Read/Write), Workflows
~/.qwen/settings.json
{
"selectedAuthType": "openai",
"preferredEditor": "nano",
"contextFileName": "AGENTS.md",
"disableUpdateNag": true,
"mcpServers": {
"excel": { "command": "uvx", "args": ["excel-mcp-server", "stdio"] },
"pdf-reader": { "command": "uvx", "args": ["mcp-pdf-reader", "stdio"] }
}
}~/.qwen/.env
OPENAI_API_KEY=<api_key>
OPENAI_BASE_URL=https://api.groq.com/openai/v1
OPENAI_MODEL=openai/gpt-oss-120bmkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
npm install -g @qwen-code/qwen-code
qwen --versionTutorials:
cd ~/Projects
# c2nim
git clone --depth 1 https://github.com/nim-lang/c2nim
cd c2nim
nim c c2nim.nim
cp c2nim ~/.local/bin/
# atlas
git clone --depth 1 https://github.com/nim-lang/atlas
cd atlas
atlas init
atlas use sat
nim c atlas
cp atlas ~/.local/bin/cd ~/Projects
wget https://github.com/espressif/esp-idf/releases/download/v5.5/esp-idf-v5.5.zip
unzip esp-idf-v5.5.zip
cd ~/esp/esp-idf-v5.5
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh esp32s3Update ~/.bashrc:
alias get_idf='. $HOME/Projects/esp/esp-idf-v5.5/export.sh'Reload:
source ~/.bashrcAccess ESP32 inside container:
cat << EOF | sudo tee /etc/udev/rules.d/50-usb-serial.rules
SUBSYSTEM=="tty", SUBSYSTEMS=="usb", OWNER="${USER}"
EOF
sudo udevadm control --reload-rules && sudo udevadm triggerpodman inspect --latest
toolbox list
podman stop <name>
toolbox rm <name>
⚠️ Warning: Installing VS Code will override your Git credential helper configuration.
Reference: VS Code Linux Setup Guide
systemctl --user enable --now podman.socketAfter installation, open VS Code and install the Dev Containers extension.
Make sure the following are configured:
podman-composepodman/var/run/podman/podman.sock
To attach to a running container:
Ctrl + Shift + P → Dev Containers: Attach to Running Container
For Toolbox support, use the Flatpak version of VS Code:
cd ~/.vscode
git clone https://github.com/owtaylor/toolbox-vscode.git
cd toolbox-vscode
ln -s "$PWD/code.sh" ~/.local/bin/codesudo flatpak uninstall --unused -ysudo dnf install \
https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf group upgrade coresudo dnf install libavcodec-freeworld ffmpeg --allowerasingrpm -q kernel-core
sudo dnf remove kernel*<version>*Disable the d3cold power state for the WiFi controller:
lspci -nnk | grep -A 3 -i network # 02:00.0 Network controller...
cat << EOF | sudo tee /etc/udev/rules.d/99-rtw89-d3cold.rules
SUBSYSTEM=="pci", KERNEL=="0000:02:00.0", ATTR{d3cold_allowed}="0"
EOF
sudo udevadm control --reload-rules && sudo udevadm trigger
cat /sys/bus/pci/devices/0000:02:00.0/d3cold_allowed # Should output "0"