13 ms·
Suckless.org: software that sucks less
- alkonaut 2y ago> surf is a simple web browser based on WebKit2/GTK+. It is able to display websites and follow links. That’s… certainly a low bar for not sucking
- jauntywundrkind 2y agoSoftware that has an attitude & advertises based off of it.
- 01HNNWZ0MV43FF 2y agoPersonally I prefer gay furry software for that purpose
- maximus-decimus 2y agoThere's a guy who wrote a AutoHotKey IDE in autohotkey (AHK Studio). I knew it was quality when I saw his avatar was a My Little Pony character. Back then I think a single 10k line ahk file. I just went to his site and there's no pony anymore though :( Surely a sign the quality has decreased. https://www.maestrith.com/ahk-studio/ https://www.maestrith.com/ahk-studio/
- gradientsrneat 2y agoDoes there exist a furry equivalent of suckless.org? /srs
- bmicraft 2y agoThe rust ecosystem might come pretty close, I can recommend alacritty for example
- sitkack 2y agoOne can embrace minimalism without all of this https://news.ycombinator.com/item?id=25751853 https://news.ycombinator.com/item?id=25751853
- indrora 2y agoOr the self-reich-ousness of folks like Suckless[0], like telling the OG author of redare (pancake, who is a very competent malware reverse engineer) he's an idiot [1]. [0] https://tilde.team/~ben/suckmore/ https://tilde.team/~ben/suckmore/ [1] https://dev.suckless.narkive.com/mEex8nff/cannot-run-st#post3 https://dev.suckless.narkive.com/mEex8nff/cannot-run-st#post...
- Y_Y 2y agoI had a look at your links, and I think the assertion that the people involved in Suckless are National Socialists is insufficiently supported. I don't know these people outside their software, but if you're going to accuse someone of being part of some reviled political group I think you should have something stronger than "they went on a hike carrying torches around the time some extremist group had a march with torches".
- sunshowers 2y agoPersonally, I would avoid even the appearance of impropriety by simply never going on a hike carrying around torches. Headlamps are better anyway.
- Y_Y 2y agoIsn't that mad though? I went on a couple of torch walks years ago before there was a an "alt" right and thought nothing of it, it was some apolitical fun activity friends invited me to. No Ody had flags or anything to shout. To think that you can spoil that by having a couple of hundred weird outsiders in Charlottesville associate themselves with a similar torch!
- xmichael909 2y agoYah, I don't know, DWM looks like it kinda sucks imho...
- snailmailstare 2y agoIf the goal were not to suck at all a GUI would be the wrong choice of genre. But I do hope the st buffer overflow fixes my st usage in builds..
- jauntywundrkind 2y agoI used it for a year or two before I switched to wmii. It was pretty great... In like 1997 or so.
- postepowanieadm 2y agohttps://github.com/siduck/chadwm https://github.com/siduck/chadwm
- chjj 2y agoHeresy.
- SoftTalker 2y agoI've used awesome for years. Love it, and never really looked at anything else since I found it. It's based on a fork of dwm I guess, so maybe I would like dwm also. https://awesomewm.org/ https://awesomewm.org/
- marrs 2y ago
- lugu 2y agoIt's been around ten years that my desktop barely changed except a few pixels thanks to dwm and dmenu. I am a bit exaggerating but I love the stability that minimalism brings. If only they could make a pdf viewer...
- deleted 2y ago[deleted]
- vq 2y agoAre you aware of Sioyek[0]? It's a PDF viewer with a fairly minimal UI and a focus on keyboard interaction. [0]: https://sioyek.info https://sioyek.info
- SoftTalker 2y agoThanks, I love finding little nuggets like this here.
- naasking 2y agoSumatraPDF: https://www.sumatrapdfreader.org/free-pdf-reader https://www.sumatrapdfreader.org/free-pdf-reader No frills, super fast and small. Been using it on Windows for years.
- evanjrowley 2y agoI recently downloaded SumatraPDF to open a PDF on Windows XP. Glad they still host a release that works on it. :)
- Koshkin 2y agoNeed wine (or something stronger) to run it on Linux.
- BoingBoomTschak 2y agoEh, it vendors an old version of mupdf. Very bad idea, considering that it's a C program/library handling a notoriously complex format often shared on the Internet. Personally, I just use mupdf (which I sandbox through bubblewrap).
- clintonc 2y agoFrom the page about dwm: > Because dwm is customized through editing its source code, it's pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions. ...sucks less than what? :) Simple is good, but simpler does not necessarily mean better.
- baruchel 2y agoDWM is obviously not competing with GNOME or KDE and is quite a niche window manager. However, by focusing on being a simple, hackable tool—rather than adding menus, settings, help pages, and so on—it remains reliable and easy to maintain. Each DWM user typically has their own set of carefully selected patches and can (re)compile/(re)install it as a single binary in just two or three minutes. No one is forced to use it, but the overall experience is quite convincing.
- marrs 2y agoIt does in this case.
- nicebyte 2y agoyeah no. I've mainlined dwm + dmenu all the way back in 200x, I've written tons of makefiles and have the scars to prove it. These days I'm off of this minimalism crap. it looks good on paper, but never survives collision with reality [1] (funny that this post is on hn front-page today as well!). [1] http://johnsalvatier.org/blog/2017/reality-has-a-surprising-amount-of-detail http://johnsalvatier.org/blog/2017/reality-has-a-surprising-...
- snailmailstare 2y agoI like these tools because they are minimalist.. I don't really care for the fact that they are C/make oriented and would rather help someone rewriting them in go or rust than show that I have a non minimal amount of scar tissue to work with a needlessly complicated past.
- nicebyte 2y agomy comment isn't about things being written using c/make/whatever, it's precisely about the faulty assumption that complexity is needless.
- snailmailstare 2y agoOh then I totally disagree (or don't understand why you would need to see a psychoanalysis of a blacksmith to evaluate their offerings?). Many projects have places that need some complexity, configuration or advanced tools that doesn't imply the hardware store should stop selling average hammers or make you wade through an aisle of crap from providers like peloton to see if they better meet your needs. (I.e. show me where in the article he replaced a standard tool like the hammer or pot with a complex one customized to exactly what he wanted to solve or explain why that advanced tool wouldn't suck given that there's a lot more details than one would expect.)
- skydhash 2y agoI just went back to fedora+gnome on my PCs from FreeBSD+(tiling wm). I think minimalism is good when your workflow is very focused and you already know the requirements for your stack. But if you have unexpected workflows coming in everyday, the maintenance quickly becomes a burden. Gnome may not be perfect, but it's quite nice as a baseline for a working environment.
- imiric 2y agoThe drama around this community is silly. I use these tools because I absolutely love their philosophy on software, and software alone. I couldn't care less what the authors personal beliefs and political leanings are, or who they offended on IRC or social media. I recently spent a few hours evaluating different terminals. I went back to urxvt, tried Alacritty again, gave Ghostty a try, and spent quite some time configuring Kitty. After all this I found that they all suck in different ways. Most annoying of all is that I can't do anything about it. I'm not going to spend days of my life digging into their source code to make the changes I want, nor spend time pestering the maintainers to make the changes for me. So I ended back at my st fork I've been using for years, which sucks... less. :) It consists of... 4,765 SLOC, of which I only understand a few hundred, but that's enough for my needs. I haven't touched the code in nearly 5 years, and the binary is that old too. I hope it compiles today, but I'm not too worried if it doesn't. This program has been stable and bug-free AFAICT for that long. I can't say that about any other program I use on a daily basis. Hhmm I suppose the GNU coreutils can be included there as well. But they also share a similar Unixy philosophy. So, is this philosophy perfect? Far from it. But it certainly comes closer than any other approach at building reliable software. I've found that keeping complexity at bay is the most difficult, yet most crucial thing.[1] [1]: https://grugbrain.dev/#grug-on-complexity https://grugbrain.dev/#grug-on-complexity
- 9283409232 2y agoWhenever suckless comes up, I see more people saying "the drama is silly" than I do actual drama. I don't even know what drama people are talking about.
- imiric 2y agoI'm not sure how you missed it, since it comes up in practically every Suckless-related thread[1], including this one. The drama is mostly in social media and IRC circles, though it tends to spill over here as well. [1]: https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=%22suckless%22&sort=byPopularity&type=story https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
- 2y ago
- saidinesh5 2y agoThe biggest impact suckless had on me was via. Their Stali Linux FAQ: https://sta.li/faq/ https://sta.li/faq/ . They've built an entirely statically linked user space for Linux . Until then i never questioned the default Linux "shared libraries for everything" approach and assumed that was the best way to deliver software. Every little cli tool i wrote at work - i used to create distro packages for them or a tarball with a shell script that set LD_LIBRARY_PATH to find the correct version of the xml libraries etc i used. It didn't have to be this way. Dealing with distro versioning headaches or the finnicky custom packaging of the libraries into that tar ball just to let the users run by 150 kb binary. Since then I've mostly used static linking where i can. AppImages otherwise. I'm not developing core distro libraries. I'm just developing a tiny "app" my users need to use. I'm glad with newer languages like Go etc... static linking is the default. Don't get me wrong. Dynamic linking definitely has it's place. But by default our software deployment doesn't need to be this complicated.
- hyperbrainer 2y agohttps://github.com/oasislinux/oasis https://github.com/oasislinux/oasis is also a a small statically-linked linux system using musl and the like. Curious about your thoughts on that?
- Levitating 2y agoAlso the stali approaches to filesystem hierarchy is aspiring https://sta.li/filesystem/ https://sta.li/filesystem/ > AppImages AppImages require a large amount of (obsolete) dependencies to run, making their portabiltiy practically worthless. Newer immutable distros like Aeon don't ship the necessary packages to run an AppImage.
- kazinator 2y agoTwo things: 1. You can bake the LD_LIBRARY_PATH into your executable with the -rpath mechanism. 2. Both rpath and LD_LIBRARY_PATH expand certain tokens such as $ORIGIN. $ORIGIN expands to the location of the program. So you can (for instance) set a rpath of $ORIGIN in your executable, and then it will look for its libs in its own directory. Just like is the intelligent default on on you-know-what Redmond operating system everyone rags on.
- znpy 2y agoI wonder how they are doing in the era of X11 leaving its spot to Wayland.
- christophilus 2y agoMy suckless stack is Niri (Wayland WM), Foot (terminal), and Neovim. The suckless folks wouldn’t call it suckless, but it does suck less than anything else I’ve used on Wayland.
- woodrowbarlow 2y agodwl is a great wayland port of dwm, maintains the original philosophy well
- Gormo 2y agoI assume they're doing fine, since that isn't really happening.
- flykespice 2y agoIt seems wayland has sort of died off... you rarely hear it nowadays. It failed as replacement.
- int_19h 2y agoWayland has been the default for Ubuntu for several years now, and Ubuntu is by far the most popular desktop Linux distro.
- klardotsh 2y agoYou don't hear about it much because it won. The developers mostly moved over to Wayland, it's the default in most places now, most (not all, sure) workflows Just Work, and often work well... dunno where you get the idea it failed as a replacement. It took a decade and a half, but it finally landed.
- swfsql 2y agoI think I miss a suckless but async and for everything (lots and lots of apps). To the point where each of those different apps are single thread, and in such a way that they collaboratively all share the same single thread. So I'm looking for a single app that has many library-apps inside of it, all brutalistic, async and single thread.
- ElectricalUnion 2y agoIs this reinventing cooperative multitasking + lack of process-based memory protection with more steps? The reason why (almost) everyone migrated away to preemptive multitasking + memory protection is because it only takes one piece of code behaving sightly different from what the system/developer expected to bring the entire thing down to a halt, either by simply being slower that expected, or by modifying state it's not supposed to.
- otabdeveloper4 2y agoSingle threading sucks. It's 2025 and even low-end computers have dozens of hardware threads. I don't want to compute like it's 1995 anymore.
- swfsql 2y agoIf it sucks we can call it suckmore then
- tombert 2y agoI agree, but there is a sort of beauty in programs that were written for absurdly slow hardware. There was a thing on HN like seven years ago [1] that talked about how command line tools can be many times faster than Hadoop; the streams and pipelines are just so ridiculously optimized. Obviously you're not going to replace all your Hadoop clusters with just Bash and netcat, and I'm sure there are many cases where Hadoop absolutely outperforms something hobbled together with a Bash script, but I still think it serves a purpose: because these tools were written for such tiny amounts of RAM and crappy CPUs, they perform cartoonishly fast on modern computers. I don't like coding like it's 1995 either, and I really don't write code like that anymore; most of the stuff I write nowadays can happily assume several gigs of memory and many CPUs, but I still respect people that can squeeze every bit of juice out of a single thread and no memory. [1] https://adamdrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html https://adamdrake.com/command-line-tools-can-be-235x-faster-...
- unclad5968 2y ago> Do not use for loop initial declarations > Variadic macros are acceptable, but remember Maybe my brain is too smooth, but I don't understand how for(int i = 0...) is too clever but variadic macros are not. That makes no sense to me.
- zzo38computer 2y agoAt least in my opinion, "for loop initial declaration" is especially useful in macros (although many programs will never need such macros, they are especially useful when you do have them). An example of such a macro is the following macro (the loop and the variable declaration will both be optimized out by the compiler; I have tested this): #define lpt_document() for(int lpt_document_=lpt_begin();lpt_document_;lpt_document_=(lpt_end(),0)) Another macro (which is a part of a immediate mode UI implementation) is: #define win_form(xxx) for(win_memo win_mem=win_begin_();;win_step_(&win_mem,xxx))
- astrobe_ 2y agoThat's a bad coding style document. There's no rationale given, except for a bunch of references at the top, which are clearly argument from authority. I think the no "loop initial declarations" is for consistency with "all declarations at the top". Other coding style guides favor "declarations as close as possible to first use", including guidelines for mission critical systems (if you resort to argument from authority I have some too...) [1]. As much as I like Suckless, this section is just pet peeves that can safely be ignored; unless you submit a patch to a project that aligns with it. [1] https://pvs-studio.com/en/docs/warnings/v2551/ https://pvs-studio.com/en/docs/warnings/v2551/
- flykespice 2y agotheir rationale is very inconsistent: tells you to use c99 but you must place declarations at the top, and you can't use C++ style // comments (introduced in c99 aswell). Why not force c90 altogether then?
- guenthert 2y ago> There's no rationale given True and it would indeed be desirable that it were. Here I go out on a limb and assume it's because someone got bitten by attempting to use the loop index outside the loop (common for search operations) while declaring the index within and outside the loop. A bug (gcc and clang can warn about using -Wshadow, but which sadly isn't part of -Wall) which might easily occur when multiple people edit the code over a longer time-span.
- tomtomtom777 2y agoSuckless has a beautiful coding philosophy and I wish all software was written with this in mind, but surely a window manager and X-menu aren't really the best showcases? These aren't the types of programs where complexity is the biggest enemy. I'm not claiming I could write these tools as simple as these, but surely the importance of these paradigms arise when actual complicated software is needed?
- brianmurphy 2y agoYou have to see what already exists in X11-land before judging that simple wasn't hard to do. (e.g. xterm)
- deleted 2y ago[deleted]
- sylware 2y agodwm and st, everyday.
- dokyun 2y ago[flagged]
- LAC-Tech 2y agoI like that these guys are here. I definitely appreciate what they're doing. But I think I like software that sucks a little bit. BSPWM with its config as shell commands to the bspc daemon is about right; re-compiling C code is a bit much.