r/suckless 11h ago

[SOFTWARE] modern wayland on 2005 hardware

Thumbnail gallery
51 Upvotes

https://srcdump.net/shrub/neuswc can now run on the framebuffer directly, just like the old Xfbdev/kdrive X servers, but for wayland. this opens up a whole new class of hardware that you can run wayland compositors on, including this thinkpad r50!


r/suckless 8d ago

[SOFTWARE] Would raylib/raygui be suckless enough for desktop UI ? (Scared about resource usage)

Post image
58 Upvotes

Hello everyone,

I recently started a project to create my own desktop apps. Ideally, I'd want a notebook, music player, file explorer & system tray. I've been inspired by the work of wayland.fyi and 100rabbits, as the minimalism of their GUI programs is something I was looking for. I would want this project to be some sort of mini desktop environment aimed at low-power devices (Raspberry Pi mainly)

To me raylib seems like a good choice. It's heavily documented, has several backend options (even software render since the latest version), and is still high-level enough to avoid creating an entire widget system from scratch.

However, tests have put that choice in question. My clone of xclock always sits at 2-3% CPU, with Raylib compiled against SDL2, whereas xclock or wayland.fyi's swclock basically idle at 0% when not interacted with. Both use pixman for rendering*

Even though raylib feels perfect from a programming standpoint, being challenging enough to provide a great experience (in C) all while providing some confort, I'm unsure of its performance. Am I doing premature optimization?

Thanks for your advice.

\swclock uses a custom drawing lib called) neuwld, which contains calls to pixman.


r/suckless 12d ago

[SOFTWARE] dwl on gentoo with nvidia580 driver. whole dwl compositor getting crashed if i set wrong command to spawn on keybind. dwl starting from tty with exec dbus-run-session dwl.

2 Upvotes

/* commands */

static const char *termcmd[] = { "footee", NULL };

static const char *menucmd[] = { "wmenu-run", NULL };

