Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fedora Setup

Modular Fedora Workstation bootstrap for a .NET/Aspire development machine.

Main choices

  • Podman instead of Docker Engine; rootless/daemonless by default.
  • .NET 10 SDK from Fedora repositories.
  • Aspire CLI installed as the Aspire.Cli .NET global tool.
  • Aspire configured for Podman and Linux development-certificate trust.
  • Node.js/npm with a user-owned npm prefix, then OpenAI Codex CLI.
  • Zsh + Oh My Zsh with Starship as the default prompt.
  • Powerlevel10k is kept as an optional alternative in optional/powerlevel10k.sh.
  • Nerd Fonts: JetBrainsMono, FiraCode and MesloLGS NF.
  • GNOME, Nautilus, Flatpak apps, RPM Fusion codecs and optional NVIDIA drivers.
  • Local user MIME catalog for development languages/tools and selected Windows formats.
  • No automatic reboot.

Run everything

chmod +x install.sh modules/*.sh diagnostics/*.sh optional/*.sh
./install.sh

The full installer is non-interactive between modules. It may request the sudo password once at the beginning, then continues automatically.

Run selected modules

Module numbers are only installation order. Prefer stable names:

./install.sh podman dotnet aspire
./install.sh zsh nerd-fonts starship
./install.sh mime

List all current modules:

./install.sh --list

Old numbered names are also resolved by semantic name when possible, but scripts and documentation should use stable names.

Zsh and prompt

Starship is selected by default through:

export FEDORA_PROMPT_ENGINE="starship"

The repository includes a development-oriented configuration at:

config/starship/starship.toml

On first install it is copied to:

~/.config/starship.toml

If a Starship configuration already exists, it is left untouched.

To install and switch to Powerlevel10k instead:

./optional/powerlevel10k.sh

Then open a new terminal and run:

p10k configure

To switch back to Starship:

sed -i 's/FEDORA_PROMPT_ENGINE="powerlevel10k"/FEDORA_PROMPT_ENGINE="starship"/' ~/.zshenv
exec zsh

Aspire

Aspire is installed through the official .NET global tool package:

dotnet tool install -g Aspire.Cli

The setup adds:

export ASPIRE_CONTAINER_RUNTIME=podman
export SSL_CERT_DIR="${SSL_CERT_DIR:+$SSL_CERT_DIR:}/etc/pki/tls/certs:$HOME/.aspnet/dev-certs/trust"

Certificate refresh is executed non-interactively:

aspire certs clean --non-interactive --nologo
aspire certs trust --non-interactive --nologo

MIME pack

MIME definitions are stored as separate files in:

config/mime/

The mime module installs all XML files from that directory into:

~/.local/share/mime/packages/

Run or reapply it with:

./install.sh mime

Before installing, the module removes only previous fedora-setup-*.xml files, so deleted or renamed definitions do not remain stale.

GNOME normally classifies every zero-byte file as application/x-zerosize, ignoring its extension for application selection. The MIME module installs a small handler for that special type. It determines the type from the filename and opens the original empty file with the application already configured for that type—for example, an empty .cs uses the default C# application and an empty .md uses the default Markdown application.

The Windows list is intentionally not copied verbatim: legacy aliases such as multiple MIME names for MP3/PNG/AVI are left to Fedora/shared-mime-info. windows-extra.xml focuses on Windows-specific formats useful for Nautilus recognition.

Nerd Fonts

The nerd-fonts module installs user-local fonts into:

~/.local/share/fonts/NerdFonts

Default families:

  • JetBrainsMono Nerd Font
  • FiraCode Nerd Font
  • MesloLGS NF (recommended for Powerlevel10k)

Run:

./install.sh nerd-fonts

Install only a subset:

NERD_FONTS="JetBrainsMono FiraCode" ./install.sh nerd-fonts

Podman socket

podman.socket is intentionally not enabled by default. Aspire can use Podman directly. If a future tool specifically requires a Docker-compatible API:

systemctl --user enable --now podman.socket
export DOCKER_HOST="unix://$XDG_RUNTIME_DIR/podman/podman.sock"

Diagnostics

After installation:

aspire doctor
./diagnostics/check-environment.sh
./diagnostics/check-mime.sh
./diagnostics/check-mime-defaults.sh

Important after install

Log out and log back in (or reboot) so the default shell/session changes are applied. If NVIDIA packages were installed, allow akmods to finish before rebooting.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages