Skip to content

Instantly share code, notes, and snippets.

View full-sized avatar

Nathan Henrie n8henrie

View GitHub Profile
@n8henrie
n8henrie / nix-darwin-linux-builder-example.nix
Created September 25, 2023 21:33
How to use darwin-builder to build linux nix packages on darwin
View nix-darwin-linux-builder-example.nix
{
description = "Example use of nixpkgs#darwin-builder";
# First, read through https://github.com/NixOS/nixpkgs/blob/master/doc/builders/special/darwin-builder.section.md#sec-darwin-builder-example-flake
# and add yourself to `extra-trusted-users`, verify with `nix show-config | grep -i trusted-users`
#
# Copy this flake somewhere and run:
#
# ```console
# $ nix build --builders '' .#packages.aarch64-darwin.default
@n8henrie
n8henrie / pbcopy
Created September 13, 2023 18:35
pbopy: copy over ssh to a MacOS host's clipboard
View pbcopy
#!/bin/bash
set -Eeuf -o pipefail
readonly SSH_PORT=1234
readonly USERNAME=me
readonly SSH_KEY=/home/"${USERNAME}"/.ssh/my_key_id_rsa
readonly DEST=my_machine_name
main() {
View activate_browser.js
#!/usr/bin/osascript -l JavaScript
'use strict'
const Safari = Application("Safari")
const Chrome = Application("Google Chrome")
const Brave = Application("Brave Browser")
const SystemEvents = Application("System Events")
const Firefox = Application("firefox")
const DefaultBrowser = Firefox
View search_bad_logins.py
#!/usr/bin/env python3
"""
search_bad_logins.py :: Compares a LastPass export to your Bitwarden vault.
Python >=3.10, no third party Python libraries / dependencies.
Outputs BW logins that may have been compromised in the recent LastPass hack
based on matching domain and password.
It would probably make sense to cast an even wider net by using something like
@n8henrie
n8henrie / OpenTerminalToFinderWindow.js
Last active August 10, 2023 17:39
JXA to open a Terminal window to the frontmost Finder window
View OpenTerminalToFinderWindow.js
#!/usr/bin/osascript -l JavaScript
'use strict';
const DEBUG = false;
(function () {
const terminal = Application("Terminal")
// A few seconds to focus the appropriate Finder window
View devdocs.json
{"analyticsConsentAsked":"1","autoInstall":"1","docs":"css/html/http/javascript/dom/bash/docker/flask~2.2/git/gnu_make/gnuplot/go/homebrew/i3/jinja~3.0/jq/liquid/lua~5.4/markdown/matplotlib~3.6/nix/numpy~1.23/pandas~1/pygame/python~3.10/pytorch/rust/scikit_image/scikit_learn/sqlite/statsmodels/svelte/tailwindcss/tensorflow~2.9/vue~3/xslt_xpath"}
View .gitignore
*.img
*.img.xz
View treecount.sh
Well, this ended up being easier than I'd expected to implement with coreutils.
Wrapped it up into a little script that sorts by count and removes anything with only 1 result (like files).
Should be pretty easy to also add in a `du -sh` to get sizes if one wanted. Currently it runs in <2s on that 500,000 line file on my M1 Mac. Sharing in case useful for anyone else.
```bash
#!/usr/bin/env bash
# treecount.sh https://gist.github.com/a7c3b48eb971f662c03e9da17ecb9ea4
#
@n8henrie
n8henrie / text_scratchpad.sh
Last active September 2, 2022 14:07
Make alacritty into a pop-up scratchpad
View text_scratchpad.sh
#!/usr/bin/env bash
set -Eeuf -o pipefail
shopt -s inherit_errexit
log() {
echo "$*" > /dev/stderr
}
err() {
@n8henrie
n8henrie / build-plugin.sh
Created March 8, 2022 03:48
Convenience script to build a Quicksilver plugin from CLI
View build-plugin.sh
#!/bin/bash
#####
# build-plugin.sh
# bash 3.2-compatible convenience script to:
# - search by partial name for a plugin in the `QSPLUGINS` subdirectory
# (default `./QSPlugins`)
# - clean plugin directory
# - clean QS directory
# - `rm -rf /tmp/QS`