Skip to content

My config files for NeoVim, Fish, Starship, tmux, git, and Ghostty for use on Mac and GitHub Codespaces.

License

Notifications You must be signed in to change notification settings

djensenius/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

dotfiles

Modern development environment configuration files optimized for productivity and visual consistency. This setup provides a comprehensive development environment with integrated tools for coding, git workflow, terminal enhancement, and system monitoring.

Key Features:

  • ๐ŸŽจ Consistent Theming: Catppuccin Mocha theme across all applications
  • ๐Ÿš€ Parallel Installation: 40-60% faster setup with concurrent package installation
  • โšก Performance Optimized: Fast startup times and efficient resource usage
  • ๐Ÿ”ง Development Focused: Comprehensive language support and development tools
  • ๐Ÿ“ฆ Automated Setup: One-script installation for GitHub Codespaces
  • ๐Ÿš Modern Shell: Fish shell with starship prompt and productivity enhancements

All configurations use the Catppuccin Mocha theme for a consistent and visually appealing look across all tools and applications.

Installation

Automated Installation (Recommended)

For GitHub Codespaces, the setup is fully automated with parallel installation for faster setup:

./install.sh                    # Fast parallel mode (5-8 minutes)
./install.sh --sequential       # Original sequential mode (10-15 minutes)
./install.sh --help             # See all options

Performance: The new parallel installation reduces setup time by 40-60% by running independent operations simultaneously.

Manual Local Installation

For local installation, most configurations can be symlinked to your ~/.config directory:

  1. Clone this repository:

    git clone https://github.com/djensenius/dotfiles.git ~/.dotfiles
    cd ~/.dotfiles
  2. Symlink configurations:

    # Core shell and editor configs
    ln -sf ~/.dotfiles/fish ~/.config/
    ln -sf ~/.dotfiles/nvim ~/.config/
    ln -sf ~/.dotfiles/starship.toml ~/.config/
    
    # Terminal multiplexer
    ln -sf ~/.dotfiles/tmux ~/.config/
    
    # Development tools
    ln -sf ~/.dotfiles/gitconfig ~/.gitconfig
    ln -sf ~/.dotfiles/gitignore_local ~/.gitignore_local
  3. Special setup for TMUX:

    git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
    ~/.tmux/plugins/tpm/scripts/install_plugins.sh
  4. Install required tools (see Applications section for details)

See the install.sh script for the complete automated setup process used in GitHub Codespaces.

Overview

This dotfiles collection includes configurations for:

  • ๐Ÿ–ฅ๏ธ Terminal & Shell: Fish shell with starship prompt, tmux multiplexer
  • ๐Ÿ“ Editor: Neovim with 44+ plugins for modern development (details)
  • ๐Ÿ” Search & Navigation: fzf, ripgrep, fd, eza, zoxide for enhanced file operations
  • ๐Ÿ“Š Git Workflow: lazygit, delta, gitsigns integration for visual git management
  • ๐Ÿ”ง Development Tools: Language servers, formatters, linters, and debugging tools
  • ๐Ÿ“ฑ System Monitoring: bottom, fastfetch, k9s for system and cluster monitoring
  • ๐ŸŽจ Consistent Theming: Catppuccin Mocha theme across all applications

Applications

Atuin is a powerful and customizable shell history manager.

  • Directory: atuin/

Bat is a cat clone with syntax highlighting and Git integration.

  • Directory: bat/

Bottom is a cross-platform graphical process/system monitor.

  • Directory: bottom/

Delta is a syntax-highlighting pager for git, diff, and grep output.

  • Configuration: Integrated into gitconfig

Eza is a modern replacement for ls with colors, icons, and git integration.

  • Installation: Via cargo

Codespaces is a cloud development environment provided by GitHub.

  • Directory: .devcontainer/
  • Files: install.sh, prettierrc.json

Fastfetch is a neofetch-like tool for fetching system information.

  • Directory: fastfetch/

Fzf is a command-line fuzzy finder for files, commands, and more.

  • Installation: Via git clone to ~/.fzf

