diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 194 |
1 files changed, 187 insertions, 7 deletions
diff --git a/README.md b/README.md index 4fa248554751..8fc59767c3cc 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,189 @@ -# Universe +# dotfiles -This is my mono-repo. Having a personal mono-repo is a new idea for me, so at -the time of this writing, the state of this repository is fledgling. +I'm documenting this primarily for personal use. This repository contains shell +configs, vim configs, emacs configs, a list of commonly used applications, and +other items. -I'm attempting to amass a collection of functions across a variety of languages -while minimizing the costs of sharing the code across a projects. Stay tuned for -more updates as my definition of the mono-repo becomes more clear, my opinions -evolve, and my preferences change. +Configuration is everything. + +# Installation + +## wpgtk and gvcci + +```bash +$ apti python-pip3 +$ gclone deviantfero/wpgtk +$ cd .. +$ gclone FabriceCastel/gvcci +``` + +- TODO: Integrate Emacs themes into wpgtk. +- TODO: Integrate Vim themes into wpgtk. +- TODO: add these to the install script + +```bash +$ ln -s ~/Dropbox/.password-store ~/.password-store +$ ln -s ~/Dropbox/bin ~/bin +$ import_gpg $DOTFILES/configs/shared/gpg/.gnupg/exported +``` + +1. Clipmenu + +Clipmenu is a service to store a history of copied strings. + +Install it as: +```bash +$ cd ~/programming && g clone cdown/clipmenu +``` + +- TODO: Include `~/.config/systemd/user` in `configs/shared`. +- TODO: Obviate installation. + +Ensure that it runs on startup: +```bash +$ cd ~/programming/clipmenu +$ cp clipmenu clipmenud clipdel ~/bin # You may not need to do this step. +$ vim init/clipmenud.service +# Change the ExecStart line to point to ~/bin/clipmenud +$ cp init/clipmenud.service ~/.config/systemd/user/clipmenud.service +$ systemctl --user start clipmenud +$ systemctl --user enable clipmenud # This step may be optional. +$ reboot +$ systemctl --user status clipmenud # Verify installation worked. +``` + +1. Install Dropbox + +```bash +$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf - +$ crontab -e # add the following line... +@reboot ~/.dropbox-dist/dropboxd 2>&1 >/tmp/dropbox.log +$ reboot # 1/3 verify installation +$ pgrep dropbox # 2/3 verify installation +$ dropbox.py status # 3/3 verify installation +``` + +1. Authorize computer to access GitHub + +```bash +$ ssh-keygen -t rsa -b 4096 -C 'wpcarro@gmail.com' +$ eval $(ssh-agent -s) +$ ssh-add ~/.ssh/id_rsa +$ xclip -sel clip <~/.ssh/id_rsa.pub +$ browse github.com # paste ssh public key in settings +``` + +1. Install Vundle, nix-env + +```bash +$ ln -s ~/Dropbox/Vundle.vim ~/.config/nvim/bundle/Vundle.vim +$ cat ~/Dropbox/install_nix.sh | sh +$ for p in $(cat nix-env.txt); do +> nix-env -i "$p" +> done +``` + +1. Install dotfiles + +- TODO: include steps 2-4 in the `make install` command. + +Missing the following dependencies: + +- `stow` +- `neovim` +- `bat` +- `exa` +- `fasd` +- `opam` +- `ghcup` +- `ripgrep` +- `fzf` +- `fd` +- `hub` +- `pass` + +```bash +$ cd ~/Dropbox/dotfiles +$ DOTFILES="$(pwd)" make install +``` + +1. Install Node dependencies + +For now, this deserves its own section since it isn't automated. + +```bash +$ gclone tj/n # clone repo +$ sudo make install # build from source +$ n stable # install the stable version of node +``` + +- TODO: support dependencies like terminal themes + +# SSHFS + +TODO: add explanation about `unison`, `rsync`, etc. + +SSHFS enables seamless file transfers from your local machine to a remote +machine. + +## Usage + +Assuming your remote machine is configured in your `~/.ssh/config` (see above), +you can mount your remote machine's home directory on your local machine like +so: + +```bash +$ mkdir ~/ec2 +$ sshfs ec2:/home/ubuntu ~/ec2 -o reconnect,follow_symlinks +``` + +Now your remote machine's home directory can be accessed using the `~/ec2` +directory. This directory can be treated as if it were an ordinary local +directory. To illustrate how easy it is to use, let's install `Vundle` onto our +remote machine. + +```bash +$ git clone https://github.com/VundleVim/Vundle.vim.git ~/ec2/.vim/bundle/Vundle.vim +``` + +Voila! We now have `Vundle` installed on our ec2 instance without needing to +manually SSH into that machine. + + +# GnuPG + +To install GPG run the following: + +```bash +$ import_gpg +``` + +TODO: create a job that runs this periodically. + +```bash +$ export_gpg +``` + +## Reference + + - sec: secret key + - pub: public key + - ssb: secret sub-key + - sub: public sub-key + + +## Terminals and Fonts + +Any terminal or font I choose should pass the following checks: + +```bash +$ test_true_color +$ test_16_colors +$ test_text_formatting +$ test_unicode +$ test_emojis +``` + +### Ligatures + +If using a font with ligature (e.g. Hasklig) assert that your terminal also support ligatures. |