This repository contains my personal configuration files for various tools and applications. Feel free to use any part of it that you find useful.
I'm using the zsh shell for my day-to-day work...
Please be aware that this configuration has been rigorously tested and is primarily intended for use with Ubuntu.
Specifically, it has been verified on an Ubuntu system running Linux kernel version 6.14.0-1015-oem, with
gcc version 13.3.0 and GNU ld version 2.42, as part of the Ubuntu 24.04.3 LTS distribution. While
this setup may be compatible with other Linux distributions or versions, optimal performance and
compatibility can only be guaranteed for the tested Ubuntu environment detailed above.
Users attempting to implement this configuration on other systems should proceed with caution and may need to make adjustments to ensure compatibility.
Your feedback and contributions to enhance cross-distribution compatibility are welcome, but support cannot be guaranteed for environments other than the specified Ubuntu setup.
1- Clone the repository to your home directory:
git clone https://github.com/chussenot/dotfiles.git ~/.dotfiles2- Run the install script:
cd ~/.dotfiles && ./install.shThis will create symbolic links from your home directory to the dotfiles in ~/.dotfiles, and install any necessary dependencies.
3- Customize your local settings or overrides in ~/.vim/vimrc.local.
4- Enjoy!
- Tmux integration and configuration with tpm
- Neovim configuration with plugins managed by vim-plug
- Zsh configuration with a custom standalone theme (no Oh-My-Zsh required)
- Various other configuration files for tools like Git, Ripgrep, and fd
But also...
- Antidote: A fast, simple Zsh plugin manager.
- MISE: A version manager that handles multiple runtime versions, such as Node.js, Python, Ruby, and more.
- FZF: A fuzzy finder that helps you quickly search and select files, directories, and other items from the command line.
- Ripgrep (rg): A fast code searching tool that recursively searches directories for a regex pattern.
- fd: A simple, fast and user-friendly alternative to find.
- bat: A cat clone with syntax highlighting and Git integration.
- Atuin: A shell history manager that provides better search, sync, and statistics for your command history.
- Yazi: A terminal file manager written in Rust, designed to be fast and feature-rich.
- GitHub CLI (gh): The official command-line tool for GitHub that allows you to work with issues, pull requests, and more from the terminal.
- Glow: A terminal-based markdown renderer that displays markdown files in a beautiful, readable format.
- htop: An interactive process viewer and system monitor, providing a better alternative to the standard top command.
- k9s: A terminal UI for managing Kubernetes clusters with a clean, intuitive interface.
- Direnv: An environment switcher for the shell that automatically loads and unloads environment variables.
- Docker: A platform for developing, shipping, and running applications inside containers.
- Docker Compose: A tool for defining and running multi-container Docker applications.
- Kubectl: The command-line tool for interacting with Kubernetes clusters.
- Helm: A package manager for Kubernetes that simplifies the deployment and management of applications.
- Gcloud: The command-line interface for Google Cloud Platform.
And few languages...
- Python: A popular programming language.
- Ruby: Another popular programming language.
- Go (Golang): A programming language developed by Google.
- Rust: A systems programming language that focuses on performance and safety.
- Java: A widely used programming language for building cross-platform applications.
- Node.js: A JavaScript runtime that allows you to execute JavaScript code outside a web browser.
Tmux is a terminal multiplexer that allows you to run multiple terminal sessions within a single window. My Tmux configuration makes the following changes:
- The prefix key is changed from
C-btoC-a - The status bar is configured with a date and time display, and the window and pane numbers are highlighted
- The status bar refreshes every 5 seconds
- The
|key maximizes a pane - The arrow keys are used to switch panes, and the
Altkey can be held to switch between panes without the prefix key - The base index for windows and panes is set to 1 instead of 0
- Tmux is configured to automatically start with the last session
My Zsh configuration uses a custom theme called chussenot that provides a clean, informative prompt with the
following features:
- User and host information: Displays username, hostname, and current directory
- Version control: Shows Git branch and status (clean/dirty) with customizable symbols
- Language versions: Displays Python, Node.js, and Go versions (configurable)
- System information: Shows system load average with color coding, background jobs count
- Virtual environments: Displays active Python virtual environment
- Docker indicator: Shows when running inside a Docker container
- Exit codes: Displays non-zero exit codes from previous commands
- Highly configurable: All features can be enabled/disabled via environment variables
The configuration also includes a number of aliases and environment variables for tools like Ruby and AWS. The z tool is also included for directory jumping.
My Neovim configuration uses vim-plug to manage plugins, and includes settings for a number of languages, including Ruby, Python, and Rust. Various plugins are included to provide functionality like autocompletion, fuzzy finding, and linting.