These are my personal dotfiles.
Some notable tools I use are:
- Nvim (
.config/nvim) - Tmux (
.config/tmux,utils/tx) - WezTerm (
.config/wezterm/wezterm.lua)
- Node.js (PNPM will be installed)
- jq
I have many many plugins and configurations going on.
Started from kickstart.nvim and heavily modified.
Plugins are installed and configured in .config/nvim/lua/casraf/plugins.
Some (but not all) of the plugins/modifications are listed here:
| File | Description | Related plugins |
|---|---|---|
autoformat.lua |
Code auto formatting | neovim/nvim-lspconfig |
barbar.lua |
Tabs | romgrk/barbar.nvim |
ccc.lua |
Color picker and highlighter | uga-rosa/ccc.nvim |
cmp.lua |
Autocompletion with LSP, snippets, and LLM integration | hrsh7th/nvim-cmp, L3MON4D3/LuaSnip |
colorscheme.lua |
Color scheme switcher | |
debug.lua |
Debugger-related code, most of these are not maintained/tested | mfussenegger/nvim-dap |
doc_search.lua |
Search documentation for different languages (MDN, React, NPM, Dart, etc.) | |
floating-input.lua |
Floating input | liangxianzhe/floating-input.nvim |
format.lua |
Code formatting with Prettier | MunifTanjim/prettier.nvim |
fugitive.lua |
Git manager - I use LazyGit now, but this remain mostly for git blame functionality | tpope/vim-fugitive |
git_open.lua |
Open git repositories, branches, commits, and files in browser | |
go.lua |
Go language support and tooling | ray-x/go.nvim |
lazygit.lua |
LazyGit inside nvim | kdheepak/lazygit.nvim |
license.lua |
SPDX license header snippets | |
llm.lua |
LLM - Copilot, ChatGPT (requires OPENAI_API_KEY env), Codeium |
zbirenbaum/copilot.lua, Exafunction/codeium.nvim, jackMort/ChatGPT.nvim |
lsp.lua |
LSP related configs | williamboman/mason-lspconfig.nvim, akinsho/flutter-tools.nvim |
matchup.lua |
Enables moving between function start/end as you would between brackets using % |
andymass/vim-matchup |
noice.lua |
Notifications & UI improvements | folke/noice.nvim |
notes.lua |
Notes management with Telescope integration | |
nvim-test.lua |
Run tests for any project type inside nvim | klen/nvim-test |
oil.lua |
Better than netrw. Fight me. (Lets you move between and edit directories as you would a normal file) | stevearc/oil.nvim |
popup-menu.lua |
Custom right-click popup menu with LSP actions | |
project_runner.lua |
Run prepared terminal commands per filetype - e.g. package.json scripts from ts/js files (Not a plugin) | |
quicklist.lua |
Delete/add to vim quicklist | |
quotes.lua |
Allows you to toggle between \``, "and'` quotes around the cursor |
|
remap.lua |
General vim remaps not related to specific plugins | |
schemastore.lua |
Auto-loads JSON $schema depending on filetype and name |
b0o/schemastore.nvim |
separators.lua |
Insert comment separator lines | |
session.lua |
Session management with auto save/restore | |
statusline.lua |
Status line UI updates | nvim-lualine/lualine.nvim |
surround.lua |
Surround any text with anything like brackets, quotes, HTML tags or custom strings | kylechui/nvim-surround |
telescope.lua |
Fuzzy finder, preview and picker for files/commands/custom | nvim-telescope/telescope.nvim |
text-transform.lua |
Transform between PascalCase, snake_case, camelCase, CONST_CASE and more | chenasraf/text-transform.nvim |
theme.lua |
Theme configuration (OneDark) | navarasu/onedark.nvim |
todo_comments.lua |
Highlight & find TODO/HACK/FIXME/etc in comments across the project | folke/todo-comments.nvim |
treesitter.lua |
Syntax highlighting on steroids | nvim-treesitter/nvim-treesitter |
trouble.lua |
View list of diagnostics, quick fixes, TODOs, etc | folke/trouble.nvim |
undotree.lua |
Undo each file as you would a git branch! | mbbill/undotree |
uuid_gen.lua |
UUID generation snippet | L3MON4D3/LuaSnip |
visual-multi.lua |
Multiple cursor support for nvim | mg979/vim-visual-multi |
-
Install zsh
-
Clone this repository into
~/.dotfiles:git clone [email protected]:chenasraf/dotfiles.git --depth 1 ~/.dotfiles
-
Replace entire contents of
~/.zshrcto the new version using (ln -sdoes not work):echo 'source "$HOME/.dotfiles/.zshrc"' > ~/.zshrc
-
Run install scripts:
source ~/.dotfiles/install.zsh
And reload the terminal
See some of my other projects at my website.
Or some of my packages:
- Simple Scaffold - Generate any file structure - from single components to entire app boilerplates, with a single command.
- Massarg - Flexible, powerful, and simple command/argument parser for CLI applications
- Dungeon Paper - A Dungeon World character sheet app written with Flutter
- Mudblock - An MUD client for mobile & desktop
- Script Runner - Run all your project-related scripts in a portable, simple config.
- Unaconfig - Load your user's config files for your package easily, from multiple sources & formats. Like cosmiconfig, but for Dart!
- CTelnet - A simple Telnet client for Dart/Flutter, parse incoming and outgoing data easily and quickly.
- btool - Generic build helper tools for Flutter/Dart such as manipulating version, package name or application ID
- Wheel Spinner - A simple Flutter widget for updating a number using a pitch bender-like spinner
- text-transform.nvim - Common text transformers for nvim - switch between camelCase, PascalCase, snake_case, and more!
- tblf - Turns any CLI output lines into tables.
- GI Gen - Gitignore generator for any type of projectackages/unaconfig)