# 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.sh
libssl-dev
curl
git
libfuse2
- For running AppImagestmux
(Optional)jimeh/tmux-themepack
neovim
wbthomason/packer.nvim
- Plugin managerMofiqul/vscode.nvim
- VSCode Dark+ themeneoclide/coc.nvim
- Auto completioncoc-json
coc-yaml
coc-pairs
coc-snippets
- Others depending on whether that language is installed
nvim-treesitter/nvim-treesitter
json
yaml
- Others depending on whether that language is installed
nvim-lualine/lualine.nvim
- Status line and tablinenvim-tree/nvim-web-devicons
vim-utils/vim-man
- Man pagesfolke/todo-comments.nvim
- C/C++ (Optional)
g++
cmake
- Sets
CMAKE_EXPORT_COMPILE_COMMANDS
to 1, all CMake projects will createcompile_commands.json
automatically
- Sets
ninja-build
- Sets
CMAKE_GENERATOR
environment variable to Ninja, all CMake projects will be built with Ninja
- Sets
clangd-15
- Coc extensions:
coc-clangd
coc-cmake
- Treesitters:
c
cpp
cmake
- 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-html
coc-css
coc-tsserver
coc-emmet
- Treesitters:
html
css
javascript
typescript
- 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.nvim
python3
python3-pip
pynvim
- Needed forcoc-snippets
bash-completion
- Auto-completion for bash commandscykerway/complete-alias
- In
.config/.complete_alias
by 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:
fontconfig
unzip
(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 init
gs
-git status
ga
-git add
grm
-git rm
grmstaged
-grm --cached
grest
-git restore
gc
-git commit
gca
-gc -a
- Git commit all, including unstagedgcm
-gc -m
- Git commit staged with messagegcam
-gca -m
- Git commit all, including unstaged, with messagegcma
-gcam
gp
-git push
gpod
-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 pull
grst
-git reset
grsth
-grst --hard
gb
-git branch
gba
-gb -a
- Git show branches, including remotegbd
-gb -d
- Git delete branchgbD
-gb -D
- Git delete branch forcefullygch
-git checkout
gchb
-gch -b
- Git checkout into new branchgbch
-gchb
gm
-git merge
gms
-gm --squash
- Git merge other branch into current branch, squashing all commits into onegrb
-git rebase
grem
-git remote
grema
-grem add
gremao
-grema origin
gfch
-git fetch
gfcha
-gfch --all
gfchp
-gfch --prune
giff
-git diff
glog
-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-15
python
->python3
On Windows Subsystem for Linux it enables systemd
, takes effect after a reboot