miscellaneous MirBSD subprojects

FOSS hosting by
HostEurope Logo

miscellaneous MirBSD subprojects

Table of Contents

This webpage is supposed to list the various subprojects that originate from MirBSD (The MirOS Project). Some do have their own pages, which will be linked, some don’t yet or have placeholders only. The list given is a nōn-exhaustive enumeration only. It’s sorted! ☺

[MirOS] Foundry

for now

The [MirOS] Foundry currently reserves the following family names:

The Foundry is a definite candidate for getting its own subproject page.


Not an official MirOS project but to make it easy for users to find, ~tg SoundFonts hosts some food for synthesisers (TiMidity, FluidSynth, MuseScore, …), licence infos are contained in the respective metadata.

Free Sheet Music

My contribution to the world-wide Free Sheet Music movement / programme can be found self-hosted with some scores/partitura also hosted on other sites:

Do note the FOSS/OER licences on the individual pieces as well as the realisations from the sythesiser with the MIT-licenced soundfont.

jupp — Programmer’s Editor

… has its own page: jupp — the Editor which sucks less

KBDmir — MirKeyboardLayout

Keyboard layout “English (Europe)” for various operating systems: based on US layout, adds all of Latin-1 and parts of codepage 1252 to add complete typing support for a lot more languages retaining the good usability of the US layout for programmers; ModeSwitch acts as Meta key but further extensions add smileys, arrows, line drawing, proper typographic hyphens and quotation marks (dashes are documented), Euro, trademark sign, bullet point, Asian quotation marks and fullwidth space, nōn-breaking space, upper-case Eszett, combining overline and underline, ellipsis, intervals, U+FFFD (for when you actually need it)… just have a look (source of this picture (CVSweb) as plain ANSI + UTF-8 text; easy plaintext version).

XTaran’s article How to Type Special Characters and Umlauts under X builds the basis for this keyboard layout in its variants. I’ve switched to it, from my native German QWERTY, with three days of constantly cursing, once I had a version for all computers I needed to work at daily, never regretting.

Variants to download

Suitable xmodmap(1) calls…

	# Mode_switch status shows on Caps LED, optional
	setxkbmap -option grp_led:caps
	# unconfigure CapsLock, recommended to avoid glitches
	setxkbmap -option caps:none
	# load actual layout map
	xmodmap ~/.Xmodmap

… to put into xinit(1)rc or xsessionrc to load the Xmodmap file — or use the helper.

Documentation (notes)

Base layout is standard 101-key US, although an 102‑ or 104-key keyboard unlocks Compose, and 105-key enables using an Alt key.

Caps Lock no longer exists. The key produces ‘…’ and ‘€’ and, with Mode_switch (see below), ‘„’ and ‘™’, instead.

The Escape key and the ‘`’ key switch positions, but only the unshifted versions — the key left to the ‘1’ still produces ‘~’ when shifted; similar for Mode_switch/Meta (see below). The Escape key is very far off on a Thinkpad X40, that’s why.

The left Alt key produces Meta instead, which adds 128 to the ASCII code of a key, e.g. Meta-d = ä (d=U+0064, ä=U+00E4). The key is actually emulated using Mode_switch, which, with several other keys (such as function or cursor keys, Return, …), also produces extra characters.

If you’re looking for the Alt_L key, it’s the “left Windows® key”. The “right Windows® key” is Meta_R (some may use that). The right Alt key (often labelled AltGr) produces Alt_R (which may or may not be a good substitute for Alt_L). [This differs from the version of this keyboard layout for NT®, which has Mode_switch on AltGr, because that’s the only key that OS can assign to such functionality.]

Both the “Windows® menu key” and the “102nd key” (usually labelled “< > |”) act as Compose key.

Meta-Space is U+00A0. Mode_switch-Shift-Space is U+3000, and Mode_switch-Shift-Esc is U+4DC0, e.g. used in my font editor. (This requires the correct wcwidth information (e.g. very old or very recent glibc) and a suitable font, such as FixedMisc [MirOS].)

There are variants for XFree86®/MirBSD (the original, also usable with X.org and the kbd input driver), X.org with the evdev input driver, another XFree86® one resembling the NT layout more closely, one for the Linux text console (MirBSD doesn’t need it because the Meta key is a native wscons(4) feature), and NT® 4 and up — within system limitations; same for Windows® 9x. Others (MS-DOS®, Windows® 1.x‥3.x, Mac OSX) on request, but those have not yet been created, so may require some work and probably help.

Custom adaptions (such as not swapping Escape and the key left to 1, or changing some key mappings, etc.) can be done on request, too.

kwalletcli — CLI for the KDE Wallet

… has its own page: CLI for the KDE Wallet

MagicPoint (mgp)

… has its own page: MagicPoint for presentations

mbsdcc.h & mbsdint.h

This is a project to abstract away ANSI/ISO C’s and portable C’s weird integer rules: types, ranks, variables and promotions. It’s also got checked arithmetics, manual two’s complement arithmetics using the unsigned types as both storage and to calculate, and conversion functions (e.g. as separate sign / magnitude variables and from and to the corresponding signed type, which (pre-C23) may be unable, not using two’s complement, to represent all values).

It’s also got a testsuite. Both are in the need of community both input and review ☺

mbsdcc.h abstracts away some differences between various ISO C standard versions, C++ support, compiler extensions, etc.

To run the testsuite, check out src/kern/include from CVS (or a third-party git mirror), raise ulimit -dS $(ulimit -dH), and run:
env LDFLAGS='linker flags' sh mkt-int.sh cc cflags cppflags # do not quote the latter additionally
Be aware that this creates multiple multi-Mebibyte source files, compiling them (the large files with -O0 -g0 added) and linking them together into a huge (25–60 MiB) binary which is then run (the fastest part). Export DEBUG=1 to not clean up after exiting, if you want to look at issues you run into.

This has been tested with GCC 3.4 on MirBSD/i386, with GCC 10/12 on Debian/amd64 glibc, klibc and musl (dietlibc OOMs)), with the system compiler (mostly clang) on OpenBSD/{amd64,mips64}, NetBSD/amd64, FreeBSD/amd64, Mac OSX/arm64, Ubuntu/riscv64; Solaris Studio 12.2 on Solaris 11.3/sun4u; IBM xlc 12.01 on AIX 7.1 on 32-bit POWER; …

mksh(1) — the MirBSD Korn Shell

… has its own page: The MirBSD Korn Shell

cpio(1), pax(1), tar(1) — paxmirabilis / MirCPIO

… has its own page: MirCPIO — paxmirabilis — tar and even ar!


… does not yet have a page. Download


for now


Portable select(2)-based sleep(1) utility from MirBSD; should work on at least all platforms mksh(1) R59 and older had a sleep builtin. This is POSIX-compliant (if the underlying OS is), supports sub-second sleep and all extensions (unit factors; multiple arguments are summed up) GNU coreutils’ has except the --help and --version options.

Download MirBSD sleep

Compilation is similar to mksh: sh $srcdir/Build.sh

MirBSD Logo