The Meowgorithm Dotfiles, Collectors’ Edition
#!/usr/bin/env bash
set -euo pipefail
SSH_AGENT_SOCKET="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}/ssh-agent.socket"
HYPRLAND_CONF="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprland.conf"
PROFILE_D="/etc/profile.d/ssh-agent-hyprland.sh"
check_ssh_agent() {
if [[ -S "$SSH_AGENT_SOCKET" ]]; then
SSH_AUTH_SOCK="$SSH_AGENT_SOCKET" ssh-add -l &>/dev/null
return $?
fi
return 1
}
start_agent() {
mkdir -p "$(dirname "$SSH_AGENT_SOCKET")"
ssh-agent -D -a "$SSH_AGENT_SOCKET" &
echo "ssh-agent started on $SSH_AGENT_SOCKET"
}
add_keys() {
local keys=()
for key in "$HOME/.ssh"/id_*; do
[[ -f "$key" && "$key" != *.pub && "$key" != *.so ]] && keys+=("$key")
done
if (( ${#keys[@]} > 0 )); then
SSH_AUTH_SOCK="$SSH_AGENT_SOCKET" ssh-add "${keys[@]}" 2>/dev/null
echo "Added ${#keys[@]} key(s) to ssh-agent"
else
echo "No SSH keys found in $HOME/.ssh"
fi
}
setup_hyprland() {
if ! grep -q 'exec-once.*ssh-agent' "$HYPRLAND_CONF" 2>/dev/null; then
echo "exec-once = ssh-agent -D -a \$XDG_RUNTIME_DIR/ssh-agent.socket" \
>> "$HYPRLAND_CONF"
echo "Added ssh-agent exec-once to $HYPRLAND_CONF"
else