⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content

wesleyegberto/dotfiles

Repository files navigation

My Dotfiles

##########################################################
#                            ___                         #
#                           /\_ \                        #
#  __  __  __     __    ____\//\ \      __   __  __      #
# /\ \/\ \/\ \  /'__`\ /',__\ \ \ \   /'__`\/\ \/\ \     #
# \ \ \_/ \_/ \/\  __//\__, `\ \_\ \_/\  __/\ \ \_\ \    #
#  \ \___x___/'\ \____\/\____/ /\____\ \____\\/`____ \   #
#   \/__//__/   \/____/\/___/  \/____/\/____/ `/___/> \  #
#   __          __       ___      ___            /\___/  #
#  /\ \        /\ \__  /'___\ __ /\_ \           \/__/   #
#  \_\ \    ___\ \ ,_\/\ \__//\_\\//\ \      __    ____  #
#  /'_` \  / __`\ \ \/\ \ ,__\/\ \ \ \ \   /'__`\ /',__\ #
# /\ \_\ \/\ \_\ \ \ \_\ \ \_/\ \ \ \_\ \_/\  __//\__, `\#
# \ \___,_\ \____/\ \__\\ \_\  \ \_\/\____\ \____\/\____/#
#  \/__,_ /\/___/  \/__/ \/_/   \/_/\/____/\/____/\/___/ #
#                                                        #
##########################################################

This repository contains my personal dotfiles, configuration scripts, and custom settings for a streamlined development environment across multiple tools and operating systems.

Setup Overview

These dotfiles configure various aspects of my system, including:

  • Shell: Zsh with Oh-My-Zsh and Zplugin
  • Terminal: Kitty and Ghostty
  • Editor: Neovim (Lua-based) and VS Code (with Vim extension)
  • AI: Opencode and Gemini
  • Version Control: Git
  • Multiplexer: Tmux
  • Window Manager: Aerospace (macOS)
  • Fonts: Microsoft Cascadia Code with ligatures

Aliases & Key mappings:

Quick Installation

The install.sh script automates the symlinking of configuration files and the installation of Neovim plugins.

Prerequisites:

  • Xcode Command Line Tools: xcode-select --install
  • Homebrew (for macOS): /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • FZF:
    • brew install fd fzf the_silver_searcher ripgrep
  • Python deps and Pylint:
    • pip install --user pynvim
    • pip3 install --user pynvim
    • pip3 install neovim-remote

Steps:

  1. Clone the repository:
    git clone https://github.com/wesleyegberto/dotfiles.git ~/.dotfiles
  2. Run the installation script:
    cd ~/.dotfiles
    ./install.sh
    This script will:
    • Create symlinks for .gitconfig, .zshrc, .tmux.conf, Kitty, Ghostty, and Neovim configurations.
    • Backup existing configuration files before creating symlinks.
    • Run macOS-specific setup scripts, if on a Darwin system, to install all tools needed.
    • Install Neovim's Packer plugin manager and then all Neovim plugins.

Neovim Configuration (Lua-based)

My Neovim setup (version 0.11+) is entirely configured with Lua, emphasizing modularity and ease of maintenance.

Key Features & Plugins:

  • LSP Integration: nvim-lspconfig, mason.nvim for language server management, enhanced UI with navbuddy, lspkind, lsp_signature, lsp-lens, fidget.nvim, trouble.nvim.
  • Fuzzy Finding: telescope.nvim for efficient file, buffer, and command searching, with custom extensions for Git and language-specific tools.
  • Syntax & Editing: Advanced syntax highlighting (nvim-treesitter), automatic pairing (nvim-autopairs), text objects (nvim-surround), and commenting (Comment.nvim).
  • Debugging: Integrated debugging with nvim-dap and nvim-dap-ui.
  • AI Integration: sidekick for CLI AI interaction.
  • Filetype-Specific Configs: Custom settings for Java, C#, Python, TypeScript in nvim/ftplugin.
  • Custom Snippets: Personal code snippets for various languages.

Configuration Structure:

The nvim/ directory is structured as follows:

  • init.lua: Main entry point for Neovim configuration.
  • plugins.lua: Manages all plugins using Packer.
  • lua/: Core Lua configurations.
    • config/: Base settings (options, keybindings, colorscheme).
    • plug-config/: Specific plugin configurations (telescope, treesitter, lsp, completion).
    • custom/: Utility functions and buffer hooks.
    • telescope/: Custom Telescope extensions.
  • ftplugin/: Filetype-specific settings (e.g., java.lua, typescript.lua).
  • keybindings.vim & options.vim: Legacy Vimscript for broader compatibility. Used in others softwares that support Neovim-like configuration.
  • snippets/: JSON-defined code snippets.

VS Code

VS Code is configured with the Vim extension, mirroring many Neovim keybindings and features for a consistent editing experience. Custom settings and key mappings are available in the linked Gist in the original README.

VS Code config files:

  • Settings: configuration to enable the same behavior (configs with prefix vim.).
  • Keybindings: key mappings to navigate between panes, double j on insert mode, go to definition and implementation, so on.

Useful Resources

About

My dotfiles (.zshrc, .vimrc, .tmux.conf)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published