This directory contains all the dotfiles for a supercharged development environment. It includes an easy way to make sure that all the necessary programs are installed using the setup.sh
script.
NOTE: This setup only works on Arch Linux as it makes heavy use of the AUR.
Table of Contents
The setup adds the following modern unix tools and creates aliases for their GNU counterparts:
cat:bat
- Acat
clone with syntax highlighting and Git integration.grep:ripgrep
- An extremely fast alternative togrep
that respects your gitignorels:exa
- A modern replacement forls
diff:delta
- A viewer forgit
anddiff
output
The setup adds the following tools to terminal gui tools:
lazygit
- A simple terminal UI for git commands, written in Go with the gocui library.lf
- A terminal file managerfzf
- A general purpose command-line fuzzy finder.powerlevel10k
- A minimal, blazing-fast, and highly customizable prompt for any shellneovim
- Vim-fork focused on extensibility and usability ---> An alternative to Vim
The setup installs zsh
and sets it as the default shell. The following zsh
extensions are also installed using zap:
- zsh-autosuggestions
- zsh-autopair
- zsh-you-should-use
- zsh-shift-select
- fast-syntax-highlighting
- zsh-autosuggestions
- zsh-completions
- fzf-tab
This setup also includes all the shortcuts for selecting text that you would use on a normal text editor such as:
ctrl + ->
move one word rightctrl + <-
move one word leftctrl + shift + ->
select one word rightctrl + shift + <-
select one word lefthome
go to start of lineend
go to end of lineshift + home
select to start of lineshift + end
select to end of linectrl + c
during selection copyctrl + x
during selection cutctrl + v
paste
- Arch Linux or any Arch-based distro
- NerdFonts compatible font
### Setup Script
To automatically setup the development environment simply navigate to the root directory of the repo, and run:
```bash
./setup.sh
If you would simply like to copy the dotfiles, then while you are in setup.sh
simply skip the other steps when prompted and only run the step related to the configs.
OR
Run stow
to symlink everything or just select what you want
stow */ -t ~ # creates a symlink for all config files
stow zsh # creates symlink for only zsh configs
In addition to managing your dotfiles, this setup allows you to manage custom systemd
services. These services are stored in the services/systemd
directory, and to activate them, you can simply copy them to /etc/systemd/system
. A better approach is to create a dedicated directory like /etc/systemd/system/custom-services
to keep track of which services are custom.
- Store your custom services under
services/systemd/
.- Example structure:
services/systemd/nvidia-pm.service
- Example structure:
- Copy the services to
/etc/systemd/system/
:sudo cp services/systemd/* /etc/systemd/system/custom-services/
After copying the service files, you'll need to reload systemd
to recognize them:
sudo systemctl daemon-reload
You can now enable and start the service:
sudo systemctl enable nvidia-pm.service
sudo systemctl start nvidia-pm.service
This way, you can easily keep track of all your custom services and only activate the ones you need.