# Git path
DOTFILES=$HOME/.dotfiles
# Clone the repository
git clone --mirror https://github.com/Mis1eader-dev/.dotfiles.git $DOTFILES
# Make the bare repo accessed via an alias
alias dotfiles="git --git-dir=$DOTFILES --work-tree=$HOME"
# Make it sparse
dotfiles config core.sparsecheckout true
# Don't clone README.md
echo $'/*\n!README.md' > $DOTFILES/info/sparse-checkout
# Bring in the files
dotfiles checkout -f
# We are done with it
unset DOTFILES
# Source and execute the setup
. ~/setup.shlibssl-devcurlgitlibfuse2- For running AppImagestmux(Optional)jimeh/tmux-themepack
neovimwbthomason/packer.nvim- Plugin managerMofiqul/vscode.nvim- VSCode Dark+ themeneoclide/coc.nvim- Auto completioncoc-jsoncoc-yamlcoc-pairscoc-snippets- Others depending on whether that language is installed
nvim-treesitter/nvim-treesitterjsonyaml- Others depending on whether that language is installed
nvim-lualine/lualine.nvim- Status line and tablinenvim-tree/nvim-web-deviconsvim-utils/vim-man- Man pagesfolke/todo-comments.nvim
- C/C++ (Optional)
g++cmake- Sets
CMAKE_EXPORT_COMPILE_COMMANDSto 1, all CMake projects will createcompile_commands.jsonautomatically
- Sets
ninja-build- Sets
CMAKE_GENERATORenvironment variable to Ninja, all CMake projects will be built with Ninja
- Sets
clangd-15- Coc extensions:
coc-clangdcoc-cmake
- Treesitters:
ccppcmake
- Java (Optional)
openjdk-19-jdk-headless- Coc extensions:
coc-java
- Treesitters:
java
- HTML, CSS, JS (Optional)
live-server- To make documents hot refresh- Coc extensions:
coc-htmlcoc-csscoc-tsservercoc-emmet
- Treesitters:
htmlcssjavascripttypescript
- Python (Optional)
- Regardless of whether Python is chosen to be installed, Python and pip will be installed later
- Coc extensions:
coc-pyright
- Treesitters:
python
- Lua (Optional)
lua5.4(Optional)- Coc extensions:
coc-sumneko-lua
- Treesitters:
lua
nodejs- Needed forcoc.nvimpython3python3-pippynvim- Needed forcoc-snippetsbash-completion- Auto-completion for bash commandscykerway/complete-alias- In
.config/.complete_aliasby default it is set to auto-complete all aliases
- In
grep- Regular expressions (regex)- JetBrainsMono v2.3.3 Font
- On a non-Windows machine it also installs:
fontconfigunzip(If the font isn't already installed)
- On a non-Windows machine it also installs:
Set according to .config/.bashrc, by default:
v- Launchs neovimvsudo- Launchs neovim with sudodotfiles- Acts on this repository using gitsee- Opens file explorer on Windows, or opens the browser if an HTML file is given to itsdown- Shutdownginit-git initgs-git statusga-git addgrm-git rmgrmstaged-grm --cachedgrest-git restoregc-git commitgca-gc -a- Git commit all, including unstagedgcm-gc -m- Git commit staged with messagegcam-gca -m- Git commit all, including unstaged, with messagegcma-gcamgp-git pushgpod-gp origin -d- Git delete branch remotelygpuo-gp -u origin- Git push upstreamgpf-gp -f- Git push forcefullygpfwl-gp --force-with-lease- Git push forcefully, but ask nicely before doing sogpl-git pullgrst-git resetgrsth-grst --hardgb-git branchgba-gb -a- Git show branches, including remotegbd-gb -d- Git delete branchgbD-gb -D- Git delete branch forcefullygch-git checkoutgchb-gch -b- Git checkout into new branchgbch-gchbgm-git mergegms-gm --squash- Git merge other branch into current branch, squashing all commits into onegrb-git rebasegrem-git remotegrema-grem addgremao-grema origingfch-git fetchgfcha-gfch --allgfchp-gfch --prunegiff-git diffglog-git log
All key bindings are defaults, and two are added:
CTRL+w |- Split horizontallyCTRL+w -- Split vertically
All key bindings are defaults, except for splits, they are rebound to:
CTRL+b |- Split horizontallyCTRL+b -- Split verticallyCTRL+b b- Show/hide status line
These are made by the setup.sh, not accounting for other symlinks made by package installations
clangd->clangd-15python->python3
On Windows Subsystem for Linux it enables systemd, takes effect after a reboot