{"id":21364780,"url":"https://github.com/ansh-info/dotfiles","last_synced_at":"2025-03-16T07:26:31.435Z","repository":{"id":263695963,"uuid":"891145418","full_name":"ansh-info/dotfiles","owner":"ansh-info","description":"My personal development environment setup optimized for Python on macOS/linux, featuring Neovim (with LazyVim), Tmux, and Kitty terminal configurations.","archived":false,"fork":false,"pushed_at":"2024-12-12T19:10:57.000Z","size":353,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T19:48:47.279Z","etag":null,"topics":["kitty","kitty-config","kitty-terminal","lsp","lua","neovim","neovim-dotfiles","neovim-lua","neovim-plugin","tmux","tmux-conf","vim"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ansh-info.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-19T20:06:25.000Z","updated_at":"2024-12-12T19:10:00.000Z","dependencies_parsed_at":"2024-12-12T20:20:58.108Z","dependency_job_id":"2c0fb194-bf15-4dd0-8c69-8ab10815eb8c","html_url":"https://github.com/ansh-info/dotfiles","commit_stats":null,"previous_names":["ansh-info/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansh-info%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansh-info%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansh-info%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansh-info%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ansh-info","download_url":"https://codeload.github.com/ansh-info/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243839003,"owners_count":20356138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kitty","kitty-config","kitty-terminal","lsp","lua","neovim","neovim-dotfiles","neovim-lua","neovim-plugin","tmux","tmux-conf","vim"],"created_at":"2024-11-22T07:07:34.363Z","updated_at":"2025-03-16T07:26:31.415Z","avatar_url":"https://github.com/ansh-info.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Development Environment Setup\n\nMy personal development environment configuration, optimized for Python on macOS/linux. This setup includes configurations for Neovim, Tmux, and Kitty terminal.\n\n### Architecture\n\n![nvim](images/Architecture.png)\n\n### Prerequisites - [Homebrew](https://brew.sh)\n\n```bash\n# Install Homebrew if not already installed\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n\n# Post-Installation and Homebrew to your path - ~/.zshrc or ~/.bashrc\n\n# Install required packages\nbrew install neovim\nbrew install tmux\nbrew install kitty\nbrew install ripgrep\nbrew install lazygit\nbrew install ripgrep\nbrew install gcc\nbrew install fd\nbrew install git\n```\n\n### Install [Zsh](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH) shell\n\n```bash\n# - For macOS/linux\n\nbrew install zsh\nchsh -s $(which zsh)\n```\n\n### Install [ohmyzsh](https://ohmyz.sh)\n\n```bash\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)\"\n```\n\n### Install [powerlvl10k](https://github.com/romkatv/powerlevel10k) using [ohmyzsh](https://ohmyz.sh)\n\n```bash\ngit clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k\n```\n\n#### Install [Zsh Syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting)\n\n```bash\ngit clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting\n```\n\n#### Install [Zsh Auto-suggestion](https://github.com/zsh-users/zsh-autosuggestions)\n\n```bash\ngit clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions\n```\n\n#### Install [Colorls](https://github.com/athityakumar/colorls) with [Ruby](https://www.ruby-lang.org/en/documentation/installation/)\n\n```bash\nbrew install ruby\ngem install colorls\nsource $(dirname $(gem which colorls))/tab_complete.sh\n```\n\n#### Install [Nerd Fonts](https://github.com/ryanoasis/nerd-fonts)\n\n```bash\nbrew install font-hack-nerd-font\n```\n\n## Installation\n\n1. **Clone the repository:**\n\n```bash\ngit clone https://github.com/ansh-info/dotfiles.git\ncd dotfiles\n```\n\n#### zshrc configuration\n\n```bash\n# Backup existing config if necessary\ncp -r dotfiles/.zshrc ~/\ncp -r dotfiles/.p10k.zsh ~/\n```\n\n#### Finally source the zshrc\n\n```bash\nsource ~/.zshrc\n```\n\n2. **Create necessary directories:**\n\n```bash\nmkdir -p ~/.config\n```\n\n3. **Install Neovim configuration:**\n\n```bash\n# Backup existing config if necessary\n[ -d ~/.config/nvim ] \u0026\u0026 mv ~/.config/nvim ~/.config/nvim.bak\n```\n\n```bash\n# Copy Neovim configuration\ncp -r dotfiles/nvim ~/.config/\n```\n\n4. **Install Tmux configuration:**\n\n```bash\n# Backup existing config if necessary\n[ -f ~/.tmux.conf ] \u0026\u0026 mv ~/.tmux.conf ~/.tmux.conf.bak\n\n# Copy Tmux configuration\ncp dotfiles/tmux.conf ~/.tmux.conf\n```\n\n#### Install [Tmux plugin manager](https://github.com/tmux-plugins/tpm)\n\n```bash\ngit clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm\n\nReload TMUX environment so TPM is sourced:\n\n# type this in terminal if tmux is already running\ntmux source ~/.tmux.conf\n```\n\nThat's it!\n\n#### Installing plugins\n\n1. Add new plugin to `~/.tmux.conf` with `set -g @plugin '...'`\n2. Press `prefix` + \u003ckbd\u003eI\u003c/kbd\u003e (capital i, as in **I**nstall) to fetch the plugin.\n\nYou're good to go! The plugin was cloned to `~/.tmux/plugins/` dir and sourced.\n\n5. **Install Kitty configuration:**\n\n```bash\n# Backup existing config if necessary\n[ -d ~/.config/kitty ] \u0026\u0026 mv ~/.config/kitty ~/.config/kitty.bak\n```\n\n#### Copy Kitty configuration\n\n```bash\ncp -r dotfiles/kitty ~/.config/\n```\n\n5. **Install LazyGit configuration:**\n\n```bash\n# Create lazygit directory\nmkdir -p ~/Library/Application\\ Support/lazygit\n```\n\n```bash\n# Copy LazyGit configuration\ncp -r dotfiles/config.yml ~/Library/Application Support/lazygit/\n```\n\n## Post-Installation\n\n### Neovim Setup\n\n1. Open Neovim to install plugins:\n\n```bash\nnvim\n```\n\nThe plugins will be automatically installed on first launch.\n\n2. Install LSP servers and tools:\n\n```\n:Mason\n```\n\n### Python Development Setup\n\n1. Install [Conda](https://docs.anaconda.com/miniconda/) if not already installed:\n\n```bash\nmkdir -p ~/miniconda3\ncurl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o ~/miniconda3/miniconda.sh\nbash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3\nrm ~/miniconda3/miniconda.sh\n```\n\n2. Initialize Conda in your shell:\n\n```bash\nsource ~/miniconda3/bin/activate\nconda init --all\n```\n\n## Features\n\n### Neovim Configuration\n\n- LazyVim-based setup with custom configurations\n- Full LSP support for Python, Javascript, Markdown and web development\n- Integrated Conda environment management\n- Git integration with LazyGit\n- Enhanced terminal integration\n- File explorer with neo-tree\n- Custom statusline with environment indicators\n\n### Tmux Configuration\n\n- Custom key bindings\n- Session management\n- Status bar customization\n- Seamless navigation\n\n### Kitty Terminal\n\n- Performance-focused terminal emulator\n- Custom color scheme\n- Optimized font settings\n\n## Key Bindings\n\n### Neovim\n\n- `\u003cleader\u003e` is set to space\n- `\u003cleader\u003ece`: Open Conda environment selector\n- `\u003cleader\u003egg`: Open LazyGit\n- `\u003cleader\u003ee`: Toggle file explorer\n- `\u003cleader\u003eff`: Find files\n- `\u003cleader\u003efg`: Live grep\n- Check `:help lazyvim-keymaps` for more\n\n### Tmux\n\n- Prefix is set to `Ctrl-a`\n- `Prefix + |`: Split vertically\n- `Prefix + -`: Split horizontally\n- `Prefix + h/j/k/l`: Navigate panes\n- `Prefix + c`: Create new window\n- `Prefix + n/p`: Next/previous window\n\n### Kitty\n\n- `Ctrl+Shift+Enter`: New window\n- `Ctrl+Shift+w`: Close window\n- `Ctrl+Shift+]`: Next window\n- `Ctrl+Shift+[`: Previous window\n\n## Customization\n\n### Adding Custom Neovim Plugins\n\nAdd new plugins in `~/.config/nvim/lua/plugins/`:\n\n```lua\nreturn {\n  {\n    \"plugin/name\",\n    config = function()\n      -- configuration here\n    end,\n  },\n}\n```\n\n### Modifying Tmux Configuration\n\nEdit `~/.tmux.conf` for Tmux customizations.\n\n### Updating Kitty Settings\n\nEdit `~/.config/kitty/kitty.conf` for Kitty customizations.\n\n## Updating\n\n### Neovim Plugins\n\n```vim\n:Lazy update\n```\n\n### Mason Packages\n\n```vim\n:MasonUpdate\n```\n\n## Troubleshooting\n\n### Neovim\n\n- Run `:checkhealth` to diagnose issues\n- Ensure all required dependencies are installed\n- Check `:Mason` for LSP server status\n\n### Tmux\n\n- Check tmux version: `tmux -V`\n- Verify configuration: `tmux show -g`\n\n### Kitty\n\n- Run `kitty --debug-config` to verify configuration\n- Check terminal capabilities: `kitty +kitten icat --detect-support`\n\n## Contributing\n\nFeel free to submit issues and enhancement requests!\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansh-info%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fansh-info%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansh-info%2Fdotfiles/lists"}