Skip to content

NiceGuyIT/dotfiles

Repository files navigation

dotfiles (a.k.a. profile)

This is the dotfiles I use as my profile on the desktop, server (both openSUSE Leap), and laptop (macOS).

Need more inspiration? Check out Awesome dotfiles, dotfiles and the dotfiles topic on GitHub.

Install

chezmoi manages this repository. Installation of single binary files, a.k.a. packages, is done by get-packages in the justfile repository. Follow the installation instructions in the justfile repo.

TODO

The vim plugins are not pulled automatically. They are submodules in vim/pack/plugins/start/. Need to add these to chezmoi.

Useful utilities

  • Vim-Go
  • Awesome Alternatives in Rust (Originally Awesome Rewrite It In Rust)
    • dog - A command-line DNS client.
    • fd = A simple, fast and user-friendly alternative to 'find'
    • starship - The minimal, blazing-fast, and infinitely customizable prompt for any shell!
    • xh - friendly and fast tool for sending HTTP requests
  • uutils coreutils - Cross-platform Rust rewrite of the GNU coreutils
  • dua-cli - View disk space usage and delete unwanted data, fast.
  • Awesome Rust
    • ripgrep - combines the usability of The Silver Searcher with the raw speed of grep
    • alacritty - A cross-platform, GPU enhanced terminal emulator
  • Awesome Go
    • fzf - A command-line fuzzy finder
    • gojq - JSON query in Golang
    • gdu - Fast disk usage analyzer with console interface written in Go
  • cfssl - Cloudflare's PKI and TLS toolkit
  • dnslookup - Simple command line utility to make DNS lookups. Supports all known DNS protocols: plain DNS, DoH, DoT, DoQ, DNSCrypt.

Caveat

Things may be broken as I move from a private repo with another name.

Useful commands

.env

Export all variables in .env into the current environment. Unfortunately, this has problems when the values have spaces.

export $(grep -vE "^(#.*|\s*)$" .env)

Instead, use 'set -a' or 'set -o allexport': https://stackoverflow.com/a/30969768. See man set for details. See also load_dotenv.sh gist.

set -a
source .env
set +a

# Alternatively, use the 'allexport' option
set -o allexport
source .env
set +o allexport

Certs

Check a PEM certificate for expiration. The server cert is the first cert in the PEM file with the intermediary and root certs afterwards.

sed -e '/^-----END CERTIFICATE-----$/q' /etc/letsencrypt/live/example.com/fullchain.pem | \
    cfssl-certinfo -cert - | \
    gojq '{subject: .subject, sans: .sans, expired: .not_after}'