Skip to content

Instantly share code, notes, and snippets.

View szhu's full-sized avatar

Sean Zhu szhu

  • NYC / SF
  • 16:04 (UTC -04:00)
  • X @sfzhu
View GitHub Profile
@szhu
szhu / stickes-hole-window.swift
Created November 3, 2022 16:10
Open 4 Stickies windows and drag them around to create a "hole".
import AppKit
import ApplicationServices
import CoreFoundation
import Foundation
// Helpers
// https://github.com/keith/ModMove/blob/main/ModMove/AXValue%2BHelper.swift
extension AXValue {
func toValue<T>() -> T? {
#!/bin/sh
# File formatted with shell-format.
#
# This tool creates a disk image to put node_modules in. This makes it so that
# when the disk image is not mounted, it is treated as a single file by
# Spotlight and other tools to do expensive tasks on a per-file basis.
set -e
# Utils
// ==UserScript==
// @name Gmail Sender Utils
// @namespace https://github.com/szhu
// @match https://mail.google.com/mail/u/*
// @version 1.3
// @author Sean Zhu
// @description Quickly drill down by sender or label in Gmail.
// @homepageURL https://gist.github.com/szhu/1d816086307c5de02bc9a2bb1cf01fe0
// @updateURL https://gist.github.com/szhu/1d816086307c5de02bc9a2bb1cf01fe0/raw/gmail-sender-utils.user.js
// @downloadURL https://gist.github.com/szhu/1d816086307c5de02bc9a2bb1cf01fe0/raw/gmail-sender-utils.user.js
for (let image of document.querySelectorAll("image")) {
let url = (image.getAttribute("xlink:href"));
fetch(url).then(res => res.blob()).then(blob => open(URL.createObjectURL(blob)));
}
@szhu
szhu / git-autosave
Last active January 14, 2022 17:24
Creates a backup of your uncommitted changes.
#!/bin/bash
set -e
old_stash_count=$(git stash list | wc -l)
git stash push --keep-index --include-untracked --quiet
if test "$old_stash_count" == "$(git stash list | wc -l)"; then
echo "All changes have been committed."
exit 0
fi
// domToTsv - Convert rows in a webpage into TSV-formatted table.
// Example usage:
// This converts instacart.com order receipts to TSV.
domToTsv(
// Select a single table:
[`#store-wrapper main`],
// For each table, select every row:
`:scope > ul > li`,
@szhu
szhu / spotlight-ignore-node-modules.sh
Last active April 25, 2024 06:28
Tell Spotlight to ignore all node_modules directories.
# Tell Spotlight to ignore all node_modules directories.
# Run this from the home directory.
# Pieced together from:
# - https://github.com/yarnpkg/yarn/issues/6453#issuecomment-498110933
# - https://stackoverflow.com/a/4210072/782045
# - https://superuser.com/a/151427/110699
# - https://apple.stackexchange.com/a/258791/31413
# - https://unix.stackexchange.com/a/24563/64762
# This does a dry run; remove `echo` to do actually do it.
// pbpaste | deno run --reload https://gist.githubusercontent.com/szhu/54a314fa055b4e6d07e1446ca9f3ea8a/raw/convertPropTypesToTs.ts | pbcopy
interface ToStringAble {
toString(): string;
}
type TypeSpecToString = (this: TypeSpec) => string;
interface TypeSpec {
name: string;
{
let clientAppState = JSON.parse($("#client-app-state").text.replace(/&q;/g, '"'))
let { HttpState } = clientAppState
let route = Object.keys(HttpState)[0]
HttpState[route].data.properties.identifier.uuid
}
#!/bin/bash
set -euo pipefail
mkdir -p tmp/overrides/webpack%3a/%2e
while true; do
while IFS= read -r -d '' override_file
do
file=$(echo "$override_file" | python -c 'import re, sys; print re.split("^tmp/overrides/webpack%3a/%2e/|%3f.*$", sys.stdin.read().strip())[1]')
cp -f "$override_file" "$file"