Kitty + Neovim: Aesthetic Dev Setup
Tags: neovim, kitty, setup, developer
Published: 2024-04-27 03:40:45

---
title: Kitty + Neovim: Aesthetic Dev Setup
published: true
description: My daily driver development setup with ide like experience.
tags: #neovim #kitty #setup #developer
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/klwv94sf3hf8najmvfmh.png
---

Hello fellow dev!

It has been a little more than one year since I came from VSCode to Neovim. And I have no regrets. My arms pain disappeared, and my productivity got a big boost after learning and get used to *vim motions*.

I love tweaking my setup, testing new themes, and using different window managers (currently using yabai). I used to work with windows, linux and now I'm on MacOS. And here is a quick overview, of what is my current daily driver setup.

## Terminal

[Kitty](https://sw.kovidgoyal.net/kitty/conf/) is the perfect terminal for me, it is fast, lightweight, cross platform, highly customizable, has tabs and split pane support and even plugins.

The theme I'm using is [Rose Pine](https://rosepinetheme.com/). I loved this theme at first sight. And sometimes I switch back to the fantastic [Catppuccin](https://github.com/catppuccin/catppuccin).


![Terminal Screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lq3x37ndky2pcp635csx.png)


The best part for me is having every control at the keyboard, from changing tabs to creating and resizing windows, everything has a keyboard shortcut.

By the way, I'm using the [Oh My Zsh](https://ohmyz.sh/) and [Starship](https://starship.rs/) to customize my prompt with [autosuggestions](https://github.com/zsh-users/zsh-autosuggestions/tree/master), [syntax highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) and the custom prompt style.

Soon I'll be posting a detailed tutorial on how to setup the terminal exactly like mine.

## Neovim

I started my journey testing out existent configs, but ended up creating my own from scratch. I like to have full control over the look and behavior of my setup.


![Dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jas2t4lntd56r7dxel71.png)

In this screenshot you can see the start page ([alpha](https://github.com/goolord/alpha-nvim)) with a custom Ascii art of my agency name, and partial surname.

## My Experience

I use this setup on my daily work, and it doesn't let me down. I have every tool I need, with custom keybindings that make my workflow slide, not being blocked by switching from mouse to keyboard infinite times a day, and having to search UI elements to click.

The setup is fully on terminal, so no high RAM or CPU consumption, almost everything runs instantly, even when fuzzy searching a medium size repo with hundreds of files.

By the word of my work colleagues and friends, I'm pretty fast working. I can find things and navigate through code fast and don't spend effort on it.

Having a complete git client at a command reach is incredibly convenient. With a blink of an eye, I stag and commit changes. Pull and push changes. Change branches and even create new branches. The best part is the easy way of cherry picking each line I want to include on my commits.


![neovim](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1cgxd5qes2ddnowzmwoa.png)

Complete plugin list:
- [lazy.nvim](https://github.com/folke/lazy.nvim) - Plugin manager
- [alpha.nvim](https://github.com/goolord/alpha-nvim) - Dashboard
- [nvim-autopairs](https://github.com/windwp/nvim-autopairs) - Autoclose parens, quotes and other things.
- [nvim-colorizer](https://github.com/norcalli/nvim-colorizer.lua) - Color hex codes
- [comment.nvim](https://github.com/numToStr/Comment.nvim) - Support block comments and jsx comments
- [devicons](https://github.com/nvim-tree/nvim-web-devicons) - Plenty of other plugins rely on this one to render beautiful icons
- [git-blame](https://github.com/f-person/git-blame.nvim) - Show inline git blame by default, I configured to render only on the lualine (bottom bar)
- [lazygit](https://github.com/jesseduffield/lazygit) - A complete git gui inside neovim
- [lualine](https://github.com/nvim-lualine/lualine.nvim) - Bottom status line
- [neoscroll](https://github.com/karb94/neoscroll.nvim) - Support to smooth scrolling
- [neotree](https://github.com/nvim-neo-tree/neo-tree.nvim) -   Filesystem explorer and manager
- [rose-pine](https://github.com/nvim-neo-tree/neo-tree.nvim) - The theme
- [telescope](https://github.com/nvim-telescope/telescope-project.nvim) - Modals to use features like fuzy search, file search and more.
- [wakatime](https://github.com/wakatime/vim-wakatime) - Time tracker

LSPs, Completion, Syntax Highlighting, and formatting. All of  the following plugins work together to give the experience you got on vscode with suggestions and formatting. It was a little bit tricky to setup but now that everything works, it is a great experience.

- [completions](https://github.com/nvim-lua/completion-nvim)
- [lsp](https://github.com/neovim/nvim-lspconfig)
- [none-ls](https://github.com/nvimtools/none-ls.nvim)
- [treesitter](https://github.com/nvim-treesitter/nvim-treesitter)



## Conclusion

Well, that was a superficial overview of my setup, if you would like to see specific tutorials or informations about the setup, even a neovim 101 tutorial, let me know in the comments and follow me for more!

Comment down below a little bit about your setup! Share screenshots. Let's make this article a place to inspire other people to try new tools and be enthusiasts! 💻👋🏻 See ya...