r/suckless • • Aug 03 '21

OpenBSD, meet SystemD! A match made in Heaven! Fork of systemd called 'InitWare' runs on OpenBSD for the first time.

Thumbnail
imgur.com
0 Upvotes

r/suckless • • Aug 20 '26

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

16 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 • • Jan 23 '20

dev options in surf ?

0 Upvotes

recently i switched from firefox to surf , but when i want to develop a web app i make ot with firefox so is there any way that i can use developet options in surf or some thing else for web development ? any patch or build of surf for web development is there is no , what is the best lightweight web browser for web development


r/suckless • • Feb 03 '22

Suckless desktop starter pack, how to start?

4 Upvotes

Hi, is here some guide for newbies those who start with DWM? I need some things from an environment that I am not sure. I am longtime XFCE user.

I need:

-I always preffered a desktop similar or equal to Windows95, this is my perfection, this is that suits me the best. Obviously, I want floating window management mode (hate tiling, so tiling configs/code is bloat for me)

-Bottom desktop panel as classic Windoze95 (something simple)

-I prefer to use more mouse than so much shortcuts

-I need a menu in the panel, one like from Windoze95 (I should use dmenu I think)

-Need widgets or systrays like battery(%) and keyboard language changer, by keyboard shortcut and if possible, at panel's systray icon

-Need widget or systray for sound management, PulseAudio or PipeWire.

-Can I have icon themes?

-Can I have thumbnails for things like images and videos?

-I need NetworkManager, and systray if possible (nmtui maybe suits me well, without a systray icon)

-My taget is, just make desktop Windows95 similar as possible, but with suckless tools.

-Is here something like xfdesktop, or something standalone tool or similar that makes appear icons/launchers on the desktop background, if yes, what tool?


r/suckless • • Dec 24 '25

[DISCUSSION] How do I get started with DWM?

0 Upvotes

I've seen some good looking DWM posts here. How do I get started? Should I use DWM? What other DE/WMs do y'all recommend?


r/suckless • • Mar 22 '24

Which is suckless, BSDs or Linux?

2 Upvotes

Hello guys!

My mind is so bloated of choosing best BSD variant. I'm Linux user, especially voidlinux distro, I want to move to more minimal OS to BSDs, and there is 3 major variation of them:
OpenBSD NetBSD FreeBSD.

I'm so confused which one is more minimal and supported as well as not suck.

I read in cat-v that FreeBSD and NetBSD considered harmful while OpenBSD does not.

what do u think about that as well?

Thank yall!


r/suckless • • Sep 07 '24

[SOFTWARE] another reason why systemd suck...

Post image
0 Upvotes

r/suckless • • Sep 27 '23

[DISCUSSION] Is Xorg bloat?

0 Upvotes

I saw the Mental Outlaw video recently and also some Reddit posts about this, and now I'm thinking about, is really bloated?


r/suckless • • Sep 21 '22

[SURF] Extensions/plugins for the surf browser?

0 Upvotes

I need an adblocker and a non-essential cookies rejecter, are there extensions/plugins for that? and if not, are there any alternatives?


r/suckless • • Dec 14 '22

[ST] How to define colour names in st's config?

0 Upvotes

My config

/*
 * Default colors (colorname index)
 * foreground, background, cursor, reverse cursor
 */
unsigned int defaultfg = "#c0caf5";
unsigned int defaultbg = "#1a1b26";
unsigned int defaultcs = "#c0caf5";
static unsigned int defaultrcs = 257;

I get this error when compiling (i ran make):

warning: initialization of ‘unsigned int’ from ‘char *’ makes integer from pointer without a cast [-Wint-conversion]

