My Dotfiles

This repository contains my personal dotfiles. Dotfiles are configuration files that are used to customize and tweak your system and software.

With this repo you will be able to bring up a new system with your personal configurations instantly. The scripts automatically detect if the host machine is running Debian Linux or MacOS.

The configurations in this repository are managed using GNU Stow, a symlink farm manager, which facilitates the management of symbolic links to dotfiles across the system.

NERD Fonts

For optimal compatibility with themes and tools that utilize a wide range of glyphs (icons and special characters), it is recommended to install NERD Fonts. NERD Fonts patches developer-targeted fonts with a high number of glyphs (icons). This ensures that icons and graphics in your terminal render correctly and enhance visual information.

  • To install NERD Fonts, visit their website: NERD Fonts and select a font that fits your aesthetic and functional needs. Download and install it according to your operating system's procedure for adding new fonts.

Setting up Dotfiles

To set up the dotfiles, clone this repository to your $HOME directory and use GNU Stow to create the necessary symlinks:

cd ~

git clone git@github.com:jebuschrast/dotfiles.git

This command will link the files and folders in the dotfiles repository to your home directory, effectively applying all the specified configurations

Setting up the system

Now all you need to do is change the permissions on the install script and run it.

chmod +x install.sh

./install.sh

The script will give you the option to install one script at a time if you want to be selective or just install everything all at once.

List of installed software

Core Software

  • nvim - Hyperextensible Vim-based text editor.
  • AstroNvim - A Neovim distribution that enhances the traditional Neovim experience with pre-configured plugins and settings, designed to simplify and accelerate development workflow.
  • utilities
    • mosh - Mobile shell that supports roaming and intermittent connectivity.
    • tmux - Terminal multiplexer for Unix-like operating systems.
    • Lazygit - A simple terminal UI for git commands, simplifying and streamlining git operations within a terminal.
    • Zoxide - A fast alternative to cd that learns your habits, making it quicker to navigate directories.
    • LSD (LSDeluxe) - A modern, feature-rich alternative to the classic ls command, enhancing directory listings with color, icons, and custom formatting.
  • zsh
    • zsh - A powerful shell that operates as both an interactive shell and as a scripting language interpreter.i
    • Oh My Zsh - An open-source, community-driven framework for managing your Zsh configuration with tons of plugins and themes.
    • Powerlevel10k - A fast and highly customizable theme for the Zsh shell. It provides prompt elements that help display various status indicators and system information quickly and beautifully. Powerlevel10k is designed to be fast, flexible, and easy to use, offering configurations that can transform the command prompt into a versatile tool for any workflow.
  • zsh plugins
    • zsh-autosuggestions - Fish-like fast/unobtrusive autosuggestions for Zsh.
    • zsh-syntax-highlighting - Provides syntax highlighting for the shell Zsh.
    • Zsh-bat - A Zsh plugin that integrates the 'bat' command to enhance file viewing with syntax highlighting and Git integration directly in your terminal.
    • You-Should-Use - A Zsh plugin that reminds you to use your command aliases, promoting more efficient shell interactions by suggesting the use of predefined shortcuts.

Optional Software

  • docker - Container platform for developing, shipping, and running applications.
  • gh - GitHub CLI to manage GitHub repositories.
  • clang - A language front-end for the LLVM compiler.
  • gnu_arm - GNU Toolchain for the ARM processor architecture.
  • gnu_radio - Free & open-source toolkit for software radio.
  • nvm - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions.
  • openocd - Open On-Chip Debugger for embedded debugging.
  • platformio - A professional collaborative platform for embedded development.
  • rust - A language empowering everyone to build reliable and efficient software.
  • yazi - Tool from crates.io (Note: Link to the specific crate if yazi refers to a specific project).
  • utilities
    • ffmpegthumbnailer - Lightweight video thumbnailer that can be used by file managers.
    • unar - Command line unarchiving tools for various archive formats.
    • jq - Lightweight and flexible command-line JSON processor.
    • poppler-utils - PDF rendering library based on xpdf-3.0.
    • fd-find - A simple, fast and user-friendly alternative to 'find'.
    • ripgrep - A line-oriented search tool that recursively searches your current directory for a regex pattern.
    • btop - A resource monitor that shows usage and stats for processor, memory, disks, network, and processes.