Skip to content

ihtesham510/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

241 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β•šβ•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•  β•šβ•β•β•β•β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘
β•šβ•β•β•β•β•β•  β•šβ•β•β•β•β•β•    β•šβ•β•   β•šβ•β•     β•šβ•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•

A carefully crafted development environment for the terminal-first developer.

Neovim tmux Lua Shell

πŸ“Έ Screenshots

Dashboard

workspace

LazyGit


⚑ Overview

This repository contains my personal dotfiles for a fully keyboard-driven development workflow, featuring a Neovim IDE setup built from scratch in Lua, a tmux configuration for multiplexed terminal sessions, and a Zsh shell setup.

dotfiles/
β”œβ”€β”€ .config/
β”‚   └── nvim/              # Neovim config (Lua, LunarVim/Neovim-from-scratch base)
β”‚       └── lua/user/
β”‚           β”œβ”€β”€ options.lua
β”‚           β”œβ”€β”€ keymaps.lua
β”‚           β”œβ”€β”€ plugins.lua
β”‚           β”œβ”€β”€ colorscheme.lua
β”‚           β”œβ”€β”€ cmp.lua
β”‚           β”œβ”€β”€ lsp/
β”‚           β”œβ”€β”€ telescope.lua
β”‚           β”œβ”€β”€ treesitter.lua
β”‚           β”œβ”€β”€ autopairs.lua
β”‚           β”œβ”€β”€ comment.lua
β”‚           β”œβ”€β”€ gitsigns.lua
β”‚           β”œβ”€β”€ nvim-tree.lua
β”‚           β”œβ”€β”€ bufferline.lua
β”‚           β”œβ”€β”€ lualine.lua
β”‚           β”œβ”€β”€ toggleterm.lua
β”‚           β”œβ”€β”€ alpha.lua
β”‚           └── whichkey.lua
β”œβ”€β”€ .tmux.conf             # tmux configuration
└── .zshrc                 # Zsh shell configuration

🧠 Neovim

Built on top of nvim-lua/kickstart.nvim β€” a fully Lua-based Neovim config designed to be readable and educational.

Dependencies

  • rustc
  • cargo
  • ripgrep
  • grep
  • gcc
  • bun
  • nodejs (v20 or above)
  • nvm
  • fzf
  • unzip
  • luarocks

πŸ”Œ Plugins

Plugin Description
wbthomason/packer.nvim Plugin manager β€” manages itself
nvim-lua/plenary.nvim Lua utility library, required by many plugins
windwp/nvim-autopairs Auto-close brackets, parens, quotes; integrates with cmp & treesitter
numToStr/Comment.nvim Smart code commenting (gcc, gbc)
JoosepAlviste/nvim-ts-context-commentstring Treesitter-aware comment strings
kyazdani42/nvim-web-devicons File type icons for the UI
kyazdani42/nvim-tree.lua File explorer tree
akinsho/bufferline.nvim Buffer tabs at the top
nvim-lualine/lualine.nvim Blazing fast status line in Lua
akinsho/toggleterm.nvim Integrated floating/split terminal
ahmedkhalf/project.nvim Project root detection and management
lewis6991/impatient.nvim Speed up Lua module loading
lukas-reineke/indent-blankline.nvim Indentation guides
goolord/alpha-nvim Customizable start screen / dashboard
folke/which-key.nvim Popup showing available keybindings
Colorschemes
catppuccin/nvim Cattppuccin colorscheme collection
Completion (cmp)
hrsh7th/nvim-cmp Completion engine
hrsh7th/cmp-buffer Completions from current buffer
hrsh7th/cmp-path Filesystem path completions
hrsh7th/cmp-cmdline Command-line completions
saadparwaiz1/cmp_luasnip Snippet completions
hrsh7th/cmp-nvim-lsp LSP-based completions
hrsh7th/cmp-nvim-lua Neovim Lua API completions
Snippets
L3MON4D3/LuaSnip Snippet engine written in Lua
rafamadriz/friendly-snippets Community snippet collection
LSP
neovim/nvim-lspconfig Quickstart configs for built-in LSP client
williamboman/mason.nvim Portable LSP/linter/formatter installer
williamboman/mason-lspconfig.nvim Bridge between Mason and lspconfig
RRethy/vim-illuminate Highlight other uses of the word under cursor
Telescope
nvim-telescope/telescope.nvim Fuzzy finder over everything
nvim-telescope/telescope-media-files.nvim Preview media files in Telescope
Treesitter
nvim-treesitter/nvim-treesitter Advanced syntax highlighting & code parsing
JoosepAlviste/nvim-ts-context-commentstring Context-aware comment strings
Git
lewis6991/gitsigns.nvim Git blame, hunks, diff signs in the gutter

