Use GNU Stow instead of bash scripts
This commit is contained in:
parent
a7a537b8e1
commit
e0caac3082
29 changed files with 73 additions and 248 deletions
58
Makefile
Normal file
58
Makefile
Normal file
|
@ -0,0 +1,58 @@
|
|||
.PHONY: help git lftp npm nvim ssh sway urxvt zsh clean
|
||||
|
||||
.DEFAULT: help
|
||||
|
||||
help:
|
||||
@echo "all # Sets up everything"
|
||||
@echo "git # Sets up default git config"
|
||||
@echo "lftp # Set up lftp"
|
||||
@echo "npm # Set up npm"
|
||||
@echo "nvim # Sets up neovim"
|
||||
@echo "ssh # Set up ssh"
|
||||
@echo "sway # Set up sway"
|
||||
@echo "urxvt # Set up urxvt"
|
||||
@echo "zsh # Set up zsh"
|
||||
@echo "clean # deletes absolutely everything"
|
||||
@echo ""
|
||||
@echo " mostly, i'm just lazy"
|
||||
|
||||
all: git lftp npm nvim ssh sway urxvt zsh
|
||||
|
||||
git:
|
||||
@stow -t ~/ git
|
||||
|
||||
lftp:
|
||||
@stow -t ~/ lftp
|
||||
|
||||
npm:
|
||||
@mkdir -p ~/.cache/npm ~/.local/share/npm
|
||||
@stow -t ~/ npm
|
||||
|
||||
nvim:
|
||||
@stow -t ~/ nvim
|
||||
curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs \
|
||||
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
@echo "Run :PlugInstall when nvim is first run!"
|
||||
|
||||
ssh:
|
||||
@stow -t ~/ ssh
|
||||
|
||||
sway:
|
||||
@stow -t ~/ sway
|
||||
|
||||
urxvt:
|
||||
@stow -t ~/ urxvt
|
||||
|
||||
zsh:
|
||||
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
|
||||
git clone https://github.com/zsh-users/zsh-completions ~/.oh-my-zsh/custom/plugins/zsh-completions
|
||||
@stow -t ~/ zsh
|
||||
|
||||
clean:
|
||||
@stow -D git lftp npm nvim ssh sway urxvt zsh
|
||||
@rm -rf ~/.config/git \
|
||||
~/.config/lftp ~/.local/share/lftp \
|
||||
~/.config/npm ~/.cache/npm ~/.local/share/npm \
|
||||
~/.config/nvim \
|
||||
~/.config/sway \
|
||||
~/.oh-my-zsh
|
5
git/.config/git/config
Normal file
5
git/.config/git/config
Normal file
|
@ -0,0 +1,5 @@
|
|||
[user]
|
||||
email = george@rawlinson.net.nz
|
||||
name = George Rawlinson
|
||||
[push]
|
||||
default = simple
|
|
@ -1,5 +0,0 @@
|
|||
# Go
|
||||
|
||||
Define $GOPATH ([source][1])
|
||||
|
||||
[1]: https://golang.org/doc/install
|
1
lftp/.local/share/lftp/bookmarks
Normal file
1
lftp/.local/share/lftp/bookmarks
Normal file
|
@ -0,0 +1 @@
|
|||
host sftp://username:password@host:port/path/to/dir
|
|
@ -1,34 +0,0 @@
|
|||
# LFTP
|
||||
|
||||
## Ease of use
|
||||
|
||||
* Added bookmark for default SFTP server.
|
||||
|
||||
## Performance
|
||||
|
||||
* Disabled cache. Force server to send up-to-date list of files.
|
||||
* Set pget chunks to 30. Aim is to completely saturate the connection.
|
||||
* Disabled logging by LFTP.
|
||||
|
||||
## Cosmetic
|
||||
|
||||
* Use colours.
|
||||
* Changed default prompt.
|
||||
|
||||
[Source][1]
|
||||
|
||||
## Connect
|
||||
|
||||
`lftp <bookmark title>`
|
||||
|
||||
Create a symlink for `.lftprc`
|
||||
|
||||
`ln -s ~/.dotfiles/lftp/lftprc ~/.lftprc`
|
||||
|
||||
Create folders for bookmarks & copy over `bookmarks`.
|
||||
|
||||
`mkdir -p ~/.lftp`
|
||||
|
||||
`cp ~/.dotfiles/lftp/bookmarks ~/.lftp/bookmarks`
|
||||
|
||||
[1]: http://lftp.yar.ru/lftp-man.html
|
|
@ -1 +0,0 @@
|
|||
host sftp://username:password@host:port/path/to/dir
|
60
link-zsh.sh
60
link-zsh.sh
|
@ -1,60 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Links all ZSH plugins from dotfiles in oh-my-zsh plugin directory
|
||||
|
||||
DOTFILES_DIR="$HOME/.dotfiles"
|
||||
ZSH_DIR="$HOME/.oh-my-zsh/custom/"
|
||||
|
||||
# Check if zsh installed & directories reachable
|
||||
if [ ! command -v zsh &> /dev/null ]; then
|
||||
echo "zsh not installed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d ${DOTFILES_DIR} ]; then
|
||||
echo "${DOTFILES_DIR} does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d ${ZSH_DIR} ]; then
|
||||
echo "${ZSH_DIR} does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Recursively find all ZSH files in ~/.dotfiles
|
||||
declare -a ZSH_FILES=(`find $DOTFILES_DIR -type f -name "*.zsh"`)
|
||||
|
||||
# Copy array
|
||||
declare -a ZSH_NAMES=("${ZSH_FILES[@]}")
|
||||
|
||||
# Remove path, we only want filenames
|
||||
ZSH_NAMES=("${ZSH_NAMES[@]/*\//}")
|
||||
|
||||
# Get number of ZSH files
|
||||
NUM_FILES=${#ZSH_FILES[@]}
|
||||
|
||||
# Check if there are actually any files to symlink
|
||||
if [ ${NUM_FILES} -lt 1 ]; then
|
||||
echo "No files found."
|
||||
exit 1
|
||||
else
|
||||
echo "${NUM_FILES} files to be symlinked."
|
||||
fi
|
||||
|
||||
# Print all files w/ symlinked path
|
||||
for (( i=0; i<${NUM_FILES}; i++ )); do
|
||||
|
||||
# Check if symlinked file exists
|
||||
if [ -f ${ZSH_DIR}${ZSH_NAMES[$i]} ]; then
|
||||
# Delete symlink
|
||||
rm -f ${ZSH_DIR}${ZSH_NAMES[$i]}
|
||||
fi
|
||||
|
||||
# Perform symlink
|
||||
echo "Symlink: ${ZSH_FILES[$i]} > ${ZSH_DIR}${ZSH_NAMES[$i]}"
|
||||
ln -s ${ZSH_FILES[$i]} ${ZSH_DIR}${ZSH_NAMES[$i]}
|
||||
done
|
||||
|
||||
# All done
|
||||
echo "Done!"
|
||||
|
||||
exit 0
|
2
npm/.config/npm/config
Normal file
2
npm/.config/npm/config
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Save exact version instead of a 'loose' version.
|
||||
save-exact=true
|
|
@ -1,15 +0,0 @@
|
|||
# NPM
|
||||
|
||||
* Install NPM packages globally without requiring sudo. ([source][1])
|
||||
* Save exact version instead of a 'loose' version. ([source][2])
|
||||
|
||||
Create directory for global packages
|
||||
|
||||
`mkdir ~/.npm-packages`
|
||||
|
||||
Copy `.npmrc`
|
||||
|
||||
`cp ~/.dotfiles/npm/npmrc ~/.npmrc`
|
||||
|
||||
[1]: https://github.com/sindresorhus/guides/blob/master/npm-global-without-sudo.md
|
||||
[2]: https://docs.npmjs.com/misc/config#save-exact
|
|
@ -1,5 +0,0 @@
|
|||
# Install NPM packages globally without requiring sudo.
|
||||
prefix=${HOME}/.npm-packages
|
||||
|
||||
# Save exact version instead of a 'loose' version.
|
||||
save-exact=true
|
|
@ -1,32 +0,0 @@
|
|||
# neovim (nvim)
|
||||
|
||||
Install [nvim][url-nvim] with [vim-plug][url-vim-plug] (plugin manager)
|
||||
|
||||
## Plugins
|
||||
|
||||
* [vim-airline][url-vim-airline]
|
||||
* [vim-airline-plugins][url-vim-airline-plugins]
|
||||
* [vim-monokai][url-vim-monokai]
|
||||
* [vim-gitgutter][url-vim-gitgutter]
|
||||
* [vim-sensible][url-vim-sensible]
|
||||
|
||||
## Installation
|
||||
|
||||
```shell
|
||||
curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs \
|
||||
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
`ln -s ~/.dotfiles/nvim/init.vim ~/.config/nvim/init.vim`
|
||||
|
||||
`nvim +PlugInstall +qall`
|
||||
|
||||
[url-nvim]:https://github.com/neovim/neovim
|
||||
[url-vim-plug]:https://github.com/junegunn/vim-plug
|
||||
[url-vim-airline]:https://github.com/vim-airline/vim-airline
|
||||
[url-vim-airline-plugins]:https://github.com/vim-airline/vim-airline
|
||||
[url-vim-monokai]:https://github.com/sickill/vim-monokai
|
||||
[url-vim-gitgutter]:https://github.com/airblade/vim-gitgutter
|
||||
[url-vim-sensible]:https://github.com/tpope/vim-sensible
|
|
@ -1,15 +0,0 @@
|
|||
# SSH
|
||||
|
||||
Create SSH directory & copy config there.
|
||||
|
||||
`mkdir -p ~/.ssh/`
|
||||
|
||||
`cp config ~/.ssh/`
|
||||
|
||||
Generate SSH key(s)
|
||||
|
||||
`ssh-keygen -t ed25519 -C "comment" -f /path/to/ssh/key`
|
||||
|
||||
## TODO
|
||||
|
||||
Update config variables with proper variables (user/port/keys)
|
|
@ -1,21 +0,0 @@
|
|||
# SWAY
|
||||
|
||||
[Sway][1] is an i3-compatible window manager for Wayland.
|
||||
Using i3status for the menu bar. Run with `sway`.
|
||||
|
||||
## Dependencies
|
||||
|
||||
* sway
|
||||
* i3status
|
||||
* ttf-font-icons
|
||||
* rxvt-unicode
|
||||
|
||||
## Setup
|
||||
|
||||
`mkdir -p ~/config/{i3status,sway}`
|
||||
|
||||
`ln -s ~/.dotfiles/sway/sway.config ~/.config/sway/config`
|
||||
|
||||
`ln -s ~/.dotfiles/sway/i3status.config ~/.config/i3status/config`
|
||||
|
||||
[1]: https://github.com/SirCmpwn/sway
|
|
@ -1,20 +0,0 @@
|
|||
# urxvt
|
||||
|
||||
a.k.a. rxvt-unicode.
|
||||
|
||||
Uses following perl extensions:
|
||||
|
||||
* Clickable URLs
|
||||
* Simple Tabbing
|
||||
|
||||
## Installation
|
||||
|
||||
Create a symlink for `.Xresources`
|
||||
|
||||
`ln -s ~/.dotfiles/urxvt/xresources ~/.Xresources`
|
||||
|
||||
## Daemon
|
||||
|
||||
[Startup][url-daemon] with `urxvtd -q -o -f`
|
||||
|
||||
[url-daemon]:https://wiki.archlinux.org/index.php/Rxvt-unicode/Tips_and_tricks#Daemon-client
|
|
@ -1,9 +0,0 @@
|
|||
# VitaSDK
|
||||
|
||||
Unofficial SDK for the PS Vita. Development moves fast, so breaks often.
|
||||
|
||||
Check [vitasdk-cmake][url-vitasdk-cmake] and
|
||||
[vitasdk][url-vitasdk] for prereqs & changes.
|
||||
|
||||
[url-vitasdk-cmake]: https://github.com/codestation/vitasdk-cmake
|
||||
[url-vitasdk]: https://github.com/vitasdk
|
|
@ -1,9 +1,13 @@
|
|||
# Install NPM packages globally without requiring sudo.
|
||||
# Source: https://github.com/sindresorhus/guides/blob/master/npm-global-without-sudo.md
|
||||
NPM_PACKAGES="${HOME}/.npm-packages"
|
||||
|
||||
PATH="$NPM_PACKAGES/bin:$PATH"
|
||||
export NPM_CONFIG_USERCONFIG=$HOME/.config/npm/config
|
||||
export NPM_CONFIG_CACHE=$HOME/.cache/npm
|
||||
export NPM_CONFIG_TMP=$XDG_RUNTIME_DIR/npm
|
||||
export NPM_CONFIG_PREFIX=$HOME/.local/share/npm
|
||||
|
||||
PATH="$NPM_CONFIG_PREFIX/bin:$PATH"
|
||||
|
||||
# Unset manpath so we can inherit from /etc/manpath via the `manpath` command
|
||||
unset MANPATH # delete if you already modified MANPATH elsewhere in your config
|
||||
export MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
|
||||
export MANPATH="$NPM_CONFIG_PREFIX/share/man:$(manpath)"
|
|
@ -1,28 +0,0 @@
|
|||
# ZSH
|
||||
|
||||
* oh-my-zsh. ([source][1])
|
||||
* zsh-completions plugin. ([source][2])
|
||||
|
||||
## Install
|
||||
|
||||
### Main package
|
||||
|
||||
`pacman -S zsh`
|
||||
|
||||
`chsh -s /bin/zsh`
|
||||
|
||||
### oh-my-zsh
|
||||
|
||||
`git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh`
|
||||
|
||||
### zsh-completions plugin
|
||||
|
||||
`git clone https://github.com/zsh-users/zsh-completions
|
||||
~/.oh-my-zsh/custom/plugins/zsh-completions`
|
||||
|
||||
## Configuration
|
||||
|
||||
`ln -s ~/.dotfiles/zsh/zshrc ~/.zshrc`
|
||||
|
||||
[1]: https://github.com/robbyrussell/oh-my-zsh
|
||||
[2]: https://github.com/zsh-users/zsh-completions
|
Loading…
Reference in a new issue