ssh/rc saves the raw forwarded socket in SSH_REMOTE_AUTH_SOCK before rewriting SSH_AUTH_SOCK to the stable symlink. shenv was ignoring that variable, so it saw SSH_AUTH_SOCK as "our link" and fell through to the systemd lookup, which could overwrite the symlink with a local agent socket and silently drop the forwarded one. Now shenv checks SSH_REMOTE_AUTH_SOCK first, giving forwarded sockets priority over any local agent. https://claude.ai/code/session_01RhXaFzxJA5D2BcGcz18ipA
About
This is a repository of configuration files that I like to have on all the
machines that I use. For new systems, you can bootstrap by running the
included clone.sh script:
curl -L https://raw.githubusercontent.com/Matir/skel/master/clone.sh | bash
Alternatively, you can manually clone the repository and run ./install.sh.
This started just as dotfiles, but expanded to include SSH keys, GPG keys, and an ever-growing setup script. There are various options to install just parts of it, such as on a machine where I only have a user account but no root.
This environment supports using dotfile_overlays/ or local_dotfiles/ to
manage machine-specific or private configurations. You can use
git-crypt on these overlay directories
for things you don't want to splash all over the internet. :)
I still wouldn't check in anything terribly sensitive, like private keys.
Usefulness
Mostly I post this to github so I can quickly grab the things I want, but it might also be useful to others. Feel free to raise an issue if you have any questions. I don't anticipating taking merge requests -- make your own dotfiles. ;)
Options
macOS-like Copy/Paste
To address keyboard shortcut conflicts between operating systems, this environment
now supports using Alt+C for copy and Alt+V for paste, similar to macOS.
This functionality is context-aware: it will automatically use Ctrl+Shift+C/V
in terminals and Ctrl+C/V in all other applications.
This feature requires the following packages to be installed:
xbindkeys: To listen for the keyboard shortcuts.xdotool: To send the appropriate keypresses.
On Debian-based systems (like Ubuntu or Kali), you can install them with:
sudo apt-get update
sudo apt-get install xbindkeys xdotool
After installation, the functionality will be enabled automatically on your next login.
On macOS, you can install the recommended packages using the included Brewfile:
brew bundle install
Packages
The packages/ directory contains lists of recommended packages. You can
manually install a set (e.g., on a Debian-based system) using:
grep -v "^#" packages/cli | xargs sudo apt-get install -y
BASEDIR: Where the skel framework is installed. Defaults to $HOME/.skel
MINIMAL: Don't do things that require git clones or installation of anything
not included in my .skel. (e.g., skips vim-plug, TPM) (Defaults to 0)
INSTALL_KEYS: Install GnuPG and SSH keys. SSH keys are placed in
authorized_keys. (Defaults to 1, installs keys.)
TRUST_ALL_KEYS: Allow all keys to be used for SSH login, versus a small subset.
VERBOSE: Enable verbose output during installation. (Defaults to 0)
SAVE: Save the install options to ${BASEDIR}/.installed-prefs
TODO
- Re-do the installation of packages.
- Make manual installation of sets easy/possible.
- Make missing packages not cause a full set failure.
- Allow comments and blank lines. in packages