2018-04-23 21:20:26 +02:00
|
|
|
# dotfiles
|
2017-01-18 00:00:05 +01:00
|
|
|
|
2020-01-29 15:43:20 +01:00
|
|
|
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.
|
2016-12-17 23:45:50 +01:00
|
|
|
|
2020-01-29 15:43:20 +01:00
|
|
|
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.
|
|
|
|
|
|
|
|
My configuration also lives inside of my mono-repo. Things like Emacs, Tmux,
|
|
|
|
SSH, and other tools are configured herein.
|
2017-07-30 04:27:36 +02:00
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
# Installation
|
2017-07-30 04:27:36 +02:00
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
## 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.
|
|
|
|
```
|
2019-03-07 15:06:02 +01:00
|
|
|
|
2019-03-17 00:58:41 +01:00
|
|
|
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
|
|
|
|
```
|
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
1. Authorize computer to access GitHub
|
2019-03-07 15:06:02 +01:00
|
|
|
|
|
|
|
```bash
|
2019-03-07 17:45:30 +01:00
|
|
|
$ ssh-keygen -t rsa -b 4096 -C 'wpcarro@gmail.com'
|
|
|
|
$ eval $(ssh-agent -s)
|
|
|
|
$ ssh-add ~/.ssh/id_rsa
|
2019-03-07 15:06:02 +01:00
|
|
|
$ xclip -sel clip <~/.ssh/id_rsa.pub
|
|
|
|
$ browse github.com # paste ssh public key in settings
|
|
|
|
```
|
|
|
|
|
2020-01-29 13:48:23 +01:00
|
|
|
1. Install Vundle, nix-env
|
2019-03-07 15:06:02 +01:00
|
|
|
|
|
|
|
```bash
|
2019-10-09 13:13:56 +02:00
|
|
|
$ ln -s ~/Dropbox/Vundle.vim ~/.config/nvim/bundle/Vundle.vim
|
|
|
|
$ cat ~/Dropbox/install_nix.sh | sh
|
2019-03-07 15:06:02 +01:00
|
|
|
$ for p in $(cat nix-env.txt); do
|
|
|
|
> nix-env -i "$p"
|
|
|
|
> done
|
|
|
|
```
|
|
|
|
|
2019-03-17 00:58:41 +01:00
|
|
|
1. Install dotfiles
|
2019-03-07 15:06:02 +01:00
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
- 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`
|
2019-03-07 15:06:02 +01:00
|
|
|
|
|
|
|
```bash
|
2019-03-17 00:58:41 +01:00
|
|
|
$ cd ~/Dropbox/dotfiles
|
2019-03-07 15:06:02 +01:00
|
|
|
$ DOTFILES="$(pwd)" make install
|
|
|
|
```
|
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
1. Install Node dependencies
|
2019-03-07 15:06:02 +01:00
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
For now, this deserves its own section since it isn't automated.
|
2019-03-07 15:06:02 +01:00
|
|
|
|
2020-01-29 13:48:23 +01:00
|
|
|
```bash
|
|
|
|
$ gclone tj/n # clone repo
|
|
|
|
$ sudo make install # build from source
|
|
|
|
$ n stable # install the stable version of node
|
2019-10-09 13:13:56 +02:00
|
|
|
```
|
2019-03-07 15:06:02 +01:00
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
- TODO: support dependencies like terminal themes
|
2019-03-07 15:06:02 +01:00
|
|
|
|
2019-02-27 18:18:54 +01:00
|
|
|
# SSHFS
|
2017-07-30 18:13:42 +02:00
|
|
|
|
2019-03-11 19:00:03 +01:00
|
|
|
TODO: add explanation about `unison`, `rsync`, etc.
|
|
|
|
|
2018-04-23 20:55:33 +02:00
|
|
|
SSHFS enables seamless file transfers from your local machine to a remote
|
|
|
|
machine.
|
2017-07-30 18:13:42 +02:00
|
|
|
|
2019-03-11 19:00:03 +01:00
|
|
|
## Usage
|
2017-07-30 18:13:42 +02:00
|
|
|
|
2018-04-23 20:55:33 +02:00
|
|
|
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:
|
2017-07-30 18:13:42 +02:00
|
|
|
|
|
|
|
```bash
|
|
|
|
$ mkdir ~/ec2
|
|
|
|
$ sshfs ec2:/home/ubuntu ~/ec2 -o reconnect,follow_symlinks
|
|
|
|
```
|
|
|
|
|
2018-04-23 20:55:33 +02:00
|
|
|
Now your remote machine's home directory can be accessed using the `~/ec2`
|
2019-03-11 19:00:03 +01:00
|
|
|
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.
|
2017-07-30 18:13:42 +02:00
|
|
|
|
|
|
|
```bash
|
|
|
|
$ git clone https://github.com/VundleVim/Vundle.vim.git ~/ec2/.vim/bundle/Vundle.vim
|
|
|
|
```
|
|
|
|
|
2019-03-11 19:00:03 +01:00
|
|
|
Voila! We now have `Vundle` installed on our ec2 instance without needing to
|
|
|
|
manually SSH into that machine.
|
2017-07-30 18:13:42 +02:00
|
|
|
|
|
|
|
|
2017-06-20 13:46:58 +02:00
|
|
|
# GnuPG
|
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
To install GPG run the following:
|
2017-06-20 13:46:58 +02:00
|
|
|
|
2019-03-11 19:00:03 +01:00
|
|
|
```bash
|
2019-10-09 13:13:56 +02:00
|
|
|
$ import_gpg
|
2019-03-11 19:00:03 +01:00
|
|
|
```
|
2017-06-20 13:46:58 +02:00
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
TODO: create a job that runs this periodically.
|
2017-06-20 13:46:58 +02:00
|
|
|
|
2019-03-11 19:00:03 +01:00
|
|
|
```bash
|
2019-10-09 13:13:56 +02:00
|
|
|
$ export_gpg
|
2018-04-23 23:24:01 +02:00
|
|
|
```
|
2019-03-11 19:00:03 +01:00
|
|
|
|
|
|
|
## Reference
|
|
|
|
|
|
|
|
- sec: secret key
|
|
|
|
- pub: public key
|
|
|
|
- ssb: secret sub-key
|
|
|
|
- sub: public sub-key
|
2017-06-20 13:46:58 +02:00
|
|
|
|
2016-12-16 19:26:10 +01:00
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
## Terminals and Fonts
|
2017-01-04 06:02:53 +01:00
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
Any terminal or font I choose should pass the following checks:
|
2017-01-04 06:10:33 +01:00
|
|
|
|
|
|
|
```bash
|
2019-03-18 15:51:05 +01:00
|
|
|
$ test_true_color
|
2019-10-09 13:13:56 +02:00
|
|
|
$ test_16_colors
|
2019-03-18 15:51:05 +01:00
|
|
|
$ test_text_formatting
|
2019-10-09 13:13:56 +02:00
|
|
|
$ test_unicode
|
|
|
|
$ test_emojis
|
2017-09-15 17:50:14 +02:00
|
|
|
```
|
|
|
|
|
2019-03-18 15:51:05 +01:00
|
|
|
### Ligatures
|
2017-09-15 17:50:14 +02:00
|
|
|
|
2019-10-09 13:13:56 +02:00
|
|
|
If using a font with ligature (e.g. Hasklig) assert that your terminal also support ligatures.
|