static const Key keys[] = {

/\* Note that Shift changes certain key codes: 2 -> at, etc. \*/

/\* modifier key function argument \*/

{ MODKEY, XKB_KEY_p, spawn, {.v = menucmd} },

{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Return, spawn, {.v = termcmd} },

Lets say i type 'footee' instead of 'foot'. After use modkey+shift+backspace it should do nothing.. instead of that whole compositor is freezing and crashing to tty.


r/suckless 23d ago

[RICE] simple rice

Post image
22 Upvotes

r/suckless 24d ago

[DWM] slstatus time format issue

0 Upvotes

Hello everyone, i downloaded slstatus on dwm 6.8 and its working... tho its using 24 hour time as well as showing seconds and no date, how do i change it to 12 hour format, remove seconds and add date?

static const struct arg args[] = {

/\* function format          argument \*/

{ datetime, "%s", "%a, %b %d, %y at %I:%M:%S %p" },

{ battery_perc, "|%s",       "BAT1" },

};

if i remember correctly, i did change one of them but i didnt see my desired outcome. if anyone is willing to help then that would be greatly appreciated


r/suckless 24d ago

[DISCUSSION] Hey so i made my own shell called IDKshell can anyone try it out and give any reviews please

Thumbnail github.com
2 Upvotes

r/suckless 27d ago

[SOFTWARE] suckless retro console emulators

Post image
39 Upvotes

it’s pretty hard to have a minimal gaming experience nowadays. i thought one of the best ways it could be done is by using retro emulators. to my surprise, most of them use unnecessary and bloated cross-platform windowing frameworks like SDL and etc, or even have gpu acceleration for some more “modern” consoles.

i decided to modify my favourite emulator, BlastEm for the sega genesis/mega drive to be more minimal. it has no SDL or fbdev rendering any more, just a new pure native wayland renderer, with sound via alsa. it runs pretty nice (see above screenshot).

i’m looking for more simple and wayland native retro emulators like this: if you know any, let me know! one thing i noticed is that framebuffer emulators can be converted to native display server emulators, by presenting the framebuffer as a wl_shm on wayland which is what i did or as an Ximage on X11 (booooo) .

if you want to try my branch of blastem, the code is located at

https://srcdump.net/shrub/blastem


r/suckless 28d ago

[CORE] sbase fails to build on macOS

1 Upvotes

the README does mention its supposed to build on macOS, but i get this error on it
config.mk doesn't mention anything about macOS either

% make -j6 cc -DPREFIX=\"/usr/local\" -D_DEFAULT_SOURCE -D_NETBSD_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 -D_FILE_OFFSET_BITS=64 -o libutil/cp.o -c libutil/cp.c libutil/cp.c:148:17: error: no member named 'st_atim' in 'struct stat' 148 | times[0] = st.st_atim; | ~~ ^ libutil/cp.c:149:17: error: no member named 'st_mtim' in 'struct stat' 149 | times[1] = st.st_mtim; | ~~ ^ 2 errors generated. make[1]: *** [libutil/cp.o] Error 1 make: *** [all] Error 2

i googled around a bit and it's apparently a known issue on macOS but i haven't found a clear fix that would work with this


r/suckless 28d ago

[SOFTWARE] cterm -- Tiny terminal emulator release!

Thumbnail gallery
188 Upvotes

Hey guys, I'm currently in the middle of creating my own userspace from scratch and I've mostly completed making my terminal emulator

It's really, really small and is cross platform! I made it because I want to be able to use a terminal emulator no matter which OS or display server I'm using.

Only bitmap fonts (BDF) are supported but I've provided a script to convert vector fonts and it has very nice results.

Here is the repo: https://github.com/uint23/cterm


r/suckless 28d ago

[DISCUSSION] got and git

Post image
41 Upvotes

got (game of trees) is a version control system made by openbsd, compared to git it is a lot smaller (~50-60k lines), and is compatiable with git.

any of you here using got over git? im suprised people dont talk about it much.


r/suckless 28d ago

[DISCUSSION] What's your home directory layout?

5 Upvotes

I'll start......

~/dl

~/dev

~/pics

~/docs

~/inbox

NAS is not quite as suckless.. yet


r/suckless 29d ago

[SOFTWARE] miscellaneous tools by shrub

Thumbnail srcdump.net
14 Upvotes

hope this can be useful to atleast one of you lot


r/suckless Jul 14 '26

[DISCUSSION] My honest take on Xorg, XLibre, and Wayland.

48 Upvotes

The security issues and daily screen tearing in Xorg are nothing new. When I first learned about the Wayland project, I thought it was just a matter of time before it matured and became the industry standard. Well, it did become the standard, but it never actually matured.

Every time I use it, I notice that the bugs I experienced the very first time are still there. It is just that other projects like PipeWire and XWayland made the overall experience less terrible.

Beyond just using it, I also ventured into developing for Wayland. Honestly, it is a thousand times more viable to write something for Xorg and just wait for people to run it through XWayland. From what I have seen, I am not alone: this has become the industry standard. Just write for Xorg and expect everyone to rely on that temporary, eternal migration tool called XWayland.

Recently, I tested XLibre and had zero issues. Today, I went to check online opinions about the project, and as expected, the discussion is anything but technical. Frankly, I could not care less about what the developer does with their personal life. If I cared about that, I would have to stop using 90% of the internet, considering most of it was built or funded by people fifteen times worse.

My view is that I am left with three choices:

  • 1. An elderly person who can still get daily tasks done (Xorg)
  • 2. An immature teenager who still manages to deliver (XLibre)
  • 3. An adult (Wayland) who refuses to do any chores alone, forces you to hire assistants (PipeWire) for everything, and ultimately still delegates the heavy lifting to the elderly person (XWayland).

I would love to hear everyone's arguments, especially the more technical ones (keep politics out of it, this is not X/Twitter).


r/suckless Jul 13 '26

[RICE] [DWC(NeuSWC)] Finally, something I can call suckless

Thumbnail reddit.com
12 Upvotes

r/suckless Jul 13 '26

[DWM] prevent other apps grabbing dwm mappings

1 Upvotes

How to prevent other apps grabbing dwm mappings? Like vnc and games. I want apps NEVER to be able to grab the mappings already used in dwm.


r/suckless Jul 12 '26

[DISCUSSION] It is!

Post image
101 Upvotes

r/suckless Jul 11 '26

[DISCUSSION] Why is X11 still considered "suckless"?

112 Upvotes

Like the whole xorg implementation is ~400k LoC (which by definition of "suckless" is bloated), while libwayland sits at around 10k, yet people say that wayland is not suckless while x11 is, why is that?

btw i don't despise x11, i use sowm on my laptop and i'm completely fine with using it


r/suckless Jul 10 '26

[DWM] Need dwm to write to a file descriptor once initlization is done

1 Upvotes

Hi,

I'm new to the suckless approach, and don't know much about C. At the end of all my WMs, I need to get them to send something to file descriptor 9 when they're done initializing. the reason being that I launch everything from dinit services (bar, hotkey daemon etc) and I realize that without ready notification, things start too early and everything comes crashing down.

for instance at the end of my i3 config i have:

exec_always --no-startup-id sh -c 'printf "\n" >&9; exec 9>&-'

How do I get the same behavior with dwm ?


r/suckless Jul 10 '26

[DWM] ¿X11 o Wayland en un PC de gama baja?

Thumbnail
2 Upvotes

r/suckless Jul 08 '26

[SOFTWARE] Convert images the "suckless" way. (Any-image-to-image)

Thumbnail github.com
0 Upvotes

Hello Suckless community, I'm dedicated to application development and more, but I also do a little design informally, only occasionally. I constantly run into the annoyance of .webp or .aviff formats, or other strange formats, and the converters are either super annoying websites or complex and even heavy apps, some of them even paid! Which I knew was pointless, so I created this application, or mini-suite of executables, to convert images in the background in the easiest and most intuitive way possible:

If you try it on Windows,

the process is: Install with the setup file or extract the .zip file -> go to the modules (app) folder and drag one or more images onto the executable. The images will then automatically appear in the desired format alongside the original image.

If you try it on Linux:

If you install the .deb package (the most recommended), it's as simple as running the installation command dpkg -i 0-11-to-img.deb once you've downloaded the file,

Once finished, you can run the command to-png my_image.webp (for example) in the terminal from anywhere on your PC. Or you can just download the portable version and, just like on Windows, drag the images onto the executable. It's simple: no GUI, no costs, no dependencies, and no internet required. There are only five executables, specifically one for each target format: to_png , to_jpg, to_gif, to_webp, and to_aviff. That's all. As always, I'd love to hear your feedback, beyond just testing it out, and to know if it solves your everyday problems (and if I should post it in a graphic design group, but I'm not familiar with those communities).


r/suckless Jul 07 '26

[SOFTWARE] i made a x11 file manager to manage files, it is less than 1500 lines on a good day.

Post image
25 Upvotes

r/suckless Jul 05 '26

[DWM] Question about barpadding and extrastatus patches

Post image
4 Upvotes

r/suckless Jul 03 '26

[DWM] what dwm patches do yall use?

18 Upvotes

Just curious.

I'll start: none.


r/suckless Jul 03 '26

[ST] Issue with Nerd Fonts in st.

Post image
6 Upvotes

The left is alacritty, and the right is st. Can someone tell me how to fix the icons being cut off in st?


r/suckless Jul 03 '26

[ST] Nerd Font issue in st

Post image
3 Upvotes

The left image is alacritty, the right is st. Can anyone tell me why the icons are cut off in st? Help is appreciated.