Fd is a simple, fast and user-friendly alternative to find.

  • Installation: Via cargo (as fd-find)

Fish is a smart and user-friendly command line shell.

  • Directory: fish/

Gh is GitHubโ€™s official command line tool.

  • Directory: gh/

Gh-dash is a GitHub CLI tool to view and manage issues and pull requests in a terminal dashboard.

  • Directory: gh-dash/

Git is a distributed version control system.

  • Files: gitconfig, gitignore-local

Gitmux is a Tmux status line for Git.

  • File: gitmux.conf

Ghostty is a fast, feature-rich terminal emulator built for performance and customization.

  • Directory: ghostty/

Gopod is a tool for making radio programs that are streaming online into podcasts.

  • Directory: gopod/

K9s is a terminal UI to interact with your Kubernetes clusters.

  • Directory: k9s/

Lazygit is a simple terminal UI for git commands with keyboard shortcuts.

  • Installation: Downloaded binary to /usr/local/bin

NeoVim is a hyperextensible Vim-based text editor.

  • Directory: nvim/
  • See: nvim/README.md for comprehensive plugin documentation

Pay-respects is a modern replacement for thefuck, fixing command line errors with AI assistance.

  • Installation: Via cargo

Ripgrep is a line-oriented search tool that recursively searches directories for a regex pattern.

  • Installation: Via cargo

Starship is a cross-shell prompt that displays information about the current directory, git status, and more.

  • File: starship.toml

Tmux is a terminal multiplexer that allows multiple terminal sessions to be accessed and controlled from a single screen.

  • Directory: tmux/

Tmuxinator is a tool to manage complex tmux sessions easily.

  • Directory: tmuxinator/

Vale is a syntax-aware linter for prose built with speed and extensibility in mind.

  • File: vale.ini

Yazi is a terminal file manager.

  • Directory: yazi/

Zoxide is a smarter cd command that learns your habits and jumps to frequently used directories.

  • Installation: Via cargo

Codespaces install.sh Script Summary

The install.sh script is designed to set up and configure a development environment, particularly for use in GitHub Codespaces. It performs the following tasks:

1. Link Configuration Files

  • Creates necessary directories and creates symbolic links for various configuration files:

    • tmux.conf
    • gitconfig
    • fish
    • starship.toml
    • nvim
    • bat
    • vale.ini
    • prettierrc.json
    • gitmux.conf
    • tmuxinator
    • neofetch
    • atuin
    • yazi
    • bottom
  • If running within a GitHub Codespace, it links executables (e.g., rubocop, srb, bundle, solargraph, safe-ruby) to /usr/local/bin and updates locale settings.

2. Install Software

  • Installs various software packages required for the development environment, including:

    • build-essential
    • python3-venv
    • socat
    • ncat
    • ruby-dev
    • jq
    • pay-respects (replacement for thefuck)
    • tmux
    • libfuse2
    • fuse
    • software-properties-common
    • most
  • Removes potentially conflicting packages (bat, ripgrep).

  • Installs additional tools via curl, wget, cargo, go, gem, and npm:

    • starship
    • delta
    • protobuf
    • eza
    • zoxide
    • ripgrep
    • fd-find
    • bat
    • atuin
    • gitmux
    • tmuxinator
    • neovim-ruby-host
    • prettierd
    • yaml-language-server
    • vscode-langservers-extracted
    • eslint_d
    • prettier
    • tree-sitter
    • neovim
    • fzf
    • lazygit

3. Setup Software

  • Logs into atuin using provided credentials.
  • Installs tmux plugins.
  • Synchronizes and installs nvim plugins.
  • If running within a GitHub Codespace
    • Changes the default shell to fish for the vscode user.
    • Checks the status of the repository.

4. Logging

  • Logs the progress of file linking, software installation, and software setup to ~/install.log.

This script automates the setup process to ensure a consistent and efficient development environment, particularly optimized for GitHub Codespaces.

About

My config files for NeoVim, Fish, Starship, tmux, git, and Ghostty for use on Mac and GitHub Codespaces.

Topics

Resources

License

Stars

Watchers

Forks