Compare commits

..

9 Commits

15 changed files with 95 additions and 100 deletions

1
.envrc Normal file
View File

@@ -0,0 +1 @@
use asdf

3
.gitignore vendored
View File

@@ -22,4 +22,7 @@ node_modules
iTermServer-*
lock
config/iterm2/AppSupport
config/gnupg/S.*
config/gnupg/s
config/gnupg/private-keys-v1.d

2
.nvmrc
View File

@@ -1 +1 @@
lts/*
22.6.0

1
base/envrc Normal file
View File

@@ -0,0 +1 @@
use asdf

View File

@@ -1,29 +1,29 @@
1password-cli 2.29.0
1password-cli 2.30.0
age 1.2.0
asdf-plugin-manager 1.3.1
bottom 0.9.7
bottom 0.10.2
direnv 2.34.0
dotenv-linter 3.3.0
editorconfig-checker 2.8.0
eza 0.18.23
eza 0.19.0
fd 10.1.0
github-cli 2.53.0
golang 1.22.5
github-cli 2.54.0
golang 1.22.6
hadolint 2.12.0
kubectl 1.30.3
lazygit 0.43.1
neovim system
nodejs 22.5.1
nodejs 22.6.0
pipx 1.6.0
pre-commit 3.7.1
pre-commit 3.8.0
ripgrep 14.1.0
rust 1.79.0
ruby 3.3.4
rust 1.80.1
semgrep system
shellcheck 0.10.0
shfmt 3.8.0
terraform-ls 0.33.3
terraform-lsp 0.0.12
terragrunt 0.64.0
terragrunt 0.66.3
tf-summarize 0.3.10
vault 1.17.2+ent
vault 1.17.3
yamllint 1.35.1
yq 4.44.2
yq 4.44.3

View File

@@ -1,6 +0,0 @@
# shellcheck shell=bash
# vim: filetype=zsh
export DOTFILES="$HOME/.dotfiles"
export PATH="$HOME/.local/bin:$DOTFILES/local/bin:$PATH"
export SHARED_SCRIPTS_SOURCED=0

View File

@@ -5,16 +5,11 @@
# export DEBUG=1
export DOTFILES="$HOME/.dotfiles"
export PATH="$HOME/.local/bin:$DOTFILES/local/bin:$HOME/.local/share/bob/nvim-bin:$HOME/.local/share/cargo/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
export SHARED_SCRIPTS_SOURCED=0
source "$DOTFILES/config/shared.sh"
x-path-prepend "/usr/local/bin"
x-path-prepend "/opt/homebrew/bin"
x-path-prepend "$HOME/.local/share/cargo/bin"
x-path-prepend "$HOME/.local/share/bob/nvim-bin"
x-path-prepend "$HOME/.local/bin"
x-path-prepend "$DOTFILES/local/bin"
eval "$(oh-my-posh init zsh --config "$DOTFILES/config/omp/own.toml")"
# Load asdf
@@ -43,19 +38,24 @@ load_antigen()
export ZSH_TMUX_AUTOQUIT=false
export ZSH_TMUX_DEFAULT_SESSION_NAME=main
zstyle :omz:plugins:ssh-agent quiet yes
zstyle :omz:plugins:ssh-agent lazy yes
# z, the zsh version
export ZSHZ_DATA="$XDG_STATE_HOME/z"
antigen bundle z
x-have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv
# these should be always available
antigen bundle gpg-agent
antigen bundle brew
antigen bundle tmux
antigen bundle colored-man-pages
antigen bundle ssh-agent
# antigen bundle ssh-agent
antigen bundle jreese/zsh-titles
antigen bundle zsh-users/zsh-completions
x-have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv
# this needs to be the last item
antigen bundle zsh-users/zsh-syntax-highlighting
@@ -108,6 +108,11 @@ initialize_antidot()
fi
}
initialize_direnv()
{
source "${XDG_CONFIG_HOME:-$HOME/.config}/asdf-direnv/zshrc"
}
main()
{
load_antigen
@@ -115,14 +120,8 @@ main()
initialize_pyenv
setup_tmux_window_name_plugin
initialize_antidot
initialize_direnv
}
main "$@"
# Herd checks for a few environment variables to inject PHP binaries and configurations.
# Herd injected PHP binary.
# export PATH="/Users/ivuorinen/Library/Application\ Support/Herd/bin/":$PATH
# Herd injected PHP 8.3 configuration.
# export HERD_PHP_83_INI_SCAN_DIR="/Users/ivuorinen/Library/Application\ Support/Herd/config/php/83/"
# Herd injected PHP 7.4 configuration.
# export HERD_PHP_74_INI_SCAN_DIR="/Users/ivuorinen/Library/Application\ Support/Herd/config/php/74/"

1
config/asdf/gem-packages Normal file
View File

@@ -0,0 +1 @@
bundler

View File

@@ -71,7 +71,7 @@ darknotify_alacritty()
x-have dark-notify && {
# subprocess is used to prevent the command from showing it was backgrounded
(
silent flock /tmp/dark-notify-alacritty.lock dark-notify \
flock /tmp/dark-notify-alacritty.lock dark-notify \
-c "$HOME/.dotfiles/local/bin/x-change-alacritty-theme" &
) &> /dev/null
}
@@ -308,8 +308,6 @@ msg "Setting up asdf configuration"
export ASDF_DIR="${XDG_BIN_HOME}/asdf"
export ASDF_CONFIG_FILE="${XDG_CONFIG_HOME}/asdf/asdfrc"
export ASDF_DATA_DIR="${ASDF_DIR}"
# This seems wrong, but `asdf info` and `versions.bash` differ on path resolution.
export ASDF_DEFAULT_TOOL_VERSIONS_FILENAME=".config/asdf/tool-versions"
export ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME="${XDG_CONFIG_HOME}/asdf/plugin-versions"
export ASDF_LOG_FILE="${XDG_CACHE_HOME}/asdf/asdf.log"
export ASDF_NODEJS_LEGACY_FILE_DYNAMIC_STRATEGY="latest_available"
@@ -317,6 +315,8 @@ export ASDF_NPM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/npm-packages"
export ASDF_GOLANG_MOD_VERSION_ENABLED=true
export ASDF_GOLANG_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/golang-packages"
export ASDF_CRATE_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/cargo-packages"
export ASDF_GEM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/gem-packages"
export ASDF_DIRENV_IGNORE_MISSING_PLUGINS=1
export PATH="${ASDF_DIR}/bin:${PATH}"
# bob manages nvim versions
@@ -343,6 +343,11 @@ export COMPOSER_HOME="$XDG_STATE_HOME/composer"
export COMPOSER_BIN="$COMPOSER_HOME/vendor/bin"
export PATH="$COMPOSER_BIN:$PATH"
# direnv, https://direnv.net/
# https://direnv.net/docs/hook.html
# Set the hook to show the direnv message in a different color
export DIRENV_LOG_FORMAT=$'\033[2mdirenv: %s\033[0m'
# docker, https://docs.docker.com/engine/reference/commandline/cli/
msg "Setting up Docker configuration"
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"

View File

@@ -0,0 +1,2 @@
disable-ipv6
enable-ssh-support

View File

@@ -0,0 +1,2 @@
disable-ipv6
enable-ssh-support

View File

@@ -8,7 +8,6 @@ tap "gesquive/tap"
tap "github/gh"
tap "homebrew/autoupdate"
tap "homebrew/bundle"
tap "homebrew/cask-fonts"
tap "homebrew/services"
tap "jesseduffield/lazygit"
tap "k8sgpt-ai/k8sgpt"
@@ -57,26 +56,28 @@ brew "apr"
brew "apr-util"
# Password hashing library and CLI utility
brew "argon2"
# Spell checker with better logic than ispell
brew "aspell"
# Automatic configure script builder
brew "autoconf"
# Collection of over 500 reusable autoconf macros
brew "autoconf-archive"
# Tool for generating GNU Standards-compliant Makefiles
brew "automake"
# GNU multiple precision arithmetic library
brew "gmp"
# GNU File, Shell, and Text utilities
brew "coreutils"
# Extendable version manager with support for Ruby, Node.js, Erlang & more
brew "asdf"
# Spell checker with better logic than ispell
brew "aspell"
# Collection of over 500 reusable autoconf macros
brew "autoconf-archive"
# Manage compile and link flags for libraries
brew "pkg-config"
# Automated text file generator
brew "autogen"
# Tool for generating GNU Standards-compliant Makefiles
brew "automake"
# Bourne-Again SHell, a UNIX command interpreter
brew "bash"
# Clone of cat(1) with syntax highlighting and Git integration
brew "bat"
# Yet another cross-platform graphical process/system monitor
brew "bottom"
# Software library to render fonts
brew "freetype"
# XML-based font configuration API for X Windows
@@ -89,24 +90,18 @@ brew "glib"
brew "choose-rust"
# Cross-platform make
brew "cmake"
# GNU File, Shell, and Text utilities
brew "coreutils"
# Open source suite of directory software
brew "openldap"
# Get a file from an HTTP, HTTPS or FTP server
brew "curl"
# Lightweight DNS forwarder and DHCP server
brew "dnsmasq"
# Lightning-fast linter for .env files written in Rust
brew "dotenv-linter"
# Spellchecker wrapping library
brew "enchant"
# Perl lib for reading and writing EXIF metadata
brew "exiftool"
# Simple, fast and user-friendly alternative to find
brew "fd"
# Banner-like program prints strings as ASCII art
brew "figlet"
# Lock file during command
brew "flock"
# Libraries to talk to Microsoft SQL Server and Sybase databases
brew "freetds"
# Monitor a directory for changes and run a shell command
@@ -117,8 +112,6 @@ brew "fzf"
brew "gd"
# Disk usage analyzer with console interface written in Go
brew "gdu"
# GitHub command-line tool
brew "gh"
# Distributed revision control system
brew "git"
# Enable transparent encryption/decryption of files in a git repo
@@ -137,10 +130,10 @@ brew "unbound"
brew "gnutls"
# GNU Pretty Good Privacy (PGP) package
brew "gnupg"
# Open source programming language to build simple/reliable/efficient software
brew "go"
# Library access to GnuPG
brew "gpgme"
# Open source suite of directory software
brew "openldap"
# Manage your GnuPG keys with ease!
brew "gpg-tui"
# Image manipulation
@@ -159,8 +152,6 @@ brew "graphviz"
brew "grep"
# Popular GNU data compression program
brew "gzip"
# Smarter Dockerfile linter to validate best practices
brew "hadolint"
# Improved top (interactive process viewer)
brew "htop"
# Portable abstraction of the hierarchical topology of modern architectures
@@ -177,8 +168,6 @@ brew "jq"
brew "json-c"
# Scanning your k8s clusters, diagnosing, and triaging issues in simple English
brew "k8sgpt"
# Network authentication protocol
brew "krb5"
# Tool to detect/remediate misconfig and security risks of GitHub/GitLab assets
brew "legitify"
# Secure hashing function
@@ -205,8 +194,6 @@ brew "nginx"
brew "nmap"
# ISO-C API and CLI for generating UUIDs
brew "ossp-uuid"
# General-purpose scripting language
brew "php"
# Coreutils progress viewer
brew "progress"
# Python version management
@@ -221,22 +208,12 @@ brew "python@3.11"
brew "ruby-build"
# Ruby version manager
brew "rbenv"
# Search tool like grep and The Silver Searcher
brew "ripgrep"
# Safe, concurrent, practical language
brew "rust"
# Static analysis and lint tool, for (ba)sh scripts
brew "shellcheck"
# Autoformat shell script source code
brew "shfmt"
# Feature-rich console based todo list manager
brew "task"
# Terminal user interface for taskwarrior
brew "taskwarrior-tui"
# Send macOS User Notifications from the command-line
brew "terminal-notifier"
# Thin wrapper for Terraform e.g. for locking state
brew "terragrunt"
# Tool which checks for the support of TLS/SSL ciphers and flaws
brew "testssl"
# Terraform version manager inspired by rbenv
@@ -259,17 +236,32 @@ brew "watch"
brew "wget"
# Check your $HOME for unwanted files and directories
brew "xdg-ninja", args: ["HEAD"]
# JavaScript package manager
brew "yarn"
# Watcher for macOS 10.14+ light/dark mode changes
brew "cormacrelf/tap/dark-notify"
# Cleans up your $HOME from those pesky dotfiles
brew "doron-cohen/tap/antidot"
# lets you quickly switch between multiple git user profiles
brew "gesquive/tap/git-user"
brew "keith/formulae/reminders-cli"
# Automated code review tool integrated with any code analysis tools regardless of programming language.
brew "reviewdog/tap/reviewdog"
# Imagick PHP extension
brew "shivammathur/extensions/imagick@8.3"
# Mcrypt PHP extension
brew "shivammathur/extensions/mcrypt@8.3"
# Msgpack PHP extension
brew "shivammathur/extensions/msgpack@8.3"
# PCOV PHP extension
brew "shivammathur/extensions/pcov@8.3"
# Redis PHP extension
brew "shivammathur/extensions/redis@8.3"
# Uuid PHP extension
brew "shivammathur/extensions/uuid@8.3"
# Yaml PHP extension
brew "shivammathur/extensions/yaml@8.3"
# General-purpose scripting language
brew "shivammathur/php/php"
# General-purpose scripting language
brew "shivammathur/php/php-debug"
# Command-line interface for 1Password
cask "1password-cli"
# GPU-accelerated terminal emulator
@@ -282,22 +274,6 @@ cask "dbeaver-community"
cask "dbngin"
# App to build and share containerised applications and microservices
cask "docker"
# Unofficial overcast.fm podcast app
cask "fog"
# Typeface made for developers
cask "font-jetbrains-mono"
# Developer targeted fonts with a high number of glyphs
cask "font-jetbrains-mono-nerd-font"
cask "font-lato"
cask "font-open-sans"
# Font with a mechanical skeleton and the forms are largely geometric
cask "font-roboto"
cask "font-source-code-pro"
cask "font-source-code-pro-for-powerline"
cask "font-source-sans-pro"
cask "font-source-serif-pro"
# Open Source Webfont Converter
cask "fontplop"
# GIT client
cask "fork"
# HTTP and GraphQL Client
@@ -348,6 +324,8 @@ cask "soundsource"
cask "suspicious-package"
# Quicklook extension for source files
cask "syntax-highlight"
# Python IDE for beginners
cask "thonny"
# Configuration application for the Ultimate Hacking Keyboard
cask "uhk-agent"
# Open-source code editor
@@ -358,3 +336,5 @@ cask "vlc"
cask "voikkospellservice"
# Application for generating TOTP and HOTP codes
cask "yubico-authenticator"
# Multiplayer code editor
cask "zed"

View File

@@ -14,7 +14,7 @@ A_DIR="$HOME/.config/alacritty"
usage()
{
echo "Usage: $0 <theme>"
echo "Available themes: dark, night, day"
echo "Available themes: (dark|night) to turn dark mode on, (day|light) to turn off"
exit 1
}
@@ -23,6 +23,7 @@ usage()
msg()
{
[[ "$VERBOSE" -eq 1 ]] && echo "$1"
return 0
}
# Function to set the alacritty theme
@@ -30,8 +31,10 @@ msg()
set_alacritty_theme()
{
local theme=$1
msg "Setting alacritty theme to $theme"
cp -f "$A_DIR/theme-$theme.toml" "$A_DIR/theme-active.toml"
local theme_file="$A_DIR/theme-$theme.toml"
msg "Setting alacritty theme to $theme ($theme_file)"
cp -f "$theme_file" "$A_DIR/theme-active.toml"
return 0
}
# Function to notify alacritty about the changes
@@ -39,6 +42,7 @@ notify_alacritty()
{
msg "Notifying alacritty about the changes"
touch "$A_DIR/alacritty.toml"
return 0
}
# Main function
@@ -51,7 +55,7 @@ main()
local alacritty_theme=$1
case "$alacritty_theme" in
day)
day | light)
set_alacritty_theme "day"
;;
*)
@@ -61,6 +65,7 @@ main()
notify_alacritty
msg "Theme set successfully!"
exit 0
}
main "$@"

View File

@@ -27,6 +27,7 @@ ASDF_INSTALLABLES=(
"1password-cli:github.com/NeoHsu/asdf-1password-cli.git"
"age:github.com/threkk/asdf-age.git"
"bottom:github.com/carbonteq/asdf-btm.git"
"direnv:github.com/asdf-community/asdf-direnv.git"
"dotenv-linter:github.com/wesleimp/asdf-dotenv-linter.git"
"editorconfig-checker:github.com/gabitchov/asdf-editorconfig-checker.git"
"eza:github.com/lwiechec/asdf-eza.git"
@@ -40,6 +41,7 @@ ASDF_INSTALLABLES=(
"pipx:github.com/yozachar/asdf-pipx.git"
"pre-commit:github.com/jonathanmorley/asdf-pre-commit.git"
"ripgrep:gitlab.com/wt0f/asdf-ripgrep.git"
"rust:github.com/code-lever/asdf-rust.git"
"semgrep:github.com/brentjanderson/asdf-semgrep.git"
"shellcheck:github.com/luizm/asdf-shellcheck.git"
"shfmt:github.com/luizm/asdf-shfmt.git"