Skip to content

Instantly share code, notes, and snippets.

@jdtsmith
jdtsmith / test_org_latex_preview.org
Last active November 30, 2023 20:54
LaTeX Preview with SVG

This is normal text. $ω(t) = \sqrt[16]{t}$ Nam a sapien. $ρ(y) = exp\left(\sqrt{log(y)}\right)$ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. $υ(x) = exp\left(\sqrt{exp(x)}\right)$ Aliquam posuere.

@jdtsmith
jdtsmith / maximize-window.el
Last active May 11, 2024 14:18
maximize-window-vertically in emacs
;; Maximize a window vertically or horizontally within its frame
(defun maximize-window-in-direction (&optional horizontally)
"Maximize window.
Default vertically, unless HORIZONTALLY is non-nil."
(interactive)
(unless (seq-every-p
(apply-partially #'window-at-side-p nil)
(if horizontally '(left right) '(top bottom)))
(let* ((buf (window-buffer))
(top-size (window-size (frame-root-window) (not horizontally)))
@jdtsmith
jdtsmith / repeat-change-cursor-color.el
Last active July 4, 2024 23:15
Emacs: change cursor color during active repeat-mode commands
(let ((orig (default-value 'repeat-echo-function))
rcol ccol in-repeat)
(setq
repeat-echo-function
(lambda (map)
(if orig (funcall orig map))
(unless rcol (setq rcol (face-foreground 'error)))
(if map
(unless in-repeat ; new repeat sequence
(setq in-repeat t
@jdtsmith
jdtsmith / box-stipple.el
Last active September 9, 2023 18:06
Using Emacs `:stipple` face attribute for drawing bars and other pixel-level features
(let ((buf (get-buffer-create "*stipple-box*")))
(switch-to-buffer-other-window buf)
(cl-flet ((srot (s r) (concat (substring s (- r)) (substring s 0 (- r)))))
(let* ((bar-width 0.3)
(w (window-font-width))
(h (window-font-height))
(rot (indent-bars--stipple-rot w))
(bsz (round (* bar-width w)))
(vrot (mod (cadr (window-edges nil t nil t)) h))
(pad (make-string (- h bsz) ?\s))
@jdtsmith
jdtsmith / test_treesitter.el
Last active August 20, 2023 12:30
tree-sitter navigation speed test
(let (cnt tm node res)
(goto-char (point-min))
(while (< (point) (point-max))
(setq tm
(benchmark-run 100
(setq node (treesit-node-at (point)))
(while node
(setq node (treesit-node-parent node))))
node (treesit-node-at (point)))
(setq cnt 0)
@jdtsmith
jdtsmith / audio_sync_rti.org
Last active January 20, 2025 17:16
WLED AudioSync Realtime Smoothing with Interpolation Proposal

Background

WLED supports a variety of network control protocols, including “realtime UDP” and (for audio-reactive ports) “Sound Sync”. UDP data “frames” comprising one or more packets are typically sent to WLED devices at fixed intervals, e.g. 20ms for the default 50Hz SoundSync update. Unfortunately, consumer-grade WiFi suffers from jitter of 20-80ms. Packets can occasionally arrive in rapid “floods” (several packets in <10ms), followed by long “droughts” of 75ms or more.

The solution? Store up a fixed number of “frames” from the sporadically arriving packet data stream, then play them back at smooth intervals, essentially using the buffer to help “weather the droughts and floods”. This dramatically smooths playback. This approach effectively trades latency for smoothness of playback. This buffering approach is referred to as Realtime Smoothing (RTS).

@jdtsmith
jdtsmith / highlight-indentation-current-column-timer.el
Created May 2, 2023 15:49
Custom code with a timer delay for current-column marking in highlight indentation mode
(use-package highlight-indentation
:ensure highlight-indentation
:init
;; Add a timer delay to the current column highlight for efficiency,
;; and to avoid flashing when scrolling or moving by line
(defvar my/highlight-indentation-current-column-timer nil)
(defun my/highlight-indentation-current-column ()
(highlight-indentation-redraw-window (selected-window)
'highlight-indentation-current-column-overlay
'highlight-indentation-current-column-put-overlays-region))
@jdtsmith
jdtsmith / vundo-stress-test.el
Last active March 16, 2023 16:35
undo/redo + vundo stress test
;; Stress tests of the undo/vundo system
(require 'vundo)
(require 'lorem-ipsum)
(eval-when-compile
(require 'cl-lib))
(require 'memory-report)
(add-hook 'vundo-mode-hook (lambda () (setq jit-lock-mode nil)))
@jdtsmith
jdtsmith / rect-mark-modal.el
Last active March 8, 2023 07:19
Supercharge emacs rectangle-mark-mode with modal keys
(use-package rect
:init
(defun my/rect-transient-map-info ()
(interactive)
(with-help-window "Rectangle Mark Command Help"
(dolist
(l '("Rectangle Mark Mode Modal Commands\n"
"==================================\n\n"
"Insertion:\n\n"
" [o] open fill rectangle with spaces, moving adjacent text right\n"
@jdtsmith
jdtsmith / glitch.md
Created February 10, 2023 02:14
org smooth scrolling image glitch

Image glitch while mac-mouse-wheel-smooth-scroll=t (emacs-mac)

While smooth(=pixel) scrolling up past images displayed by org-display-inline-images (org 9.6.1), point loops back below the image, preventing you to scroll past it. See below for a video.