Skip to content

SDGLBL/dotfiles

Repository files navigation

Welcome to Dotfiles 👋

A dotfiles support full stack development in terminal

Features

Neovim Configuration

Requires Neovim >= 0.10.0

Core Features

  • Full LSP support with blink.cmp based completion (modern replacement for nvim-cmp)
  • Treesitter-based syntax highlighting and indentation
  • Git integration tools
  • Debug Adapter Protocol (DAP) support
  • Remote SSH copy & paste support
  • Fuzzy finding with Telescope
  • Automatic LSP server installation
  • Copilot integration
  • Advanced AI coding assistance with CodeCompanion

Language Support

Pre-configured support for:

  • Lua
  • Python
  • Golang
  • Rust
  • JavaScript/TypeScript
  • HTML/CSS
  • Docker
  • JSON/YAML
  • Markdown
  • And more...

Themes

Integrated themes include:

  • Catppuccin
  • Gruvbox
  • Rose Pine
  • Tokyo Night
  • Night Fox
  • Material
  • And many more...

Terminal Tools

Essential CLI tools included:

  • duf - Disk usage analyzer
  • fzf - Fuzzy finder
  • bat - Modern cat replacement
  • exa - Modern ls replacement
  • ripgrep - Fast grep replacement
  • delta - Git diff viewer
  • lazygit - Git TUI

Prerequisites

Ubuntu/Debian

sudo apt install make gcc git python3 zsh curl wget tmux libc6-dev

macOS

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install gcc make g++ git python3 zsh libc6-dev wget curl tmux

Installation

For Linux systems:

./setup.sh -a

For macOS systems:

./setup_macos.sh -a

Use -h or --help flag to see all available options:

./setup.sh -h
# or
./setup_macos.sh -h

Configuration

API Tokens and Secrets

This repository includes a secure mechanism for storing and using API tokens and secrets without exposing them in your Git history.

Initial Setup

  1. After cloning the repository, install the Git hooks:
./git-hooks/install-hooks.sh
  1. Create a .token.sh file in the root of the repository (a template is provided at .token.sh.template):
cp .token.sh.template .token.sh
  1. Edit the file to add your API keys and other secrets:
vim .token.sh
  1. The Git hooks will automatically encrypt your .token.sh when committing changes and decrypt it when checking out or pulling.

How It Works

  • .token.sh contains your sensitive data and is excluded from Git
  • .token.sh.enc is an encrypted version that is safe to commit
  • Git hooks automatically handle encryption/decryption using OpenSSL
  • The encryption password is stored in your ~/.zshrc as TOKEN_DECODE_PASSWORD

Manual Operations

If you need to manually encrypt or decrypt the file:

# Encrypt
openssl enc -aes-256-cbc -salt -pbkdf2 -pass "pass:$TOKEN_DECODE_PASSWORD" -in .token.sh -out .token.sh.enc

# Decrypt
openssl enc -aes-256-cbc -d -salt -pbkdf2 -pass "pass:$TOKEN_DECODE_PASSWORD" -in .token.sh.enc -out .token.sh

Neovim

The main Neovim configuration file is located at ~/.config/nvim/init.lua. You can customize settings by editing this file:

require("configs").setup({
  -- Choose your colorscheme
  dark_colorscheme = "rose-pine-moon",
  light_colorscheme = "catppuccin-latte",

  -- Enable features
  dap = true,         -- Debug adapter protocol
  format_on_save = true,
  transparent_window = true,

  -- Language support
  go = true,
  rust = true,
  python = true,

  -- Additional features
  autopairs = false,
  markdown_preview = true
})

Project Structure

.
├── Brewfile
├── config -> .config
├── Dockerfile
├── README.md
├── setup.sh
└── setup_macos.sh

Author

👤 sdglbl

Show your support

Give a ⭐️ if this project helped you!

License

This project is MIT licensed.


This README was generated with ❤️

About

A dotfiles support full stack dev

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published