Skip to content

matteocavestri/dotfiles

Repository files navigation

My dotfiles 🧭

This directory contains various dotfiles for configuring an entire work environment. Feel free to use this repo, create a fork, and use it as a starting point for your setup.

Screenshots 📸

Gnome Catppuccin 🐱 Gnome Forge 🦎
Gnome Catppuccin Gnome Forge
Neovim 🌟 Neovim Debug 🐞
Neovim Neovim Debug
Tmux 🌟 Lazygit 🐞
Tmux Lazygit

Gnome Features 🐕

Gnome is customized to function as both a Desktop Environment and a Tiling Window Manager. The customizations made are made possible thanks to the following extensions:

The theme used for both Gnome and terminal programs is Catppuccin Mocha.

Tmux Features 🦓

Neovim Features 🚀

Nvim is perfectly configured for the following languages.

Language Language Server Protocol Debug Adapter Protocol Formatter
C clangd (x86_64 only) gdb clang-format
C++ clangd (x86_64 only) gdb clang-format
Python pyright debugpy ruff
Lua lua_ls // stylua
Rust rust-analyzer gdb rust-analyzer
Javascript tsserver js-debug-adapter prettier
Typescript tsserver js-debug-adapter prettier
Tailwindcss tailwindcss // //
Go gopls go-debug-adapter gofumpt
Java jdtls java-debug-adapter jdtls
Bash bashls bash-debug-adapter //

To see the behavior of neovim with all languages, read neovim.md

Installation 💻

You can install my dotfiles using my install script

curl -sSL -o install.sh https://raw.githubusercontent.com/matteocavestri/dotfiles/main/.scripts/install.sh
bash install.sh

Install as explained in install.md

Project Notes 🗒️

AI - Neovim

The Nvim configuration includes the plugin ChatGPT.nvim which requires an API key from OpenAI. The plugin configuration requires the API key to be entered in the terminal password manager as openai.

Among the AI plugins there is Codeium which requires an account. If you have one, use the command :Codeium Auth and paste the API key to log in.

Obsidian - Neovim

The Obsidian plugin requires Obsidian to be installed and a vault to be configured. To do this, modify the lua/plugins/obsidian.lua file as follows:

-- Modify the directory
event = {
  "BufReadPre " .. vim.fn.expand("~") .. "/vaults/second-brain/**.md",
  "BufNewFile " .. vim.fn.expand("~") .. "/vaults/second-brain/**.md",
},

-- Modify the name and directory
opts = {
  workspaces = {
    {
      name = "second-brain",
      path = "~/vaults/second-brain",
    },
  },
... -- Configuration continues
}

Acknowledgements and License 🖖

Thanks to the Nvchad project and its community, Alexis12199 and DreamsOfCode.

The software is made available under the GNU-GPL-V3 license. Please read LICENSE for more information about the license.

TODOs

  • Update docs --> CodeSnap compilation