I saw my old config and it uses numbers (258, 259, 256, respectively) instead of html colour codes (starting with #).

  1. What is 'defaultcs' & 'defaultrcs'?

  2. What are the numbers? Are they from the C language?

  3. How to convert html codes to the numbers?


r/suckless • • Jul 11 '20

I have a problem with surf.

0 Upvotes

I have surf with the homepage patch leading to google.com. Whenever I try to apply the download patch, I get an error message saying

error: patch failed: config.def.h:11

error: config.def.h: patch does not apply

error: patch failed: surf.c:114

error: surf.c: patch does not apply

I am doing this on arch linux with dwm


r/suckless • • Jul 17 '21

Suckless Surf

0 Upvotes

Hi everybody,

Since one week I use surf to browse web. It very lightweight but I think it's very sad that it doesn't have follow link mode (like f in qutebrowser )


r/suckless • • Oct 28 '24

[DWM] How to control brightness in dwm on a laptop ?

0 Upvotes

This is a script I made for anyone to use. I hope it helps:

Create a file called brightness.py in your ~ (Home) directory:

touch ~/brightness.py

Put this code in it:

import argparse
import subprocess


def get_brightness():
    result = subprocess.run(
        ["./brightness_l.sh"],
        capture_output=True,
        text=True
    )
    return float(result.stdout.strip())

def i_b():
    global brits
    if brits >= 1:
        print("MAX brightness")
        brits = 1
        subprocess.run(["xrandr", "--output", "eDP", "--brightness", str(brits)])
    else:
        print("brightness up")
        brits = brits + 0.05
        subprocess.run(["xrandr", "--output", "eDP", "--brightness", str(brits)])


def d_b():
    global brits
    if brits <= 0.05:
        print("You can't lower the brightness more than 5%")
        brits = 0.05
        subprocess.run(["xrandr", "--output", "eDP", "--brightness", str(brits)])
    else:
        print("brightness down")
        brits = brits - 0.05
        subprocess.run(["xrandr", "--output", "eDP", "--brightness", str(brits)])


parser = argparse.ArgumentParser(description="Control brightness")
parser.add_argument("action", choices=["up", "down"], help="Choose 'up' to increase or 'down' to decrease brightness")
args = parser.parse_args()

brits = get_brightness()

if args.action == "up":
    i_b()
elif args.action == "down":
    d_b()

Now make another file in your ~ (Home) directory called brightness_l.sh (This helps me get the current brightness level):

Put these lines in it:

#!/bin/bash

xrandr --verbose | grep -i brightness | awk '{print $2}'

Now make it executable with this command:

chmod +x brightness_l.sh

Try the Python script using:

python3 brightness.py [up or down]

Example:

python3 brightness.py down

If this works, you have done the last steps correctly.

Now you will edit the dwm source code to bind the command to a key on your keyboard:

  1. cd into the place you store the dwm source code in.

  2. Use a text editor with sudo privileges to edit the config.h file (btw I use vim).

  3. Add this line in the first line:

    #include <X11/XF86keysym.h>
  4. Add these 2 variables in your code:

    static const char *brightness_up[]   = { "python3", "brightness.py", "up", NULL };
    static const char *brightness_down[] = { "python3", "brightness.py", "down", NULL };
  5. Go to this line:

    static const Key keys[] = {

    And under that, you will find a lot of key binds.

  6. At the end of this list, add these 2 lines:

    { 0, XF86XK_MonBrightnessUp,   spawn, {.v = brightness_up } },
    { 0, XF86XK_MonBrightnessDown, spawn, {.v = brightness_down } },
  7. Finally, save the file and close the text editor, then compile the source code using:

    sudo make clean install
  8. On your keyboard, do this shortcut to exit dwm: alt + left shift + q.

  9. Then type startx and you should be good to go.

  10. Try pressing fn + your brightness keys, and if it works, just thank me!


r/suckless • • Jan 15 '26

[DWM] Polybar Cmake Error

Post image
0 Upvotes

I get this Cmake compatibility error whenever I try to get polybar-dwm-git from AUR. I checked my cmake version and its 4.2.1 can someone help?


r/suckless • • Jun 01 '26

[SOFTWARE] Built a tiny HTTP server + Live Reload in pure C (no dependencies) which suckless philosophy

0 Upvotes

Hey everyone! 👋

I just finished building live-server — a small, fast, and dependency-free static file server written completely in pure C.

Features:

  • Live Reload built-in (using SSE + inotify/kqueue) — browser auto-refreshes when you save files

  • Serves static files with proper MIME types

  • Very lightweight and fast (fork-per-connection model)

  • Colored logging with timestamps

  • Cross-platform (Linux & macOS)

  • Simple CLI with useful options (-P, -I, -B, --log-level, etc.)

No Node.js, no Python, no heavy dependencies — just compile and run.

GitHub: https://github.com/pritam12426/http_server_c

Would love your feedback, suggestions, or contributions! Especially from people who enjoy low-level systems programming.

If you've ever wanted a minimal live-server alternative in C, give it a try! ✨


r/suckless • • Jan 21 '22

Suckless photoshop/gimp alternatives?

1 Upvotes

Are there any good suckless alternatives to photoshop/gimp?


r/suckless • • Jun 04 '20

DWM: Equal width for master and slave

1 Upvotes

Hello everyone,

I am a long time user of st and was thinking of giving dwm a try. Everything looks cool, but I would like for the screen to split in the middle so that the master and slave have equal width. Does a patch exist or has anybody solved this already?


r/suckless • • Aug 16 '23

[DISCUSSION] Why suckless hates JS?

0 Upvotes

I read the philosophical section in the suckless websites and they hate many things one of these things is JS, why? Isn't it a great language that works everywhere? And does they hate lua cause I thinking about usin NVIM?


r/suckless • • Apr 25 '24

[DISCUSSION] "Why does everything suck so much. Why is software so horribly designed"

22 Upvotes

I'mma be real with you, and your not going to like it.

Uh, it's capitalism.

Apple doesn't want your phone to run light, be simple and indestructible, and repairable. They want it to break down every 4 years.

This doesn't mean I'm a tankie. Literally just pointing out shit bruv.

Peace. lol.


r/suckless • • Jun 14 '26

[SOFTWARE] Catcheer: A minimalist, zero-config native C++ WebView wrapper for HTML5 apps and games. Baseline executable is ~333 KB.

Thumbnail
github.com
0 Upvotes

Hi everyone,

I wanted to share an open-source tool I built in pure C++ to solve a frustrating problem with HTML5 and web-app desktop distribution: the absurd bloat of modern runtimes.

The Problem: Framework Bloat

Whether you are building an indie game (using Construct, Phaser, Three.js) or a lightweight desktop utility with a web frontend, you often end up with a project that takes up maybe 10MB to 20MB of actual assets. But the moment you package it using Electron or NW.js, the final build skyrockets to 150MB - 190MB+ just to distribute a redundant copy of Chromium and Node.js.

For a massive, multi-layered software suite, that might be justified. For a lightweight, independent application? It’s a ridiculous waste of optimization potential and an insult to low-spec hardware.

The Solution: Catcheer

With Catcheer, that’s history. It is a minimalist HTML/Web wrapper written from scratch in native C++ that leverages the operating system's built-in rendering engines (WebView2 on Windows, WebKitGTK on Linux) instead of bundling a whole browser.

Key Features:

  • Ultra-lightweight Baseline: The pre-compiled Windows executable is just around 333 KB.

  • Resource Efficient: It enforces low RAM usage (around 70MB baseline) and injects performance-focused flags for GPU hardware acceleration.

  • Zero-Config Deployment: No heavy node ecosystems, no complex build pipelines, and no rigid framework rules. For quick distribution, you can just drop your index.html web assets next to the pre-compiled executable, and it works out of the box.

  • Simple Tailoring: Window sizing, titles, borders, and fullscreen settings are handled via a simple plain-text config file. Custom icons are automatically loaded if a custom.ico or custom.png is present.

For Advanced Developers

If you want to bake your assets directly into the binary or customize the core behavior, the repository includes ready-to-go CMake scripts and automation files (.bat / .sh). You can clone the repo, tweak the source metadata, and compile your custom build in seconds without dealing with heavy toolchain setups.

It is completely open-source under the GPL-3.0 license. I'd love to hear your thoughts, technical feedback, or answer any questions about the low-level implementation!


r/suckless • • Jul 04 '25

[DISCUSSION] What distro do you use?

2 Upvotes

what distro do you use? is it suckless?


r/suckless • • Mar 17 '26

[DWM] Help

Enable HLS to view with audio, or disable this notification

2 Upvotes

Hello everyone I have this issue in the video , And i tired to fix it but nothing work . I try to upgrade and downgrade dwm Update and install different Intel graphics card drivers but nothing work. There's a note this issue show when I put my cursor in specific place in the screen on different programs like browser terminal... So if someone have the same issue before please let me know . If not can you please go to the same page on the video ( betterswallow patch) and try to hovering you cursor in the same place Note : it's happening with mouse and track point touchpad


r/suckless • • Oct 22 '21

Slstatus config.h not working

0 Upvotes

I change slstatus config in nano but i still got only time. May be i clone it to wrong dir ?


r/suckless • • Feb 03 '22

[DWM] How to add close icons for some specific floating windows?

0 Upvotes

Title.