Fedora Silverblue Desktop
Posted on October 27, 2025 • 3 min read • 433 wordsThis 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 -vRestart 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 devAll subsequent commands run in this dev container.
Install essential utilities
sudo dnf group install development-tools
sudo dnf install rlwrap jq fzf batInstall coding tools
sudo dnf install vim-enhanced neovim ripgrep luarocks tmux pre-commitInstall go
sudo dnf install golangInstall uv
curl -LsSf https://astral.sh/uv/install.sh | UV_NO_MODIFY_PATH=1 shInstall rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shInstall 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 fnmInstall AWS CLI v2
sudo dnf install awscli2Install GitHub CLI
For authentication against GitHub, the most convenient option is to use the GitHub CLI.
sudo dnf install ghLogin immediately.
gh auth loginInstall shellcheck
sudo dnf install shellcheckGet dot files
mkdir -p ~/.config
git clone https://github.com/kxue43/dot-files ~/.config/dot-files
~/.config/dot-files/set-up.sh --with=untrackedRestart the Terminal app so that Bash start-up files take effect.
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@latestInstall Rust executables
cargo install --locked tree-sitter-cliSet up NeoVim
git clone https://github.com/kxue43/nvim-files ~/.config/nvim && nvimAfter plugin installation finishes, run :MasonInstallAll to install all LSPs
and :TSInstallAll to install all tree-sitter parsers.
Run :checkhealth to see if there are any problems.
Optional
Install pyenv
pyenv is a CLI tool written in shell scripts. It installs multiple versions of Python by downloading and
compiling them from C source code. First we install various tools that are needed to compile Python interpreters.
sudo dnf update vte-profile # https://github.com/containers/toolbox/issues/390
sudo dnf install zlib-devel bzip2 bzip2-devel readline-devel sqlite \
sqlite-devel openssl-devel xz xz-devel libffi-devel findutils tk-devel libzstd-develNow install pyenv via git clone into the ~/.pyenv folder.
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
pushd ~/.pyenv && src/configure && make -C src && popdInstall pipx and poetry
sudo dnf install pipx
pipx ensurepath
pipx install poetry
pipx inject poetry poetry-plugin-export