Skip to content

b1kr3m/PDE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

14 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

b1kr3m's Development Environment

A lightweight, highly customized Neovim configuration tailored for security researchers, bug bounty hunters, and penetration testers. Built with performance and efficiency in mind for daily security testing workflows.

image

License: MIT Neovim LazyVim

๐ŸŽฏ Philosophy

As a security enthusiast who regularly breaks and tests systems, I needed a development environment that is:

  • Lightweight - Fast startup and minimal resource usage
  • Reliable - Stable enough for daily security research
  • Customizable - Easily adaptable to evolving workflows
  • Efficient - Optimized for rapid development and testing

This configuration prioritizes functionality over flashy features, providing a solid foundation for security research and development work.

โœจ Features

๐Ÿ”ง Core Capabilities

  • LazyVim-based: Built on the excellent LazyVim framework for sensible defaults
  • Language Support: Preconfigured for Go, Python, JavaScript, Rust, Shell scripting, and web development
  • Smart Completion: Blink.cmp with Copilot and Codeium AI assistance
  • Live Development: Built-in live server for web testing and development
  • Git Integration: Comprehensive Git workflow support
  • Symbol Navigation: Aerial plugin for code structure overview
  • Auto-save: Intelligent auto-save with configurable triggers

๐ŸŽจ UI Enhancements

  • Catppuccin & Tokyo Night: Beautiful, eye-friendly color schemes
  • Dashboard: Custom startup screen with quick access shortcuts
  • Bufferline: Enhanced buffer management
  • Statusline: Informative lualine configuration
  • Noice: Modern UI for messages, cmdline, and popups

๐Ÿš€ Developer Experience

  • Fuzzy Finding: Telescope and fzf-lua for rapid file navigation
  • LSP Support: Full Language Server Protocol integration
  • Format on Save: Automatic code formatting with conform.nvim
  • Linting: Real-time code analysis with nvim-lint
  • Treesitter: Advanced syntax highlighting and code understanding
  • Debugging: DAP integration for debugging sessions

๐Ÿ“‹ Prerequisites

  • Neovim >= 0.9.0
  • Git >= 2.19.0
  • Node.js (for Copilot and some LSPs)
  • Python 3 (for Python development)
  • Go (for Go development)
  • Rust (optional, for Rust development)
  • A Nerd Font (recommended: JetBrainsMono Nerd Font)

System-Specific Requirements

Arch Linux (with Hyprland):

sudo pacman -S neovim git nodejs npm python python-pip
yay -S ttf-jetbrains-mono-nerd  # or your preferred AUR helper

๐Ÿ”ง Installation

Fresh Installation

  1. Backup existing configuration (if any):
mv ~/.config/nvim ~/.config/nvim.backup
mv ~/.local/share/nvim ~/.local/share/nvim.backup
mv ~/.local/state/nvim ~/.local/state/nvim.backup
mv ~/.cache/nvim ~/.cache/nvim.backup
  1. Clone this repository:
git clone https://github.com/b1kr3m/PDE.git ~/.config/nvim
  1. Install dependencies:
# Install Python formatters (optional)
pip install black isort
  1. Launch Neovim:
nvim

LazyVim will automatically install all plugins on first launch.

โš™๏ธ Configuration Structure

~/.config/nvim/
โ”œโ”€โ”€ init.lua                    # Entry point
โ”œโ”€โ”€ lua/
โ”‚   โ”œโ”€โ”€ config/
โ”‚   โ”‚   โ”œโ”€โ”€ autocmds.lua       # Auto commands
โ”‚   โ”‚   โ”œโ”€โ”€ keymaps.lua        # Custom key mappings
โ”‚   โ”‚   โ”œโ”€โ”€ lazy.lua           # Plugin manager setup
โ”‚   โ”‚   โ””โ”€โ”€ options.lua        # Neovim options
โ”‚   โ””โ”€โ”€ plugins/
โ”‚       โ”œโ”€โ”€ editor/            # Editor enhancement plugins
โ”‚       โ”‚   โ”œโ”€โ”€ aerial.lua     # Symbol outline
โ”‚       โ”‚   โ”œโ”€โ”€ auto-save.lua  # Auto-save functionality
โ”‚       โ”‚   โ”œโ”€โ”€ live-server.lua # Web development server
โ”‚       โ”‚   โ””โ”€โ”€ telescope.lua  # Fuzzy finder
โ”‚       โ”œโ”€โ”€ lang/              # Language-specific configs
โ”‚       โ”‚   โ”œโ”€โ”€ css.lua        # CSS/SCSS/Tailwind
โ”‚       โ”‚   โ”œโ”€โ”€ go.lua         # Go development
โ”‚       โ”‚   โ”œโ”€โ”€ html.lua       # HTML + Emmet + Live Server
โ”‚       โ”‚   โ”œโ”€โ”€ javascript.lua # JavaScript + ESLint
โ”‚       โ”‚   โ”œโ”€โ”€ python.lua     # Python development
โ”‚       โ”‚   โ”œโ”€โ”€ react.lua      # React JSX/TSX helpers
โ”‚       โ”‚   โ”œโ”€โ”€ rust.lua       # Rust development
โ”‚       โ”‚   โ”œโ”€โ”€ shell.lua      # Shell scripting
โ”‚       โ”‚   โ””โ”€โ”€ typescript.lua # TypeScript + TS Server
โ”‚       โ””โ”€โ”€ ui/                # UI enhancements
โ”‚           โ””โ”€โ”€ dashboard.lua  # Startup dashboard
โ”œโ”€โ”€ lazy-lock.json             # Plugin version lock
โ”œโ”€โ”€ lazyvim.json               # LazyVim extras
โ””โ”€โ”€ stylua.toml                # Lua formatter config

