Skip to content

Instantly share code, notes, and snippets.



  • The Black Gate
View GitHub Profile
View demangle-epub-fonts.epub
import os, sys, hashlib
def main():
progname = 'epub-font-obfuscation'
algorithms = {'idpf': 1040, 'adobe': 1024}
if len(sys.argv) > 2:
uid = sys.argv[1]
Earnestly / !README: and
Last active Apr 30, 2022
Convert PCF and BDF files to bitmap only OpenType (.otb) using fontforge
View !README: and
Convert PCF and BDF files to bitmap only OpenType (.otb) using fontforge
If you have a new enough fontforge, the python version of this script can
optionally read filenames from standard input, generating multiple .otb
font files as it finds new families. It also handles gzipped PCF and BDF
View !README: fc-glyph
fc-glyph - display all fonts which contain specified glyphs
View dotlocal.adoc
:toc: macro
Earnestly / Makefile
Last active Apr 23, 2018
Mouse pointer centering for X11
View Makefile
PREFIX = /usr/local
bindir = /bin
LDLIBS := $(shell pkg-config --libs-only-l x11 xi)
all: mouse-spring
install -Dm0755 mouse-spring $(DESTDIR)$(PREFIX)$(bindir)/mouse-spring
Earnestly / statusbar.adoc
Last active Mar 18, 2021
Simple reactive statusbar
View statusbar.adoc
Table of Contents

The main event loop

mkdir -pm0700 "$statusdir"
Earnestly / pulseserver.adoc
Last active Apr 19, 2020
PulseAudio as a Server
View pulseserver.adoc

Multiplexing Access to Audio Hardware via a Single PulseAudio Server

The goal of this setup is to create a single pulseaudio service which has sole access to the audio hardware while providing a server for many clients to use. This is not using the system wide mode as it doesn’t run as root, nor does it use the --system flag.

One disadvantage of this arrangement is the commands pacmd and pactl will no longer work when run as your user. Both rely on the user dbus

Earnestly / dealing_with_failed_install.rst
Last active Oct 17, 2016
Dealing with Installation Interruptions with Pacman
View dealing_with_failed_install.rst

A Method to Correct Interrupted Installations with Pacman

An upgrade via pacman could be broken down into three phases:

1) Sync

Updates the sync databases with, if any, new packages. These are downloaded from the mirrors usually as gzip files located in /var/lib/pacman/sync such as core.db and extra.db.

Earnestly / c99_ub_list.rst
Last active Jun 15, 2022
C99 List of Undefined Behavior (193 Cases)
View c99_ub_list.rst

C99 List of Undefined Behavior

From N1256: (See

  • A "shall" or "shall not" requirement that appears outside of a constraint is violated (clause 4).
  • A nonempty source file does not end in a new-line character which is not immediately preceded by a backslash character or ends in a partial preprocessing token or comment (
  • Token concatenation produces a character sequence matching the syntax of a universal character name (
  • A program in a hosted environment does not define a function named main using one of the specified forms (
  • A character not in the basic source character set is encountered in a source file, except in an identifier, a character constant, a string literal, a header name, a comment, or a preprocessing token that is never converted to a token (5.2.1).
  • An identifier, comment, string literal, character constant, or header name contains an invalid multibyte character or does not
Earnestly / fonts.adoc
Last active Mar 17, 2022
Better Defaults for Freetype
View fonts.adoc

Better Defaults for Freetype

Table of Contents