Skip to content

Personal dotfiles for nvim, zsh and gnu stow auto setup script.

Notifications You must be signed in to change notification settings

Cyber-Syntax/dotfiles

Repository files navigation

My personal dotfiles

I've moved to using GNU Stow for my personal dotfiles maintenance instead of a bare repository.

How to setup GNU Stow for your dotfiles?

Caution

Backup your files!

Always cd ~/dotfiles dir before any stow command

My current setup

Window managers

  • i3wm (Currently using)
    • Polybar
  • Qtile (WARNING: Not maintained, broken config...)
  • Hyprland
    • Waybar

General apps used with window managers

  • Rofi : for application launcher
  • Dunst : for notification
  • Flameshot : for screenshot
  • Picom : for compositor
  • Pcmanfm : for file management
  • gammastep : for blue light filter

Terminal Emulators

  • Ghostty : Currently using because support images and tabs well.
  • Alacritty : Previously used for better performance but lack of tabs support.
  • Kitty : Previously used for good features but performance is not as good as Alacritty.

Shells

  • Zsh (Currently using)
    • oh-my-zsh
  • Bash

Other tools

  • Tmux : Currently using for terminal multiplexer.

  • Starship : Powerlevel10k alternative written in Rust for prompt for any shell.

  • MangoHud : For monitoring system performance in games.

  • containers : Podman config for setting custom directory for containers and images.

  • mimeapps.list : For setting default applications for file types and protocols.

  • autocpufreq

    • For automatic CPU frequency scaling.
  • autotarcompress

    • My Script config to automatically compress tar files after creation.
  • auto-penguin-setup

    • My script config to automate setup for linux distros.
  • my-unicorn

    • My script config to automate appimage management.

Dependencies

neovim dependencies, add to dotfiles

  • lazygit nodejs npm laurocks tree-sitter-cli

Other dependencies

  • uv oh-my-zsh stow zsh

Automatic setup with shell script

Note

The setup script setup.sh helps automate the process of organizing your dotfiles into a structured format and deploying them using GNU Stow. It provides options for setting up, deploying, and cleaning up backup files, making it easier to manage your dotfiles.

./setup.sh --help
Usage: setup.sh [OPTION]

Options:
  --move              Run move: preview and move files to dotfiles structure
  --stow              Run stow: preview and apply stow symlinks
  --clean             Clean up backup files
  --git               (Experimental) Initialize the dotfiles Git repository
  --help              Show this help message

Move option

Note

This would move your dotfiles to ~/dotfiles It would show preview of changes before applying them It creates backups of original files before moving them to prevent data loss

  • For .config files: ~/.config/nvim to ~/dotfiles/dot-config/nvim
  • For dot files: ~/.vim to ~/dotfiles/dot-vim
  • For dot files: ~/.zshrc to ~/dotfiles/dot-zshrc
# Make the setup script executable
chmod +x setup.sh

# Run the setup script
./setup.sh --move

Stow option

Note

This would stow your dotfiles to your home directory It would show preview of changes before applying them

  • This using stow to deploy your files.
  • Command used for preview: stow -n -v --dotfiles --target="$HOME" .
  • Command used for deploy: stow -v --dotfiles --target="$HOME" .
# This would deploy your dotfiles to your home directory
./setup.sh --stow

Clean option

Note

This would remove backup files created during setup It would show preview of backups to be removed before applying them

./setup.sh --clean

Manual Setup

  1. Create folder ~/dotfiles
  2. initialize git repo
echo "# dotfiles" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/Cyber-Syntax/dotfiles.git
git push -u origin main
  1. Make folder for ~/.config
mkdir -p ~/dotfiles/dot-config/
  1. Copy your configs
cp -r ~/.config/nvim ~/dotfiles/dot-config/
  1. test stow dry without change anything to make sure about changes correct
cd ~/dotfiles &
stow -n -v --dotfiles --target="$HOME" .
  1. If everythings work perfect, stow your files
cd ~/dotfiles &
stow --dotfiles --target="$HOME" .
  1. Alias for stow ~/dotfiles/.stowrc:
--dotfiles
--target=$HOME
--ignore=.stowrc
--ignore=setup.sh
--ignore=.stfolder
--ignore=stversions
--ignore=docs
  1. stow files to symlink
cd ~/dotfiles &
stow .

About

Personal dotfiles for nvim, zsh and gnu stow auto setup script.

Topics

Resources

Stars

Watchers

Forks