Last updated on

Dotfiles


GitHub

Welcome to my dotfiles breakdown!

In this guide I’ll walk you through my personal dotfiles setup, which I’ve refined over years of development and customization.

I’ll cover everything from my choice of operating system to the tools and configurations that make up my development environment. Explaining the how and why behind each tool and configuration, I’ll provide insights and tips on my workflow and productivity hacks.

Plus, I’ll discuss my philosophy on dotfiles and how they serve as a powerful tool for managing system configurations efficiently.

This page will also be updated as my setup evolves, so be sure to check back for the latest changes and improvements.

For a detailed overview of changes and updates, you can check out my blog or repo.

Table of Contents

Operating System

I run Arch Linux as my primary operating system. Arch provides a minimal base system that allows me to customize and build my environment from the ground up. The Arch User Repository (AUR) is a valuable resource for installing software not available in the official repositories.

Window Manager

I use Hyprland as my window manager. Hyprland is a tiling window manager that allows me to organize and manage my windows efficiently. I appreciate its lightweight and minimalistic design, which aligns with my preference for a distraction-free workspace.

Terminal Emulator

I use Kitty as my terminal emulator. Kitty is a fast, feature-rich terminal emulator that supports GPU rendering, ligatures, and true color. Its customizable configuration options and performance make it an ideal choice for my workflow.

Shell

I use Zsh as my shell, with Oh My Zsh as a framework for managing my Zsh configuration. Zsh offers powerful features such as auto-completion, syntax highlighting, and plugin support. Oh My Zsh provides a collection of plugins and themes that enhance my shell experience.

Text Editor

I use Neovim as my text editor. Neovim is a modern fork of Vim that offers improved performance, extensibility, and features. I appreciate Neovim’s modal editing, keybindings, and plugin ecosystem, which enhance my productivity and workflow.

Plugins

  • lazy: Feature rich plugin manager for neovim.
  • telescope: Fuzzy finder for files, buffers, and more.
  • oil: A collection of utilities for Neovim.
  • undotree: Version control for your undo history.

Version Control

I use Git as my version control system. Git is a distributed version control system that allows me to track changes, collaborate with others, and manage my projects effectively. I leverage Git’s branching model, staging area, and history tracking to maintain a clean and organized repository.

Package Manager

I use Pacman as my package manager on Arch Linux. Pacman is a powerful package manager that simplifies the installation, upgrade, and removal of software packages. Its dependency resolution, package signing, and rollback capabilities make it a reliable tool for managing software on my system.

Utilities

I use Stow as my dotfile manager. Stow is a symlink farm manager that allows me to organize and manage my dotfiles efficiently. By creating symbolic links to my configuration files, Stow simplifies the process of syncing and updating my dotfiles across different systems.