Skip to content

plsdev89/linux-dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

My personal dotfiles for Fedora Linux development environment setup. This repository contains configuration files and setup scripts to quickly bootstrap a new system with my preferred tools and settings.

Features

  • 🛠 Automated setup script for quick installation on Fedora Linux
  • 📦 DNF package management
  • 💻 Terminal setup with:
    • Zsh configuration with Oh My Zsh
    • Starship prompt
    • GNOME Terminal
    • Antidote plugin manager with extensive plugin suite
  • 📝 Development tools:
    • Neovim configuration (NvChad-based)
    • Cursor (VS Code-based editor)
    • LazyGit for Git management
  • 🔧 Uses GNU Stow for dotfile management
  • 🎨 XDG Base Directory compliant configuration

Prerequisites

  • Fedora Linux
  • Git
  • Basic command line knowledge

Installation

  1. Clone this repository to your home directory:
git clone https://github.com/YOUR_USERNAME/dotfiles.git ~/dotfiles
cd ~/dotfiles
  1. Run the setup script:
./setup.sh

This will:

  • Update system packages with DNF
  • Install development tools and essential packages
  • Install Oh My Zsh
  • Install Antidote, pyenv, and rustup
  • Symlink .zshenv to $HOME for XDG configuration
  • Symlink all configuration files using GNU Stow

What's Included

Package Management

  • Fedora: DNF package manager with essential development tools and utilities

Terminal & Shell

  • Zsh: Default shell with extensive configuration
  • Oh My Zsh: Zsh framework with plugins (git, docker, python, npm, etc.)
  • Antidote: Fast Zsh plugin manager loading:
    • rupa/z - Directory jumping
    • zsh-users/zsh-completions - Additional completions
    • zsh-users/zsh-autosuggestions - Fish-like autosuggestions
    • zsh-users/zsh-history-substring-search - Better history search
    • fast-syntax-highlighting - Command syntax highlighting
    • zsh-abbr - Command abbreviations
    • Multiple Oh My Zsh plugins (docker, docker-compose, git, npm, python, pip, colored-man-pages, etc.)
  • Starship: Minimal, fast, customizable prompt
  • Terminal: GNOME Terminal
  • XDG Base Directory: Clean home directory with configs in ~/.config

Development Tools & Languages

  • Neovim: Modern Vim-based editor with NvChad configuration including:
    • LSP support, linting, formatting
    • Plugins: Telescope, LazyGit, auto-session, outline, render-markdown, surround, and more
  • Cursor: AI-powered code editor (VS Code fork)
  • LazyGit: Terminal UI for Git commands
  • Python: pyenv for version management, Poetry support
  • Node.js: pnpm, yarn, nvm (via zsh-nvm)
  • Rust: rustup toolchain
  • Lua: luarocks package manager
  • Tools: ripgrep, wget, socat, stow, ffmpeg, mpv, bat, exa, fzf, lazygit, gh, git-delta, tree, htop, jq, yq, tmux, zoxide

Setup Details

The setup script installs the following packages via DNF:

Core Development Tools

  • Development Tools group (gcc, make, git, etc.)
  • Essential utilities (curl, wget, stow, zsh)
  • Modern CLI tools (ripgrep, bat, exa, fzf, lazygit, gh)

Programming Languages

  • Python 3 with pip and development headers
  • Node.js and npm
  • Rust and Cargo
  • Go (golang)
  • Lua and luarocks

Terminal & Shell

  • Zsh with Oh My Zsh
  • Antidote plugin manager
  • Starship prompt
  • pyenv for Python version management
  • rustup for Rust toolchain management

Additional Tools

  • Neovim (latest version)
  • Git delta for better diffs
  • Tree, htop, tmux
  • JSON tools (jq, yq)
  • Archive tools (unzip, zip)
  • Media tools (ffmpeg, mpv)
  • Network tools (socat)
  • Directory navigation (zoxide)

Repository Structure

dotfiles/
├── setup.sh              # Automated installation script
├── nvim/                 # Neovim configuration (NvChad-based)
│   ├── init.lua
│   └── lua/
│       ├── options.lua
│       ├── mappings.lua
│       └── plugins/      # Plugin configurations
├── zsh/                  # Zsh configuration
│   ├── .zshenv          # XDG Base Directory setup
│   ├── .zshrc           # Main Zsh configuration
│   └── .zsh_plugins.txt # Antidote plugin list
├── starship/            # Starship prompt configuration
│   └── starship.toml
├── ghostty/             # Ghostty terminal configuration
│   └── config
├── lazygit/             # LazyGit TUI configuration
│   └── config.yml
└── wezterm/             # WezTerm configuration (legacy)
    └── wezterm.lua

Customization

Feel free to fork this repository and modify any configurations to match your preferences:

  • Brewfile: Add/remove packages, applications, and fonts
  • zsh/.zshrc: Customize shell settings, aliases, and environment variables
  • zsh/.zsh_plugins.txt: Add/remove Zsh plugins
  • starship/starship.toml: Customize your shell prompt
  • nvim/: Modify Neovim plugins and settings
  • ghostty/config: Adjust terminal appearance and behavior

The setup script uses GNU Stow to create symlinks, making it easy to manage and update configurations.

Notes

  • The .zshenv file is symlinked to $HOME to set up XDG Base Directory paths
  • Configuration files follow XDG standards where possible (~/.config/)
  • Python environment management via pyenv with custom aliases for projects
  • Includes personal aliases for workflow optimization (customize these for your needs)
  • Requires a .backend_secrets file in $HOME for private environment variables (not tracked in git)
  • The setup script automatically detects your operating system and installs appropriate packages
  • On Fedora, you may need to log out and back in after running the setup script for all changes to take effect

About

fedora linux dotfiles

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published