⌨️ Neovim Keymaps

Leader key: <Space>

πŸͺŸ Window Navigation

Keybinding Mode Action
Ctrl-h Normal Move to left window
Ctrl-j Normal Move to window below
Ctrl-k Normal Move to window above
Ctrl-l Normal Move to right window

πŸ“„ Buffer Management

Keybinding Mode Action
Shift-l Normal Go to next buffer
Shift-h Normal Go to previous buffer

✏️ Text Editing

Keybinding Mode Action
Alt-j Normal Move current line down
Alt-k Normal Move current line up
jk Insert Exit insert mode
kj Insert Exit insert mode

πŸ“‹ Visual Mode

Keybinding Mode Action
< Visual Dedent and keep selection
> Visual Indent and keep selection
Alt-j Visual Move selection down
Alt-k Visual Move selection up
p Visual Paste without overwriting register

πŸ“¦ Visual Block Mode

Keybinding Mode Action
J Visual Block Move block down
K Visual Block Move block up
Alt-j Visual Block Move block down
Alt-k Visual Block Move block up

πŸ–₯️ tmux

Prefix key changed from the default Ctrl-b to Ctrl-t for ergonomics.

πŸ”Œ Plugins

Plugin Description
tmux-plugins/tpm Tmux Plugin Manager
niksingh710/minimal-tmux-status Minimal, clean status bar
tmux-plugins/tmux-sensible Sensible tmux defaults everyone can agree on

⌨️ tmux Keymaps

Prefix: Ctrl-t

πŸͺŸ Window Management

Keybinding Action
Alt-c Create new window (inherits current path)
Alt-n Go to next window
Alt-p Go to previous window
Alt-w Kill current window
Alt-e Rename current window

βœ‚οΈ Pane Splitting

Keybinding Action
Alt-Ctrl-l Split pane vertically (right, same path)
Alt-Ctrl-k Split pane horizontally (below, same path)
Alt-m Toggle pane zoom (fullscreen)

🧭 Pane Navigation

Keybinding Action
Alt-h Move to left pane
Alt-j Move to pane below
Alt-k Move to pane above
Alt-l Move to right pane

πŸ—‚οΈ Session Management

Keybinding Action
Alt-s Show session/window tree chooser
Alt-d Detach from current session
Alt-N Switch to next session
Alt-P Switch to previous session

βš™οΈ General Settings

Setting Value
Mouse support Enabled
History limit 5000 lines
Window numbering Starts at 1
Pane numbering Starts at 1
True color Enabled (xterm*:Tc)

πŸš€ Installation

Prerequisites

  • Neovim >= 0.9
  • tmux >= 3.x
  • Zsh
  • Git
  • A Nerd Font for icons
  • ripgrep β€” for Telescope live grep
  • fd β€” for Telescope find files
  • Node.js β€” required by many LSP servers

Setup

# Clone the repo
git clone https://github.com/ihtesham510/dotfiles.git ~/dotfiles

# Symlink Neovim config
ln -s ~/dotfiles/.config/nvim ~/.config/nvim

# Symlink tmux config
ln -s ~/dotfiles/.tmux.conf ~/.tmux.conf

# Symlink zshrc
ln -s ~/dotfiles/.zshrc ~/.zshrc

# Install tmux plugins (after starting tmux)
# Inside tmux: press Ctrl-t then I (capital i)

# Install Neovim plugins
nvim +PackerSync

Others

Item Description
Jetbrains nerd font nerd fonts for terminal
HomeBrew Package Manger for install pacakges (neovim ,fzf etc.)
zsh shell
oh my zsh for better looks and more features (mostly default settings)
windows terminal preview windows terminal preview for better termnal experience

🎨 Colorscheme

The neovim and windows terminal both use Cattppuccin colorscheme the wallpapers is also selected from awsome catppuccin wallpapers


Made with ❀️ by ihtesham510

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors