Personal dotfiles for my Fedora Linux development workstation.
This repository tracks the configs I actually use for shell, editor, terminal, and tmux so they can be cloned onto a new machine without rebuilding everything from scratch. The configuration and bootstrap script target Fedora; other Linux distributions are not currently supported.
Fish is the interactive shell baseline for this setup.
- Adds
~/.local/bintoPATH - Disables the default Fish greeting
- Defines Fedora/RHEL-oriented
dnfshortcuts such asi,iy,u,uy,r, andry - Adds workflow aliases such as
vim->nvim,c->codex,g->cd ~/github, ando->xdg-open - Provides a
pushabbreviation that stages changes, commits with a default+updmessage, and pushes - Includes Fisher files and prompt/theme helpers
Neovim is built on top of NvChad v2.5 and
bootstraps lazy.nvim on first
launch.
- Custom options, mappings, and autocmds
- LSP setup for
rust_analyzer,clangd,gopls, andpyright - Formatting through conform.nvim
- File tree via nvim-tree
- Smart color columns at
80, with100for Rust, Go, and Python
See nvim/README.md for editor-specific notes.
Alacritty uses Fish as the shell and keeps a large local theme library.
- Default imported theme:
themes/linux.toml - Font:
FiraCode Nerd Font Mono - Font size:
12 - Window title:
:: netrunner :: - Default window size:
160x55 F11toggles fullscreen
Tmux is configured to stay minimal and keyboard-focused.
- Default shell: Fish
- Prefix key:
` - Mouse support enabled
- Vi-style copy and selection keys enabled
Bundled fonts used by the terminal and editor setup.
- FiraCode Nerd Font
- Iosevka
- JetBrains Mono
- Noto Sans Mono
Clone the repository, then run the Fedora bootstrap script:
git clone https://github.com/inner/.config.git ~/github/.config
cd ~/github/.config
./bootstrap-fedora.shThe script is verbose and safe to rerun. It:
- installs Alacritty, Fish, Git/GitHub CLI, Neovim, tmux, development tools,
language servers, formatters, and the command-line utilities used by the
configuration with
dnf, npm, and Cargo; - installs the
rust-analyzerandrustfmtcomponents when Rust is managed by rustup (the proxy binaries alone are not sufficient); - configures Fish to include
~/.cargo/bin, allowing terminal-launched Neovim to find rustup components and Cargo-installed formatters such as Stylua; - copies the bundled fonts into
/usr/share/fontsand refreshes the font cache; - links the Alacritty, Fish, Neovim, and tmux directories into
~/.config; - links
git/.gitconfigto~/.gitconfig, including the Git author identity; - moves an existing destination to a timestamped backup before replacing it.
The script asks for sudo because system packages and fonts require
administrator access. It derives the repository path from its own location,
so the checkout may live somewhere other than ~/github/.config.
If software is already installed and only the links are needed, create them manually. The files stay source-controlled in the repository while applications continue to read their usual configuration paths.
This setup uses symlinks rather than Stow:
ln -s ~/github/.config/alacritty ~/.config/alacritty
ln -s ~/github/.config/fish ~/.config/fish
ln -s ~/github/.config/nvim ~/.config/nvim
ln -s ~/github/.config/tmux ~/.config/tmux
ln -s ~/github/.config/git/.gitconfig ~/.gitconfigBefore creating a link, move aside any existing real directory at the
target path, such as ~/.config/nvim, so the symlink can take its
place.
- Start
nvimonce to letlazy.nviminstall plugins - Install Fisher if you want to manage Fish plugins with
fisher update - Ensure a Nerd Font is installed and selected in your terminal