Skip to content

Dotfiles, configurations and application installation scripts for MacOS/Unix based OS.

Notifications You must be signed in to change notification settings

JustSage/public-dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Dotfiles & Tools

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

Table of Contents


Disclaimers

  • 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.

Quickstart - NOT TESTED YET

Bootstrap is yet tested, use at your own risk.

Bootstrap script included. Please read the script carefully to understand what software you are installing.

TLDR (Bootstrap explained):
  • 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 with PackerSync.
Installation with Bootstrap script
  • 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

Manual Installation

Handpicked a few applications which are a must on every install.


Homebrew

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.


Zsh

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"
...

Nvim

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).

General UI
  • 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.
Navigation
LSP & Related
  • 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.
Git Integration
  • fugitive - git integration with vim.
  • rhubarb - github integration with vim.
  • gitsigns - shows git changes in gutter.
  • diffview - git diff viewer of choice.
Utilities and Text manipulation
  • 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.
Completion Engines
Testing & Debugging
  • 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.
Web development essentials
Integrations & Miscellanious
  • 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


Tmux

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.

Git

Version control for all purposes. Typed notes, software and configurations are all managed via git.


Alfred

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.


For any questions regarding the configurations feel free to open an issue.

About

Dotfiles, configurations and application installation scripts for MacOS/Unix based OS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published