From 6b456c1b7a4f6899f063a6e65355af51901d9c7a Mon Sep 17 00:00:00 2001 From: William Carroll Date: Wed, 9 Oct 2019 12:13:56 +0100 Subject: Massive configuration overhaul Currently paying the price of months of non-diligent git usage. Here's what has changed. - Theming support in Gvcci and wpgtk - Dropping support for i3 - Supporting EXWM - Many Elisp modules - Collapsed redundant directories in ./configs --- README.md | 177 +++++++++++++++++++++++++++++--------------------------------- 1 file changed, 84 insertions(+), 93 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 9776fc8b6af8..02215ff7a8d4 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,52 @@ other items. Configuration is everything. +# Installation -# Setting up new computer +## wpgtk and gvcci + +```bash +$ apti python-pip3 +$ gclone deviantfero/wpgtk +$ cd .. +$ gclone FabriceCastel/gvcci +``` + +- TODO: Ensure edits to `i3.base` work as expected. +- 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 @@ -20,7 +64,7 @@ $ pgrep dropbox # 2/3 verify installation $ dropbox.py status # 3/3 verify installation ``` -1. Authorize computer to access dotfiles +1. Authorize computer to access GitHub ```bash $ ssh-keygen -t rsa -b 4096 -C 'wpcarro@gmail.com' @@ -28,46 +72,19 @@ $ 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 -$ mkdir ~/programming -$ git clone git@github.com:wpcarro/dotfiles ~/Dropbox/dotfiles ``` -1. Install Antigen, Vundle, nix-env for package management +1. Install Antigen, Vundle, nix-env ```bash -$ # antigen -$ curl -L git.io/antigen >~/antigen.zsh -$ # vundle -$ g clone VundleVim/Vundle.vim ~/.config/nvim/bundle/Vundle.vim -$ # nix-env -$ curl https://nixos.org/nix/install | sh +$ ln -s ~/Dropbox/antigen.zsh ~/antigen.zsh +$ 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 shared executables - -Some files should be kept out of this repository. Things that come to mind -include secrets (e.g. `monzo_creds.json.gpg`) and binaries. - -Secrets should be kept out of this repository in case. It might be okay to -include them herein since they should be encrypted. But just to add an -additional layer of security, I avoid adding them. - -Executables are kept out of version control since they can be quite large. For -example, my `/usr/bin` is `8.9G` at the time of this writing. Also it can be -noisy to see diffs of binaries after upgrading programs. - -While sharing binaries across systems feels brittle, everything should function -as long as the machines across which the binaries are shared run Linux and have -i386 architectures. - -```bash -$ ln -s ~/Dropbox/bin ~/bin -``` - - 1. Install i3 ```bash @@ -76,18 +93,39 @@ $ sudo apt-get install i3 1. Install dotfiles -TODO: include steps 2-4 in the `make install` command. +- 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 -# TODOS +For now, this deserves its own section since it isn't automated. -- support dependencies like terminal themes +```zsh +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 @@ -122,16 +160,16 @@ manually SSH into that machine. # GnuPG -Entering a new system? +To install GPG run the following: ```bash -$ ./configs/shared/gpg/.gnupg/import.sh path/to/directory +$ import_gpg ``` -Leaving an old system? TODO: create a job that runs this periodically. +TODO: create a job that runs this periodically. ```bash -$ ./configs/shared/gpg/.gnupg/export.sh [directory] +$ export_gpg ``` ## Reference @@ -141,66 +179,19 @@ $ ./configs/shared/gpg/.gnupg/export.sh [directory] - ssb: secret sub-key - sub: public sub-key -## GnuPG + Git - - 1. Register newly created `[S]` signing subkey as `signingkey` - 1. Enforce commit-signing - 1. Opt into `gpg2` usage - -```bash -$ git config --global user.signingkey -$ git config --global commit.gpgsign true -$ git config --global gpg.program gpg2 -``` - -## GnuPG + GPG-Agent - -Setup `gpg-agent` to use password caching by adding the following entries to -`~/.gnupg/gpg-agent.conf` (already done in this repository): - -``` -default-cache-ttl 300 max-cache-ttl 3600 -``` - - -## True Color and Italics -At the time of this writing, Suckless's `st` terminal provides True Color and -italics support. It's also important to test that this support remains when -inside of Vim or inside of a Tmux session or both. +## Terminals and Fonts -### TrueColor - -To test for your terminal's True Color support, run: +Any terminal or font I choose should pass the following checks: ```bash $ test_true_color -``` - -Enable TrueColor in your `init.vim` (already done in this repository): - -```viml -set termguicolors -``` - -### Italics - -To test if your terminal supports italics and other text treatments, run: - -```bash +$ test_16_colors $ test_text_formatting +$ test_unicode +$ test_emojis ``` ### Ligatures -At the time of this writing, Suckless's `st` does not appear to support -ligatures. - - -## Miscellaneous notes -* Executables are shared at `~/Dropbox/bin` and not kept within this repository - to avoid the bloat. -* Map `` key to `` -* Increase key-repeat rate -* Decrease key-repeat-delay -* Increase mouse speed +If using a font with ligature (e.g. Hasklig) assert that your terminal also support ligatures. -- cgit 1.4.1