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.
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.
For local installation, most configurations can be symlinked to your ~/.config
directory:
-
Clone this repository:
git clone https://github.com/djensenius/dotfiles.git ~/.dotfiles cd ~/.dotfiles
-
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
-
Special setup for TMUX:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm ~/.tmux/plugins/tpm/scripts/install_plugins.sh
-
Install required tools (see Applications section for details)
See the install.sh script for the complete automated setup process used in GitHub Codespaces.
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
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
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:
-
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.
-
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
, andnpm
: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
- 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 thevscode
user. - Checks the status of the repository.
- Changes the default shell to
- 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.