Fedora Silverblue Desktop
This document covers how to set up an x64 Fedora Silverblue as a developer machine. It is geared towards Go, Python and JavaScript development.
All commands on this page should be executed from the user’s home directory.
Install nvidia drivers
Follow the official doc.
Configure terminal
Download JetBrainsMono Nerd Font.
mkdir -p ~/.local/share/fonts
unzip ~/Downloads/JetBrainsMono.zip -d ~/.local/share/fonts
rm ~/.local/share/fonts/*.txt ~/.local/share/fonts/*.md
fc-cache -f -v
Restart the Terminal app.
Go to Preference. Choose the Gruvbox color palette. Set font to JetBrainsMono Nerd Font Regular, size 16.
Create a toolbox container
toolbox create dev
toolbox enter dev
All subsequent commands run in this dev container.
Install essential utilities
sudo dnf group install development-tools
sudo dnf install jq yq fzf bat tree
Install coding tools
sudo dnf install vim-enhanced neovim ripgrep luarocks tmux pre-commit
Install go
sudo dnf install golang
Install uv
curl -LsSf https://astral.sh/uv/install.sh | UV_NO_MODIFY_PATH=1 sh
Install rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Install fnm
fnm is a Node versions manager that doesn’t cause a noticeable slow down at activation.
The CLI interface is largely similar to that of nvm.
export PATH="$HOME/.cargo/bin:$PATH"
cargo install fnm
Install aws cli v2
sudo dnf install awscli2
Install github cli
For authentication against GitHub, the most convenient option is to use the GitHub CLI.
sudo dnf install gh
Login immediately.
gh auth login
Install shellcheck
sudo dnf install shellcheck
Install go executables
go install github.com/kxue43/cli-toolkit/cmd/toolkit@latest
go install github.com/kxue43/cli-toolkit/cmd/toolkit-assume-role@latest
go install github.com/kxue43/cli-toolkit/cmd/toolkit-serve-static@latest
go install github.com/kxue43/cli-toolkit/cmd/toolkit-show-md@latest
go install mvdan.cc/sh/v3/cmd/shfmt@latest
go install golang.org/x/tools/cmd/godoc@latest
go install golang.org/x/pkgsite
go install github.com/air-verse/air@latest
Install rust executables
cargo install --locked tree-sitter-cli
Set up personal platform
mkdir -p ~/.config
git clone https://github.com/kxue43/substance ~/.config/substance
~/.config/substance/set-up.sh
Restart the terminal so that Bash start-up files take effect.
Then open up nvim and run :MasonInstallAll, :TSInstallAll, :checkhealth.