Skip to content

Instantly share code, notes, and snippets.

View Earnestly's full-sized avatar


  • The Black Gate
View GitHub Profile
Earnestly /
Last active April 22, 2024 09:13
A Selected List of Additions and Changes Coming With POSIX Issue 8

A Selected List of Additions and Changes Coming With POSIX Issue 8

Last major change: 10th March 2023

New Commands


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 March 4, 2023 07:25
Convert PCF and BDF files to bitmap only OpenType (.otb) using fontforge
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
fc-glyph - display all fonts which contain specified glyphs
:toc: macro
Earnestly / Makefile
Last active April 23, 2018 00:04
Mouse pointer centering for X11
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 August 7, 2023 09:06
Simple reactive statusbar
Table of Contents

The main event loop

mkdir -pm0700 "$statusdir"
Earnestly / pulseserver.adoc
Last active June 27, 2023 20:10
PulseAudio as a Server

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 that the commands pacmd and pactl will no longer work when run as your user. Both rely on the user dbus session

Earnestly / dealing_with_failed_install.rst
Last active October 17, 2016 18:49
Dealing with Installation Interruptions with Pacman

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 May 29, 2024 15:47
C99 List of Undefined Behavior (193 Cases)

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