mac-dotfiles

Base macos setup dotfiles with terminal, vim and tmux config. Tested on m1, m1 pro and m2

Stars
5

dotfiles

Missing feature? Fork this repo and make it better!

Installation

Tell Git who you are using these commands:

git config -f ~/.gitlocal user.email "[email protected]"
git config -f ~/.gitlocal user.name "Name Lastname"

Under the hood

Note: You may put your custom settings into ~/.zshlocal.

Projects tree

I suggest you to organize project folder as follows:

~/Projects
 Forks       # for GitHub fork
 Job         # for job projects
 Playground  # for short-term experiments
 Repos       # for long-term projects

Aliases

Aliases are gonna make your work fast and enjoyable. See code in $DOTFILES/lib/aliases.zsh. Here is what's included:

  • Aliases from Oh-My-Zsh. See Oh-My-Zsh Cheatsheet for more.
  • Easier navigation
    • .. cd ..
    • ... cd ../..
    • .... cd ../../..
    • ..... cd ../../../..
    • ~ cd ~
    • - cd -
  • Folders shortcuts
    • dl cd ~/Downloads
    • dt cd ~/Desktop
    • pj cd ~/Projects
    • pjr cd ~/Projects/_Repos
    • pjf cd ~/Projects/_Forks
    • pl cd ~/Projects/_Playground/
  • Commands Shortcuts
    • e $EDITOR
    • +x chmod +x
    • x+ chmod +x
    • ll ls -alF
    • la ls -A
    • l ls -CF
  • Open
    • open <FILE> open file from terminal.
    • o <FILE> open file from terminal.
    • oo open current folder.
  • Misc
    • update get updates (Runs $DOTFILES/scripts/update.zsh).
    • dotfiles jump quickly into dotfiles folder.
    • myip my local IP address.
    • password generate random password, copies it into clipboard and outputs it to terminal.
    • path print $PATH in readable view.
    • getpage download web page with all assets.
    • get download file with original filename.

Bin

Dotfiles also include some functions that will make your life easier. See code in bin/.

  • emptytrash empty the Trash on all mounted volumes and the main HDD.
  • git-cleanup removes old Git branches and does other cleanup.
  • git-fork add remote upsteam.
  • git-upstream sync branch with upstream.
  • gz get gzipped file size
  • n runs given command using binary in node_modules/.bin of the current project.
  • nyan print nyan cat.
  • server start an HTTP server from a directory.

Git

Note: Add your git user data and custom settings to ~/.gitlocal.

Git Aliases

  • git a git add patch mode for specified files.
  • git ua git reset HEAD unstage files.
  • git b git branch list, create, or delete branches.
  • git c git commit record changes to the repository.
  • git co git checkout checkout a branch or paths to the working tree.
  • git ap git add -p add file contents to the index.
  • git ca git commit -a commit with automatically stage files that have been modified and deleted.
  • git cm git commit -m commit with commit message.
  • git cam git commit -am add all files and commit with message.
  • git s git status -sb short status with current branch.
  • git master go to master branch and pull from remote.
  • git develop go to develop branch and pull from remote.
  • git git do not complain about git git.
  • git l commits log with pretty single line format.
  • git ll log with list of changed files for each commit.
  • git ignore ignore files: append file to .gitignore.
  • git this initialize, add all files and commit.
  • git amend amend last commit.
  • git redo amend last commit with its original message.
  • git undo reset --mixed HEAD^ reset index changes, but not the working tree.
  • git discard checkout -- discard changes.
  • git contrib list of contributors and how many commits each person has.
  • git today see how many lines of code you have written today.
  • git stat how many lines of code in repo.
  • git sync pull and push changes from/to remote.
  • git-root go to repo root.
  • git-cleanup [--force] removes old Git branches.
  • git-fork <original-author> add remote upstream.
  • git-upstream [branch] sync branch with upstream (as default master).