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
This commit is contained in:
parent
a7c72adb2e
commit
6b456c1b7a
551 changed files with 88587 additions and 1392 deletions
177
README.md
177
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
|
||||
## Terminals and Fonts
|
||||
|
||||
```bash
|
||||
$ git config --global user.signingkey <SIGNING_KEY>
|
||||
$ 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.
|
||||
|
||||
### 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 `<CAPS_LOCK>` key to `<ESC>`
|
||||
* 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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue