Skip to content

Instantly share code, notes, and snippets.

View Enzime's full-sized avatar
❄️
Nixing into the night

Michael Hoang Enzime

❄️
Nixing into the night
View GitHub Profile
$ nix build --print-build-logs nixpkgs/952b88fd4efd6be925c9796be27a5d4126dbf4f2#airdrop-cli
airdrop-cli> Running phase: unpackPhase
airdrop-cli> unpacking source archive /nix/store/sjwali3jbi9qvsg04vdh2z412bmb3xws-source
airdrop-cli> source root is source
airdrop-cli> Running phase: patchPhase
airdrop-cli> Running phase: updateAutotoolsGnuConfigScriptsPhase
airdrop-cli> Running phase: configurePhase
airdrop-cli> no configure script, doing nothing
airdrop-cli> Running phase: buildPhase
airdrop-cli> build flags: -j 2 -c release
@Enzime
Enzime / bisect-runner
Last active May 5, 2025 03:34
Skip stdenv and use cached build logs
#!/usr/bin/env bash
set -x
NIXPKGS=$(nix flake metadata --json | jq -r '.path')
STDENV_STORE_PATH=$(nix eval --raw $NIXPKGS#legacyPackages.aarch64-linux.stdenv.outPath)
STDENV_STORE_PATH_HASH=$(echo $STDENV_STORE_PATH | cut -c 12-43)
if ! curl --head --fail "https://cache.nixos.org/$STDENV_STORE_PATH_HASH.narinfo"; then
@Enzime
Enzime / extract-starting-script.sh
Created April 6, 2025 06:42
Extracts VSCode Remote SSH script
#!/usr/bin/env bash
set -euo pipefail
cat $(NIXPKGS_ALLOW_UNFREE=1 nix build --impure ln\#vscode-extensions.ms-vscode-remote.remote-ssh --json --out-link $(mktemp -d)/link | jq -r '.[0].outputs.out')/share/vscode/extensions/ms-vscode-remote.remote-ssh/out/extension.js | rg --only-matching --multiline-dotall --multiline 'echo "\$\{a\.getScriptStartMarker.*?\}\\n`;' | sed 's/\\n/\n/g' | sed 's/\\t/ /g'
@Enzime
Enzime / flake.nix
Created August 18, 2023 05:35
private-dotfiles
{
inputs.secrets.url = "path:./secrets";
inputs.secrets.flake = false;
inputs.dotfiles.inputs.secrets.follows = "secrets";
outputs = { dotfiles, ... }: dotfiles;
}
#!/bin/bash
termite -e "vim $*"
@Enzime
Enzime / .asoundrc
Created October 27, 2015 17:07
ALSA config for custom recording device (that also outputs to speakers)
# create default device, outputs to just audio out
pcm.!default {
type asym
playback.pcm "plug:dmix0"
capture.pcm "dsnoop:PCH"
}
# outputs to both audio out and loopback
pcm.record {
type asym
@Enzime
Enzime / 98-mnt_ex.rules
Created October 12, 2015 14:51
Hacky solution to use systemd-automount to always mount an external HDD
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="548C310362B58070", ACTION=="add", SYMLINK+="ext", RUN+="/bin/systemctl daemon-reload", RUN += "/bin/systemctl start mnt-ex.automount"
SUBSYSTEM=="block", ENV{ID_FS_UUID}=="548C310362B58070", ACTION=="remove", RUN+="/bin/systemctl stop mnt-ex.automount"
@Enzime
Enzime / osu
Created September 11, 2015 00:21
osu launcher (fixes weird i3 bug with the WINE decorations not being properly removed such that they are rendered with black edges in the decorations place)
#!/bin/bash
cd /data/Games/osu\!
wine osu\!
while [ "$win" = "" ]; do
echo 'waiting for osu window'
sleep 0.05
win=$(xwininfo -children -root -all | grep osu\!cuttingedge | sed -e "s/^.*\(0x[0-9a-f]\+\).*$/\1/")
done
@Enzime
Enzime / Fraction.cpp
Created August 27, 2015 07:48
such Fraction class very std::pair
#include <iostream>
#include "Fraction.h"
Fraction::Fraction() { }
Fraction::Fraction(int a, int b) {
set(a, b);
}
Fraction::~Fraction() { }
@Enzime
Enzime / limfshot.sh
Created August 21, 2015 21:58
Small script that uses maim and xclip (and xwininfo and xdotool) to take screenshots and upload them to pomf clones (with limf)
#!/bin/bash
file=~/Pictures/Screenshots/$(date +%y-%m-%d_%H-%M-%S).png
if [[ "$1" == "desktop" ]]; then
maim $file
elif [[ "$1" == "current" ]]; then
# maim -i $(xdotool getactivewindow) $file
maim -i $(xwininfo -id $(xwininfo -id $(xdotool getactivewindow) -children | grep "Parent window id" | sed -r "s/.*: (0x[0-9a-f]+) .*/\1/") | sed -r "s/.*: (0x[0-9a-f]+) .*/\1/" | head -n2 | tail -n1) -g $(xwininfo -id $(xwininfo -id $(xdotool getactivewindow) -children | grep "Parent window id" | sed -r "s/.*: (0x[0-9a-f]+) .*/\1/") | tail -n3 | head -n2 | py -l 'list(map(str.split,l))[1][1].replace("-","+").split("+")[0]+list(map(str.split,l))[0][1]') $file
else