My dotfiles! Use at your own risk. Some pre-requisites (see readme)
.dotfiles
These are my personal dotfiles.
Screenshots
Some notable tools I use are:
- Nvim (
.config/nvim
) - Tmux (
.config/tmux
,utils/tx
) - WezTerm (
.config/wezterm/wezterm.lua
) - Zplug (
zplug.init.sh
)
Requirements
- Node.js (PNPM will be installed)
- jq
Nvim Plugins
I have many many plugins and configurations going on.
Started from kickstart.nvim and heavily modified.
Plugins are installed and configured in .config/nvim
and its subdirectory lua/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 | omgrk/barbar.nvim |
colorscheme.lua | Color scheme switcher | |
dadbod.lua | Dadbod - Database manager for nvim | tpope/vim-dadbod |
debug.lua | Debugger-related code, most of these are not maintained/tested | mfussenegger/nvim-dap |
floating-input.lua | Floating input | liangxianzhe/floating-input.nvim |
fugitive.lua | Git manager - I use LazyGit now, but this remain mostly for git blame functionality | tpope/vim-fugitive |
lazygit.lua | LazyGit inside nvim | kdheepak/lazygit.nvim |
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 |
media_files.lua | Telescope plugin to show media file previews | nvim-telescope/telescope-media-files.nvim |
noice.lua | Notifications & UI improvements | folke/noice.nvim |
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 |
prettier.lua | Implements prettier code formatter into lua | MunifTanjim/prettier.nvim |
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 |
sort.lua | Sort selected lines | sQVe/sort.nvim |
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 |
visual-multi.lua | Multiple cursor support for nvim | mg979/vim-visual-multi |
How to install
-
Install zsh
-
Clone this repository into
~/.dotfiles
:git clone git@github.com:chenasraf/dotfiles.git --depth 1 ~/.dotfiles
-
Replace entire contents of
~/.zshrc
to the new version using (ln -s
does not work):echo 'source "$HOME/.dotfiles/.zshrc"' > ~/.zshrc
-
Run install scripts:
source ~/.dotfiles/install.zsh
And reload the terminal
My Other Stuff
See some of my other projects at my website.
Or some of my packages:
NPM
- 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
Dart/Flutter
Apps
- Dungeon Paper - A Dungeon World character sheet app written with Flutter
- Mudblock - An MUD client for mobile & desktop
Packages
- 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
Neovim
- text-transform.nvim - Common text transformers for nvim - switch between camelCase, PascalCase, snake_case, and more!
Rust
- tblf - Turns any CLI output lines into tables.
Go
- GI Gen - Gitignore generator for any type of projectackages/unaconfig)