Skip to content

AH-Merii/SMS-Supercharge-My-Shell

Repository files navigation

SMS Supercharge-My-Shell

About

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

Modern Unix Tools

The setup adds the following modern unix tools and creates aliases for their GNU counterparts:

  • cat:bat - A cat clone with syntax highlighting and Git integration.
  • grep:ripgrep - An extremely fast alternative to grep that respects your gitignore
  • ls:exa - A modern replacement for ls
  • diff:delta - A viewer for git and diff output

Terminal Setup

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 manager
  • fzf - A general purpose command-line fuzzy finder.
  • powerlevel10k - A minimal, blazing-fast, and highly customizable prompt for any shell
  • neovim - Vim-fork focused on extensibility and usability ---> An alternative to Vim

Zsh

The setup installs zsh and sets it as the default shell. The following zsh extensions are also installed using zap:

Navigation

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 right
  • ctrl + <- move one word left
  • ctrl + shift + -> select one word right
  • ctrl + shift + <- select one word left
  • home go to start of line
  • end go to end of line
  • shift + home select to start of line
  • shift + end select to end of line
  • ctrl + c during selection copy
  • ctrl + x during selection cut
  • ctrl + v paste

Install

Prerequisites

### Setup Script
To automatically setup the development environment simply navigate to the root directory of the repo, and run:
```bash
./setup.sh

Dotfiles

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

Systemd Services

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.

How It Works:

  1. Store your custom services under services/systemd/.
    • Example structure: services/systemd/nvidia-pm.service
  2. Copy the services to /etc/systemd/system/:
    sudo cp services/systemd/* /etc/systemd/system/custom-services/

Enabling and Starting 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.

About

Supercharge your shell, with this easy to setup installation script.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published