Skip to content

yuhonas/dotfiles

Repository files navigation

My Dotfiles ci

Screenshot

My overbaked, labour of love dotfiles for both osx / archlinux, mostly everything I need to bootstrap a machine into a productive state

What's in it?

Shell, terminal & prompt

  • atuin — syncable, searchable shell history
  • ghostty — gpu-accelerated terminal
  • kitty — hackable, scriptable terminal emulator
  • oh my zsh — zsh framework and plugins
  • starship — fast, cross-shell prompt
  • tmux — terminal multiplexer
  • tmux-plugin-manager (tpm) — plugin manager for tmux; installs configured plugins
  • zellij — terminal workspace / tmux alternative
  • zsh — default interactive shell

CLI essentials & "modern **nix" tools

  • bash — up-to-date bash shell
  • bat — syntax-highlighting cat replacement
  • coreutils — gnu core utilities
  • diffutils — gnu diff with color support
  • dua-cli — disk usage analyzer (ncdu alternative)
  • eza — modern ls replacement
  • fd — user-friendly find replacement
  • fzf — fuzzy finder for files, history, and more
  • gawk — gnu awk
  • git — version control
  • glow — terminal markdown viewer
  • ispell — spell checker
  • less — pager
  • lesspipe — preprocessors for less on many file types
  • lsdls replacement with icons
  • readline — line-editing library
  • ripgrep — fast recursive grep
  • rsync — up-to-date file sync utility
  • tealdeer — fast tldr community man-page summaries
  • the silver searcher — code search (ag)
  • thefuck — suggests fixes after mistyped commands
  • wget — non-interactive http downloads
  • zoxide — smart directory jumping (z)

Editors, notes & docs

Developer tooling & runtimes

  • awscli — aws api command-line interface
  • bruno — open-source api client (collections on disk)
  • btop — resource monitor in the terminal
  • ctags — tag indexes for source navigation
  • entr — run commands when files change
  • gh — github cli
  • ghq — clone and organize remote repos locally
  • git-delta — syntax-highlighted git diffs and pagers
  • gnupg — encryption and signing
  • just — command runner / makefile alternative
  • lazygit — terminal ui for git
  • mise — polyglot runtime and tool version manager
  • nmap — network discovery and port scanning
  • orbstack — fast docker and linux vms
  • pgcli — postgres repl with autocomplete
  • pnpm — fast node package manager
  • postico — postgres gui client
  • redis — in-memory data store for local development
  • ruby-build — ruby version definitions for mise
  • sqlite — embedded sql database
  • uv — fast python package installer

Data, logs, json & downloads

  • aria2 — lightweight multi-protocol downloader
  • borgbackup — deduplicating encrypted backups
  • fx — interactive json explorer
  • gemini-cli — gemini ai from the terminal
  • grex — generate regexes from example strings
  • imagemagick — image manipulation (e.g. pywal)
  • jdupes — fast duplicate file finder
  • jq — json processor for the shell
  • lnav — log file viewer with sql and highlights
  • md5deep — hashing and auditing file trees
  • p7zip — 7zip archiver
  • poppler — pdf utilities (used by lesspipe)
  • pv — pipe viewer (throughput and progress)
  • w3m — text-mode web browser
  • xh — httpie-style curl alternative

Python packages

  • csvkit — cli tools for working with csv files
  • osx-colors — change system accent and highlight colors from the cli
  • posting — terminal http/api client
  • python-dotenv — load .env files into the environment
  • pywal16 — generate color schemes from wallpapers

Node packages

  • socket — cli for safer dependency auditing

Web browsers & privacy

Productivity & utilities

  • 1password — password and secrets manager
  • caffeine — prevent display sleep during long tasks
  • defaultkeybinding.dict — custom emacs-style key bindings in cocoa text fields
  • dockutil — manage dock items from the cli
  • google drive — cloud file sync client
  • karabiner-elements — keyboard remapping and complex modifications
  • raycast — launcher / spotlight replacement
  • rectangle — keyboard-driven window snapping
  • switchaudio-osx — switch audio input/output from the cli
  • uninstallpkg — inspect and remove installer packages
  • zappy — screenshot and screen recording tool

media

  • spotify — music streaming
  • vlc — media player

Fonts

  • fira code — monospaced font with ligatures
  • hack — monospaced programming font
  • jetbrains mono — monospaced font tuned for ides

Dotfiles & configuration

  • mackup — symlink application configs into $HOME
  • osx-defaults.sh — applies system preference defaults (not a package install)

Installing

Prerequisites

  1. Xcode Command Line Tools (osx only)
  2. git
  3. Ansible
  4. Homebrew

Use the bootstrap script to install any depedencies and run the playbook

$ bash <(curl -s https://raw.githubusercontent.com/yuhonas/dotfiles/master/bootstrap.sh)

Running the tests

This repo uses molecule and docker to lint, provision and test the playbook(s)

molecule test

Generating the software summary

There is a reusable LLM prompt summarize_playbooks.md that will generate & categorize the software being installed from the ansible playbooks and insert it into this README

Trying it out with Docker

Every test run molecule generates a minimal docker base image which is then published & can be found under releases

See also

About

My labour of love dotfiles, mostly everything I need to bootstrap a machine into a productive state

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors