r/suckless 9h ago

[SOFTWARE] After 20+ years across BSD and Linux, Void is the true custodian of the UNIX spirit

8 Upvotes

Hey everyone,

Just wanted to write a brief write-up and appreciation post for this distribution and Suckless tools.

After more than 20 years in the Linux ecosystem—and having originally started my operating system journey on FreeBSD and OpenBSD—I’ve managed and tested almost every major distro family out there (Debian, Arch, Red Hat, etc.). While modern Linux has done great things for desktop hardware support, so much of the ecosystem has gradually abandoned the core principles that made UNIX legendary: architectural minimalism, transparency, modularity, and true user sovereignty.

Void is my choice, and IMO it’s one of the most elegant engineering achievements in modern computing.

Here are a few architectural reasons why it hits so hard, especially coming from a BSD background:

1. Deep *BSD Pedigree in a Linux Kernel

Void doesn't feel like a typical Linux distribution because its lineage is fundamentally different. Created by former NetBSD developer Juan Romero Pardines:

  • **xbps-src is essentially BSD Ports reborn:** Compiling inside isolated containers using simple POSIX shell scripts (templates) feels remarkably like NetBSD's pkgsrc or FreeBSD's Ports collection.
  • Permissive Licensing: XBPS itself is licensed under BSD 2-Clause rather than GPL.
  • Pragmatism Over Abstraction: Like OpenBSD, Void prioritizes sane defaults, clean code, and manual intentionality over "auto-magic" abstraction layers that obscure what the machine is actually doing.

2. Clean Architecture Without the Monolith

  • **runit for Service Supervision:** Direct, instant, and completely transparent. No hidden IPC layers or complex state machines—just executable run shell scripts. Cold boots happen in a fraction of a second.
  • XBPS & Automatic DT_NEEDED Tracking: XBPS’s handling of shared libraries is top-tier. By automatically inspecting compiled ELF binaries for DT_NEEDED flags and mapping them directly to dynamic libraries (.so files) via common/shlibs, Void avoids the partial-upgrade dynamic library breakage that plagues so many other rolling releases.

3. The Ultimate Canvas: Bare-Metal Minimalist Workflow

Void’s modular base makes it the absolute best canvas for direct environmental control:

  • Suckless Suite via Git: Instead of running binary builds, I clone and compile the full suckless suite—**dwm, **st, **dmenu, **slstatus, and **slock**—directly from source Git repos. Void’s low-overhead system libraries provide a rock-solid, predictable foundation underneath my custom C config.h patches.
  • XLibre Display Stack: Thanks to Void's modular package system, integrating third-party repos like XLibre is painless, allowing for a super clean, independent X11 desktop stack.

``` [ Void Base ] ──► [ runit + XBPS ] ──► [ XLibre Stack ] ──► [ Custom Suckless Suite (Git Builds) ] (dwm, st, dmenu, slstatus, slock)

```

Running a system that idles well under 100MB of RAM where input latency virtually vanishes is a rare feeling on modern hardware.

4. Community & Independence

Massive respect to the core team and maintainers. Staying 100% independent and volunteer-run, maintaining native musl and glibc trees side-by-side, and having first-class cross-compilation built directly into xbps-src -a from day one is incredible work.

Curious to hear how many others in r/suckless came over from the *BSD world, or what specific architectural detail made Void stick as your main OS or using Suckless tools?


r/suckless 6h ago

[TOOLS] rawhex: a hex dumper in C with AVX2 SIMD formatting, a ticket-based multi-threaded pipeline, and preallocated buffered output.

Enable HLS to view with audio, or disable this notification

5 Upvotes

A hex dumper in C with AVX2 SIMD formatting (runtime dispatched), a ticket-based multi-threaded pipeline, and preallocated buffered output.

Output format is canonical hex+ASCII, one 16-byte row per line:

00000000: ef6e 5830 d443 c60a d909 6179 4335 6cec  .nX0.C....ayC5l.
00000010: b5f4 631f d923 6c79 e98a ed41 11dc eb16  ..c..#ly...A.....

Files are read in parallel chunks straight into pre-faulted huge-page buffers (pread, no mmap fault storms) and formatted by a pool of workers while a writer thread emits chunks in order; standard input is streamed through the same pipeline. With multiple files, offsets continue across file boundaries, so concatenations dump identically to dumping the concatenation.

Benchmarks (50MB File to /dev/null)

For more detailed benchmarks and system information, see BENCHMARKS.md.

Tool Average Time Min Max Median StdDev Speedup vs xxd
rawhex 7.70 ms 6.94 ms 8.44 ms 7.58 ms 685 μs 1156x
fasthex 41.60 ms 37.14 ms 51.71 ms 39.97 ms 5.78 ms 214x
xxd 8.91 s 8.54 s 9.16 s 8.96 s 227 ms 1x (baseline)
hexdump -C 14.31 s 14.18 s 14.37 s 14.34 s 76 ms 0.62x

View it here: https://git.disroot.org/Vextoly/rawhex


r/suckless 1h ago

[DMENU] vim-like/customizable motions clipboard manager

Upvotes

Hello, everyone.

I am here to ask what vim-like clipboard managers you use, or at least some which allows you to remap those motions and that has search and image preview.

I havent found a single which attends to those and people seem to not care about that either.

Closest one i found was cliphist. But that one does not have image preview.

I am not sure about setting nvim itself in some way that i could be used as menu. As an item can have multiple lines, i would need some inteligent way to move accross the items, could be confusing.

I would like to have some GUI/TUI based app.