๐ŸŽฎ Key Mappings

Custom Mappings

Mode Key Action Description
Insert jj <Esc> Quick escape to normal mode
Normal <leader>cs :AerialToggle Toggle symbol outline
Normal <leader>as :ASToggle Toggle auto-save
Normal <leader>cL :LiveServerStart Start live server (HTML files)
Normal <leader>cl :LiveServerStop Stop live server

LazyVim Default Mappings

For a complete list of default LazyVim keybindings, see LazyVim Keymaps.

Most Used:

  • <leader>ff - Find files
  • <leader>fg - Live grep
  • <leader>e - Toggle file explorer
  • <leader>gg - LazyGit
  • <C-/> - Toggle terminal

๐Ÿ”Œ Installed Plugins

Essential Plugins

Coding Assistance

UI Enhancements

Language Support

  • LSPs: gopls, pyright, rust-analyzer, typescript-language-server, html-lsp, css-lsp
  • Formatters: gofumpt, black, prettier, shfmt
  • Linters: shellcheck, eslint_d

๐Ÿ› ๏ธ Customization

Changing the Color Scheme

Edit lua/config/lazy.lua to modify the colorscheme preference:

install = { colorscheme = { "catppuccin", "tokyonight" } },

Adding New Languages

Create a new file in lua/plugins/lang/ following the existing patterns. Example structure:

return {
  -- Treesitter
  {
    "nvim-treesitter/nvim-treesitter",
    opts = function(_, opts)
      vim.list_extend(opts.ensure_installed, { "your-language" })
    end,
  },
  
  -- LSP configuration
  {
    "neovim/nvim-lspconfig",
    opts = {
      servers = {
        your_lsp = {},
      },
    },
  },
}

React + TypeScript Setup

This config now supports a proper React workflow out of the box:

  • tsx, typescript, javascript, javascriptreact, and typescriptreact via Treesitter
  • ts_ls for TypeScript/JavaScript language features
  • eslint and eslint_d for React/TypeScript linting
  • tailwindcss LSP for Tailwind projects
  • emmet_ls for fast JSX/TSX markup expansion
  • prettierd / prettier for formatting

For a React project, install the project-side tools as well:

npm install -D typescript eslint prettier @types/react @types/react-dom

If you use Vite:

npm create vite@latest my-app -- --template react-ts
cd my-app
npm install

Then open the project with:

nvim .

On first launch inside Neovim:

  1. Run :Mason and confirm typescript-language-server, eslint-lsp, tailwindcss-language-server, prettierd, and emmet-ls are installed.
  2. Open a .tsx file and run :LspInfo to verify ts_ls is attached.
  3. Run :ConformInfo if formatting is not triggering.

Recommended filetypes for React work:

  • .tsx for React components written in TypeScript
  • .ts for utility/modules without JSX
  • .jsx only if the project is JavaScript-based
  • .js for non-React plain JavaScript

Modifying Dashboard

Edit lua/plugins/ui/dashboard.lua to customize the startup screen, including shortcuts and ASCII art.

Happy Hacking! ๐Ÿ”

About

๐Ÿง  Personal Development Environment A fully customized LazyVim-based Neovim configuration designed for productivity, aesthetics, and a smooth developer experience. This setup integrates a modern workflow for coding, note-taking, and daily development tasks โ€” optimized for performance and flexibility.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors