phantompunk / dotfiles

Mac and Linux System Config with Fish, Homebrew, Kitty and Neovim. No symlinks or extra tooling required.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๐Ÿ”ง dotfiles

Intended to provide a friendly crossplatform expierence using Fish, Kitty, and Homebrew, compatible with macOS and Linux. No symlinking or extra tooling required.

A mashup of ideas from various sources such zellwk, sobolevn, mathiasbynens, rkalis, and durdn. The structure for these dotfiles is from durdn's great write up on dotfiles.

Kitty terminal running fish examples

Quick start

Batteries included shell script walking you through the install options.

๐Ÿšง Use at your own risk! Review and modify before executing.
git clone --bare https://github.com/phantompunk/dotfiles.git $HOME/.cfg
function config {
   /usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME $@
}
mkdir -p .config-backup
config checkout
if [ $? = 0 ]; then
  echo "Checked out config.";
  else
    echo "Backing up pre-existing dot files.";
    config checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | xargs -I{} mv {} .config-backup/{}
fi;
config checkout
config config status.showUntrackedFiles no

Complete bash script stored in gist - gist.github.com/phantompunk/init.sh

How it works

Symlinking and extra tooling is avoided by cloning a bare git repository to your home directory. Dotfiles and configuration files are right where they are intended to be. Read this for more info on using bare repos for Dotfiles.

This repo contains files in the exact location as if they lived in my home directory, that is because they will.

  • .gitignore
  • .gitconfig
  • .config for other files
    • fish functions, variables, abbrievatsions and aliases
    • kitty settings and themes
    • nvim settings, keymaps, and plugins

Install

For fresh installs there are a few requirements.

All platforms need git, curl, and nvim.

MacOS

sudo softwareupdate -i -a
xcode-select --install

Linux (Debian)

apt update -y
apt install -y build-essential

Usage

touch ~/.vimrc
config status
config add ~/.vimrc
config commit -m "fix: update vim settings"
config push

๐Ÿ› ๏ธ Toolset

My current favorite tools I expect on every machine I use:

Shell: Fish Shell ๐ŸŸ

Package Manager: Homebrew ๐Ÿบ

Terminal: Kitty ๐Ÿˆ

Apps

  1. bat - A cat clone with syntax highlighting

  2. exa - A ls replacement with hightlighting

About

Mac and Linux System Config with Fish, Homebrew, Kitty and Neovim. No symlinks or extra tooling required.


Languages

Language:Lua 46.8%Language:Shell 46.6%Language:Python 6.7%