Skip to content

Instantly share code, notes, and snippets.

@cfaulkingham
cfaulkingham / 49-crealityprint-static-fonts.conf
Created November 8, 2026 15:56
Install Creality Print 7.3.1 on Omarchy and stop the startup crash
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!--
Creality Print exports an old FreeType from its executable. Cairo opens
fonts with that copy, then applies variable-font axes with the system
FreeType. The call lands back in the old copy and segfaults.
GTK here uses Adwaita Sans and Adwaita Mono, both variable.
Serve this program static fonts instead. Other programs are unchanged.
-->
@cfaulkingham
cfaulkingham / solidcraft-10011-evidence.html
Created October 31, 2026 21:06
SolidCraft #10011: original before/after app screenshots for PR #10285
This file has been truncated, but you can view the full file.
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>SolidCraft #10011: infinite construction-line intersection snapping</title><style>body{font:17px system-ui,sans-serif;max-width:1500px;margin:30px auto;padding:0 20px;background:#fafafa;color:#20242a}img{max-width:100%;height:auto;border:1px solid #aaa}figure{margin:30px 0}figcaption{font-weight:600;margin:10px 0}code{font-size:15px}details{margin-top:10px;overflow-wrap:anywhere}</style><h1>SolidCraft #10011: infinite construction-line intersection snapping</h1><p>Actual macOS app screenshots captured on 2026-10-31. Before: upstream main <code>52765304cdc3a104ab9ea69d854896504f410dde</code>. After: the fix in <a href="https://github.com/tangency-labs/solidcraft/pull/10285">PR #10285</a>.</p><p>Two infinite construction lines are defined by (20,40)–(20,50) and (40,15)–(50,15). Start a two-point rectangle at pointer position (20.4,15.4), then click (30,25). Expected: first corner snaps
@cfaulkingham
cfaulkingham / README.md
Last active October 25, 2026 22:54
SolidCraft #1988: hidden-body Join reproduction and review screenshots

SolidCraft #1988 reproduction

Review evidence for tangency-labs/solidcraft#6894.

Run solidcraft-cli run reproduction.json --save result.solidcraft, then open result.solidcraft in SolidCraft.

The script creates two 10 × 10 × 5 mm blocks at Z = -5…0 and Z = 15…20, hides the upper block, and joins a 6 × 6 mm square loft from Z = -2 to Z = 18.

Before: one body, 1540 mm³; the hidden upper block is consumed and appears in the joined body.

@cfaulkingham
cfaulkingham / README.md
Last active October 22, 2026 14:31
Move Omarchy partitions into free space in front of them, then grow the encrypted root

Expand an Omarchy disk into the gap in front of it

Omarchy's encrypted root sometimes already reaches the end of the disk, with empty space in front of the Linux partitions. The root cannot grow until those partitions slide left. This script does that move, then grows the LUKS volume and the btrfs filesystem.

It looks for one disk with a crypto_LUKS partition named OMARCHY_ROOT and a vfat partition named OMARCHY_EFI. LINUX-EFI is included when it is present. Any other layout is refused. A disk with empty space after the root is refused too: that root can be extended in place, and this copy is not needed.

Put the script on the Omarchy installer USB

The big installer volume (labeled OMARCHY_ plus a date, filesystem iso9660) is read-only. Copy the script onto the small writable vfat partition labeled ARCHISO_EFI.

@cfaulkingham
cfaulkingham / zed-wayland-extra-seat-no-input.md
Created September 27, 2026 11:30
Zed ignores mouse and keyboard on Wayland when an extra wl_seat is advertised

Zed ignores the mouse and keyboard when another Wayland seat is advertised

Zed opens, draws a normal window, and Hyprland will focus it. Clicks and keystrokes do nothing. Other apps on the same seat are fine.

This happens when the compositor advertises an extra wl_seat after the real one. Zed's Wayland backend binds each seat as it appears and releases the previous seat's keyboard and pointer. It ends up listening only to the last seat. If that seat is a synthetic one with no hardware devices, input never arrives.

@cfaulkingham
cfaulkingham / muse-linux-keychain-login.md
Created September 26, 2026 22:31
Fix Muse Code Linux login: keychain write failed (internal error -2147483648)

Muse Code on Linux: keychain write failed (internal error -2147483648)

muse login and muse auth set can fail while saving the credential:

Login failed: failed to write credential file at /home/you/.config/muse/auth.json: keychain write failed (internal error -2147483648)

Observed with Muse Code 1.4.0 (1.4.0-R4161.1) on Linux. A healthy gnome-keyring does not clear it. On the machine where this was traced, the Secret Service default collection was unlocked and secret-tool store succeeded, and the failing Muse process never called Secret Service, D-Bus, or the kernel keyring. The keychain backend returns -2147483648 (0x80000000) on its own.

#ifndef CONFIGURATION_H
#define CONFIGURATION_H
// This configuration file contains the basic settings.
// Advanced settings can be found in Configuration_adv.h
// BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
//===========================================================================
//============================= DELTA Printer ===============================
//===========================================================================
@cfaulkingham
cfaulkingham / Select_to_Html.js
Created April 6, 2012 14:58
Convert Select ELement's to Dropdown group
/*!
* Convert <select> elements to Dropdown Group
*
* Author: John Rocela 2012 <me@iamjamoy.com>
* Update: Fixed issue with selected showing value instead of text Colin Faulkingham <colin.faulkingham@gmail.com> 2012
*/
jQuery(function($){
$('select').each(function(i, e){
if (!($(e).data('convert') == 'no')) {
$(e).hide().wrap('<div class="btn-group" id="select-group-' + i + '" />');
@cfaulkingham
cfaulkingham / frogger.pde
Created October 11, 2011 01:25
Code for adding joystick support to the Gameduino Frogger game.
class Controller {
public:
void begin() {
byte i;
for (i = 3; i < 7; i++) {
pinMode(i, INPUT);
digitalWrite(i, HIGH);
}
prev = 0;
}
@cfaulkingham
cfaulkingham / drawbotVisual.pde
Created September 19, 2011 18:36
Drawbot Visual point viewer
/**
* used to visualize the points for drawbot in processing.
* Colin Faulkingham
* http://processing.org/
* replace your moveTo()'s with ellipse()
*/
void setup() {
size(800, 400);
noStroke();