Hello, I am Sage, a Software Engineering student.
In this repo, I organize all of my MacOS configurations and share the tools and workflows that might fit you as a developer!
There are a lot of resources
- Dotfiles & Tools
- Table of Contents
- [For any questions regarding the configurations feel free to open an issue.](#for-any-questions-regarding-the-configurations-feel-free-to-open-an-issuehttpsgithubcomjustsagepublic-dotfilesissuesnew)
-
This repo contains years of experience of my personal workflow, it may not suit your personal needs but feel free to grab whatever is useful to you.
-
If you are running Linux or Windows, do not use the bootstrap script.
-
If any plugin yields an error please file an issue.
-
I do not claim any responsibility if these application cause harm to your computer, these are public applications which are maintained by other developers;
-
In case something happens because of an application mentioned here - head over to their repository and file an issue on the topic.
Bootstrap is yet tested, use at your own risk.
Bootstrap script included. Please read the script carefully to understand what software you are installing.
- SAFE ON FRESH INSTALL.
- Backing up existing bare repository folder
.cfg
or creating one and setting git with the work tree parameters and checkout to set a bare repository for the dotfiles.
- Installing Brew and Zshell.
- Installing Brew dependencies (which I use in my workflow, it may clash with either existing applications or conflicting dependencies).
- Installing Starship prompt.
- Installing Packer.nvim plugin manager.
- Removing existing
packer_compiled.lua
and syncing all plugins withPackerSync
.
- Clone the repostitory via SSH or HTTPS, cd to the location of the repo and navigate to
./workspace/self/scripts
where the boostrap file is located. - Make the script executable with chmod and run the script.
git clone https://github.com/JustSage/public-dotfiles.git
cd path/to/repo/workspace/self/scripts
chmod +x .cfg-install
./cfg-install
Handpicked a few applications which are a must on every install.
Homebrew a package manager for MacOS. It makes downloading, installing, and version managing of small cli programs & enterprise applications a breeze.
-
Install it on your machine:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Install packages with
brew install <package-name>
. -
Install applications with
brew --cask install <application-name>
. -
Use
brew --help
for more useful commands and info.
My shell of choice, superior to bash due to it's ease of use and extensiblility (IMO).
NOTICE
Don't be tempted to install
oh-my-zsh (z shell)
/oh-my-fish(fish shell)
/oh-my-posh(power shell)
.
They are extremely bloated frameworks and will most likely hinder your experience.
Instead you should browse their repository and scrape for specific plugins that are relevant to your workflow.
You can copy the .zsh
file contents and source it in your .zshrc
the shell run-command file.
Some of the plugins I use extensively are Fzf, a general purpose fuzzy finder while in terminal buffers.
Zsh syntax-highlighting and autosuggestions, zsh vi-mode for vi keybinds in the terminal, Z for quick & seamless navigation to directories.
You may use a full fledged zsh-vi-mode but personally I think it's an overkill.
Highly recommend looking into XDG Base Directory to declutter your home directory,
and set up a .zshenv
file to store PATH variables, environment variables & API Keys.
For example:
# XDG Path Settings
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_STATE_HOME="$HOME/.local/state"
# Defaults
export DOTFILES="$XDG_CONFIG_HOME"
export ZDOTDIR="$XDG_CONFIG_HOME"/zsh
...
# Path vars
export PATH="$XDG_CONFIG_HOME/yarn/global/node_modules/bin:$PATH"
...
I've been using Vim/Neovim for quite a while now and this repo contains my maintained configurations.
-
Install via
brew install nvim
to install the latest stable version. -
Check out neovim for updates!
-
Packer - package manager, has lazyloading functionalities.
Unix, Linux installation for packer (essential for all plugins mentioned bellow)
git clone --depth 1 https://github.com/wbthomason/packer.nvim\
~/.local/share/nvim/site/pack/packer/start/packer.nvim
Check out my neovim configurations or clone the repository and copy nvim
folder to your .config
.
Make sure to back up any previous configurations before doing so.
Currently set up for python and web development. This setup is working on
Neovim 0.8.2
All plugins listed below do not require nighly version (development verion).
- alpha - dashboard on startup.
- catppuccin - colorscheme of choice.
- lualine - status line of choice.
- indent-blankline - indent lines/dots to visually emphasis indentations.
- todo-comments - provides highlighting to keywords like TODO,NOTE,FIX etc.
- toggle-term - opens a terminal instance in neovim.
- treesitter - provides better syntax highlighting, folding etc.
- web-devicons - provides icons to statusline, nvimtree etc. requires nerd-font.
- nvim-tree - file explorer in tree view.
- telescope.nvim - fuzzy finder over lists. super useful, similar to fzf but far more extensible.
extensions:- telescope-fzf-native - provides fzf search functionalities.
- telescope-live-grep-args - allows to pass arguments to live grep.
- telescope-ghq - ghq integration for repository management.
- tmux - tmux integration with neovim.
- mason - lsp,dap,linter,formatter installer. Mason has external API plugins for each installer:
- nvim-lspconfig - for language server protocols.
- null-ls - used primarily for formatting/linting diagnostics, provides a lot more.
- neodev - settings and configurations for lua lsp.
- lspsaga - a frontend ui to lsp capabilities.
- lspkind - provides icons/naming to different kinds of lsp completion sources.
- fugitive - git integration with vim.
- rhubarb - github integration with vim.
- gitsigns - shows git changes in gutter.
- diffview - git diff viewer of choice.
- comment - comment line or block. filetype sensitive, can work with multisyntax files (vue/jsx etc).
- neogen - documentation engine.
- matchup - easy traversal between opening/closing tags of any kind with
%
. - autopairs - pair brackets automatically.
- nvim-ts-autotag - close/change html tags automatically.
- surround - manipulating opening/closing brackets/parens etc.
- repeat - repeating
.
motion for surround. - undotree - visual tree of your undos.
- cmp - autocompletion engine.
- friendly-snippets - snippet engine support plugin.
- luasnip - snippet engine.
- neotest - connects different test adapters and provides a frontend for test environments.
- nvim-dap - debug adapter protocol, allows to attach debuggers to applications, set breakpoints etc.
- nvim-dap-ui - full fledged ui for debugging.
- nvim-colorizer - provides color highlighting for hex/rgb in text.
- emmet-vim - emmet for html,css abbreviations.
- markdown-preview - markdown live-server.
- impatient - improved startuptime.
- startuptime - show startuptime results graphically.
- headlines - markdown headlines for headers, dash, codeblocks etc.
- presence - shows a status of your neovim work in discord.
NOTICE:
Check out the provided links before mindlessly using the configurations for further information and any necessary dependencies it may require.
If you are a beginner to Vim I strongly recommend using the built in tutor to get familiar with vim concepts.
When in nvim use :tutor
.
If you wish to understand the configurations or better, modify/extend them, learning basic lua
is necessary.
There are many guides out there, but this covers most of what you need: nvim-lua-guide
Terminal multiplexer, session manager, a tool any terminal user needs. Using multiple split panes, windows and sessions in a safe environment (supports session reload).
Install via brew install tmux
.
Guide for tmux beginners, while there are plenty of guides out there this seems to be beginner friendly.
- Tmuxinator
Co-pilot of tmux, instantiates predefined sessions with splits/panes/windows and more...
Install via
brew install tmuxinator
.
Version control for all purposes. Typed notes, software and configurations are all managed via git.
- Install via
brew install git
- commitizen/cz-cli - commit parser.
Spotlight alternative. It's an incredible productivity tool!
Alfred app - visit their website and try out the free version!
Alfred offers multiple features such as:
- Search & Browse (literally anything, anywhere).
- Intellisense-like suggestions for search.
- Automate tasks.
- Workflows.
- Snippets.
- Cliboard history.
- 1Password integration.
- System Commands.
This is an essential productivity tool I have to install right away on a mac.
There is a paid version which is not mandatory but I highly recommend it to experience the full power of Alfred.