Compare commits
2 commits
041d195556
...
a62bc5c4b8
Author | SHA1 | Date | |
---|---|---|---|
a62bc5c4b8 | |||
f5865c0e06 |
6 changed files with 50 additions and 208 deletions
66
README.md
66
README.md
|
@ -1,65 +1,11 @@
|
||||||
# Dot Files
|
# Dot Files
|
||||||
|
|
||||||
Configuration files (often called dot-files because they start with a ".") for
|
Configuration files (often called dot-files because they start with a ".") for
|
||||||
the applications I use on a regular basis.
|
the applications I use on a regular basis. The configuration files are fully
|
||||||
|
commented and self-descriptive.
|
||||||
|
|
||||||
### Requirements
|
## Usage
|
||||||
|
Update the system from repo: `cp -rut ~/.config <dir>`
|
||||||
|
Update the repo from system: `cp -rut . ~/.config/<dir>`
|
||||||
|
|
||||||
You'll need `make` for the automated linking of the dotfiles. Obviously you'll
|
Alternatively, `make` to automate some of it.
|
||||||
need the related program for each config file to be applicable.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
> 1. git clone git@github.com:VagabondAzulien/dotfiles.git
|
|
||||||
>
|
|
||||||
> 2. cd dotfiles
|
|
||||||
>
|
|
||||||
> 3. Type `make` to see your options
|
|
||||||
|
|
||||||
## Applications Configured
|
|
||||||
|
|
||||||
### Vim
|
|
||||||
My vim configuration is relatively straight forward and thoroughly commented.
|
|
||||||
|
|
||||||
#### Plugin File
|
|
||||||
The vimrc-plugins file stores the plugin information for
|
|
||||||
[Vim-Plug](https://github.com/junegunn/vim-plug). Included in the file is a
|
|
||||||
command to check for and pull-down the vim-plug files, if not previously
|
|
||||||
installed. All configurations related to plugins goes into this file also, so if
|
|
||||||
I want a plugin-free install, I can ignore this file and still run fine.
|
|
||||||
|
|
||||||
### Tmux
|
|
||||||
My tmux configuration is very straight forward and fully commented. Of note, I
|
|
||||||
enable mouse mode, have custom colors, and have a custom clock script for the
|
|
||||||
status bar (`clocks.sh`).
|
|
||||||
|
|
||||||
### Git
|
|
||||||
My git configuration is a skeleton `gitconfig` file, and an always-growing
|
|
||||||
`gitignore` file.
|
|
||||||
|
|
||||||
### Bash
|
|
||||||
My `bashrc` includes a custom prompt, several PATH additions, and
|
|
||||||
several custom functions.
|
|
||||||
|
|
||||||
The `bashrc-remote` file I use for any remote environments I'm in. The prompt is
|
|
||||||
different, and some of the functions aren't included.
|
|
||||||
|
|
||||||
## To-Do
|
|
||||||
* [ ] Improve makefile
|
|
||||||
|
|
||||||
## License
|
|
||||||
All files are licensed under the [WTFPL](http://www.wtfpl.net/), the full
|
|
||||||
license text of which can be found below.
|
|
||||||
|
|
||||||
> **DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE**
|
|
||||||
>
|
|
||||||
> _Version 2, December 2004_ ||
|
|
||||||
> _Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>_
|
|
||||||
>
|
|
||||||
> Everyone is permitted to copy and distribute verbatim or modified
|
|
||||||
> copies of this license document, and changing it is allowed as long
|
|
||||||
> as the name is changed.
|
|
||||||
>
|
|
||||||
> DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
||||||
> TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
>
|
|
||||||
> 0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
||||||
|
|
17
git/config
Normal file
17
git/config
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#==========================#
|
||||||
|
# Global Git Configuration #
|
||||||
|
#==========================#
|
||||||
|
[config]
|
||||||
|
relativePaths=false # Show relative paths with status outputs
|
||||||
|
[init]
|
||||||
|
defaultBranch=main # Default branch is 'main' not 'master'
|
||||||
|
[diff]
|
||||||
|
algorithm=histogram # Better-sorted output of diffs
|
||||||
|
[merge]
|
||||||
|
conflictstyle=diff3 # Use the diff3 merge output
|
||||||
|
[user] # Default credentials:
|
||||||
|
name="Bill Niblock" # My name
|
||||||
|
email="bill@theinternetvagabond.com" # My email address
|
||||||
|
[includeIf "gitdir:~/Code/nibtech/"] # Over-ride with NibTech credentials
|
||||||
|
path="~/.config/git/nibtech.conf" # Path to NibTech config file
|
||||||
|
# another thing!
|
|
@ -1,12 +0,0 @@
|
||||||
#============================#
|
|
||||||
# gitconfig file for niblock #
|
|
||||||
#============================#
|
|
||||||
|
|
||||||
# General Settings:
|
|
||||||
# Show me absolute paths, not relative paths
|
|
||||||
# Link to a global excludes file
|
|
||||||
[status]
|
|
||||||
relativePaths = false
|
|
||||||
|
|
||||||
[core]
|
|
||||||
excludesFile = ~/.gitignore
|
|
|
@ -1,40 +0,0 @@
|
||||||
# Global gitignore file
|
|
||||||
# Stolen from octocat: https://gist.github.com/octocat/9257657
|
|
||||||
|
|
||||||
# Compiled source #
|
|
||||||
*.com
|
|
||||||
*.class
|
|
||||||
*.dll
|
|
||||||
*.exe
|
|
||||||
*.o
|
|
||||||
*.so
|
|
||||||
|
|
||||||
# Packages #
|
|
||||||
*.7z
|
|
||||||
*.dmg
|
|
||||||
*.gz
|
|
||||||
*.iso
|
|
||||||
*.jar
|
|
||||||
*.rar
|
|
||||||
*.tar
|
|
||||||
*.zip
|
|
||||||
|
|
||||||
# Logs and databases #
|
|
||||||
*.log
|
|
||||||
*.sql
|
|
||||||
*.sqlite
|
|
||||||
|
|
||||||
# OS generated files #
|
|
||||||
.DS_Store
|
|
||||||
.DS_Store?
|
|
||||||
._*
|
|
||||||
.Spotlight-V100
|
|
||||||
.Trashes
|
|
||||||
ehthumbs.db
|
|
||||||
Thumbs.db
|
|
||||||
|
|
||||||
# Vim Related #
|
|
||||||
*.swp
|
|
||||||
.netrwhist
|
|
||||||
*.un~
|
|
||||||
tags
|
|
7
git/nibtech.conf
Normal file
7
git/nibtech.conf
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#===========================#
|
||||||
|
# NibTech Git Configuration #
|
||||||
|
#===========================#
|
||||||
|
[user] # NibTech Credentials:
|
||||||
|
name="Bill Niblock" # My name
|
||||||
|
email="bill@niblock.tech" # My email address
|
||||||
|
|
116
makefile
116
makefile
|
@ -1,98 +1,22 @@
|
||||||
#===============================================================================
|
#=====================================================#
|
||||||
# Makefile for niblock dotfiles || $ make for options
|
# Makefile for niblock dotfiles || $ make for options #
|
||||||
#===============================================================================
|
#=====================================================#
|
||||||
.PHONY: help \
|
help: ## Default target; shows options
|
||||||
link-dotfiles \
|
echo "update-system: Update system from repository."
|
||||||
build-default \
|
echo " update-repo: Update repository from system."
|
||||||
build-simple \
|
|
||||||
clean-all \
|
|
||||||
install-vim-config \
|
|
||||||
install-vim-plugins \
|
|
||||||
install-git \
|
|
||||||
install-tmux \
|
|
||||||
install-bash-config \
|
|
||||||
install-bash-profile \
|
|
||||||
|
|
||||||
.DEFAULT-GOAL := help
|
update-system: ## Update system from repository
|
||||||
#===============================================================================
|
@cp -rut "$(HOME)"/.config "$(CURDIR)"/alacritty/
|
||||||
# Utility
|
@cp -rut "$(HOME)"/.config "$(CURDIR)"/git/
|
||||||
#===============================================================================
|
@cp -rut "$(HOME)"/.config "$(CURDIR)"/nvim/
|
||||||
help: ## Display this menu
|
@cp -rut "$(HOME)"/.config "$(CURDIR)"/tmux/
|
||||||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
|
@cp -rut "$(HOME)"/.config "$(CURDIR)"/vim/
|
||||||
awk 'BEGIN {FS = ":.*?## "}; {printf "%-25s %s\n", $$1, $$2}'
|
@cp -u "$(CURDIR)"/bash/rc "$(HOME)"/.bashrc
|
||||||
|
|
||||||
link-dotfiles: ## Create dotfiles link in Home directory
|
update-repo: ## Update repository from system
|
||||||
ln -s -- "$(CURDIR)" "$(HOME)"/.dotfiles
|
@cp -rut "$(CURDIR)" "$(HOME)"/.config/alacritty/
|
||||||
#===============================================================================
|
@cp -rut "$(CURDIR)" "$(HOME)"/.config/git/
|
||||||
# Bundles
|
@cp -rut "$(CURDIR)" "$(HOME)"/.config/nvim/
|
||||||
#===============================================================================
|
@cp -rut "$(CURDIR)" "$(HOME)"/.config/tmux/
|
||||||
build-default: ## Create default environment, using all dotfiles
|
@cp -rut "$(CURDIR)" "$(HOME)"/.config/vim/
|
||||||
build-default: link-dotfiles \
|
@cp -u "$(HOME)"/.bashrc "$(CURDIR)"/bash/rc
|
||||||
install-vim-config \
|
|
||||||
install-vim-plugins \
|
|
||||||
install-git \
|
|
||||||
install-tmux \
|
|
||||||
install-bash-config
|
|
||||||
|
|
||||||
build-simple: ## Create minimal environment, for remote or single-use
|
|
||||||
build-simple: install-vim-config \
|
|
||||||
install-bash-remote
|
|
||||||
|
|
||||||
clean-all: ## Remove all dotfiles linked via this makefile
|
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
# Dotfiles
|
|
||||||
#===============================================================================
|
|
||||||
install-vim-config: ## Create vimrc file and vim directory in Home directory
|
|
||||||
@if [ -L "$(HOME)"/.vimrc ] ; then \
|
|
||||||
echo "File vimrc already linked; skipping." ; \
|
|
||||||
else \
|
|
||||||
echo "Linking vimrc to ~/.vimrc" ; \
|
|
||||||
ln -s -- "$(CURDIR)"/vim/vimrc "$(HOME)"/.vimrc ; \
|
|
||||||
fi
|
|
||||||
@if [ ! -d "$(HOME)"/.vim ] ; then \
|
|
||||||
mkdir "$(HOME)"/.vim ; \
|
|
||||||
fi
|
|
||||||
@echo "Copying Vim directory into ~/.vim"
|
|
||||||
@cp -uir -- "$(CURDIR)"/vim/vim/* "$(HOME)"/.vim/
|
|
||||||
|
|
||||||
install-vim-plugins: ## Install configure Vim plugin submodules
|
|
||||||
install-vim-plugins: install-vim-config
|
|
||||||
@echo "Updating all submodules"
|
|
||||||
@git submodule foreach git pull origin master
|
|
||||||
@echo "Updating Vim helptags"
|
|
||||||
@vim -u NONE -c "helptags ALL" -c q
|
|
||||||
|
|
||||||
install-git: ## Create git config and ignore files in Home directory
|
|
||||||
@cp -i -- "$(CURDIR)"/git/gitconfig "$(HOME)"/.gitconfig
|
|
||||||
@if [ -L "$(HOME)"/.gitignore ] ; then \
|
|
||||||
echo "File gitignore already linked; skipping." ; \
|
|
||||||
else \
|
|
||||||
echo "Linking gitignore to ~/.gitignore" ; \
|
|
||||||
ln -s -- "$(CURDIR)"/git/gitignore "$(HOME)"/.gitignore ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
install-tmux: ## Create tmux config file in Home directory
|
|
||||||
install-tmux: link-dotfiles
|
|
||||||
@if [ -L "$(HOME)"/.tmux.conf ] ; then \
|
|
||||||
echo "File tmux.conf already linked; skipping." ; \
|
|
||||||
else \
|
|
||||||
echo "Linking tmux.conf to ~/.tmux.conf" ; \
|
|
||||||
ln -s -- "$(CURDIR)"/tmux/tmux.conf "$(HOME)"/.tmux.conf ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
install-bash-config: ## Create bash config file in Home directory
|
|
||||||
@if [ -L "$(HOME)"/.bashrc ] ; then \
|
|
||||||
echo "File .bashrc already linked; skipping." ; \
|
|
||||||
else \
|
|
||||||
echo "Linking bashrc to ~/.bashrc" ; \
|
|
||||||
ln -s -- "$(CURDIR)"/bash/bashrc "$(HOME)"/.bashrc ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
install-bash-remote: ## Create remote bash config file in Home directory
|
|
||||||
@if [ -L "$(HOME)"/.bashrc ] ; then \
|
|
||||||
echo "File .bashrc already linked; skipping." ; \
|
|
||||||
else \
|
|
||||||
echo "Linking bashrc-remote to ~/.bashrc" ; \
|
|
||||||
ln -s -- "$(CURDIR)"/bash/bashrc-remote "$(HOME)"/.bashrc ; \
|
|
||||||
fi
|
|
||||||
|
|
Loading…
Reference in a new issue