Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Suckless conference 2015 (suckless.org)
77 points by vezzy-fnord on Nov 15, 2015 | hide | past | favorite | 59 comments


Hope you guys had a good time. I still miss Uriel. I hope someone stood in for him and ripped your ideas apart, particularly the C++.


I love the ideal of keeping things simple. I did my first steps in C studying dwm code and making my own window manager.

That said, simplicity can obviously be taken too far. These tools do not enough to be usable in practice.

Why would I want a binary which does nothing besides warping the X11 pointer? At least do a little more, like xwit. (not that I've used either)

dwm also turned out to be impractical for me. Didn't work well for some applications like Gimp. Tiling terminals I also find impractical because I like them to be a certain size (80 columns) and that's not supported by tiling. The most important wm action for me is switching and rotating between 2-3 windows (simultaneously visible _as much as possible_). Stacked windows and Alt-Tab turn out to be better at that kind of thing.

Just tried that "sent" tool which I find nice and kind-of-usable. But so many lines of C. And a hand-rolled UTF-8 parser which discards text silently after decoding errors. Couldn't that be hacked in Python as a much shorter throw away script? Extreme portability is bogus if the software can be replaced in a few hours work. Plus, if you neglect to use higher-level libraries and tie yourself to low-level POSIX and X11, portability actually suffers.


because I like them to be a certain size

This was the biggest annoyance when I (briefly) tried a tiling WM - they are definitely not for those who like resizing windows independently and overlapping them so as to show only the relevant bits without having to resize.


In case you ever want to try one again; dwm most definitely supports resizing windows independently and floating them. See http://dwm.suckless.org/dynamic_window_management.


It was tedious last time I tried because you had to remember what windows are tiled and what floated and explicitly switch between the layers. And only rotating was supported, not Alt-Tab style LRU switching. Alt-Tab works the best for the most common case of 2 "hot" windows because you don't have to remember the order of the windows regarding rotation.


I use dwm with gimp, it is a little bit of a pain but I'm pretty used to it at this point so for me it's usable. Granted I don't need to do anything in depth.


Suckless inspired my naming of sxi: https://github.com/serprex/sxi & dwm served as the base from which I learnt to create nobox: https://github.com/serprex/nobox

Good stuff. Though seeing dwm have a null-check-before-free made me squirm. Have been using st for awhile now, it's nice, bit of a hassle to get backspace working & I sometimes miss being able to scroll back over console output

The only-one-file philosophy seemed to be a bit of a hassle where st had to turn down a wayland patch. One would think that it could be split into st-common.c, st-x11.c, & st-wl.c where the rendering backend is abstracted

stalin is neat but I personally feel using git to distribute binaries suboptimal. I'd prefer if there was a /build directory where one could git clone submodules & run a /build/install.sh to update the system. But that'd be something else by then I suppose & I haven't looked into it _that_ much to really critique

surf seems like a cop out using webkit


"Suckless inspired my naming of sxi: https://github.com/serprex/sxi & dwm served as the base from which I learnt to create nobox: https://github.com/serprex/nobox"

Any screenshots of nobox that I could see ?


Not really. It's chromeless, doesn't render anything. So you boot into a black screen & Alt+Q opens st in the upper left corner (this could change by modifying nobox's st invocation with geometry options)

I have st invoked in my xinitrc so that st is open as soon as I start nobox. I don't use a file manager so everything I do happens through st besides opening firefox with Alt+A or showing time with Alt+C (I use to have more shortcuts but over time have reduced my usage. I use to have Alt+S to open SciTE but have since transitioned to vim)

Anyways since you asked here's a screenshot I took just now after having opened GIMP: http://imgur.com/pjSe3pN

Since nobox isn't a tiling window manager it doesn't have any issues running GIMP in multi-window mode, besides my preference for unique mode: http://imgur.com/Qf2PvhO


thanks - appreciated!


c projects that fit in 4 screens. Wonderful.


suckless is awesome! xmonad would totally suck without dmenu, i found zathura because of their "rocks" page, and st[+] has unicode support now, apparently?! might be time to switch from urxvt...

i'm not saying "suckless all the things!" these people have made my daily life easier, though.

[+] http://st.suckless.org/


I did a small experiment to see if st would actually be much snappier. Font rendering was a little worse but that was tolerable.

ST is fast (as expected)

  $ time $(for i in `seq  1 100`; do st -e true &> /dev/null ; done)
  real	0m5.493s
  user	0m4.417s
  sys	0m0.647s
URxvt is a little slower (but traditional wisdom should tell you that if it is actually so small that you need to measure it to perceive the difference, the difference probably doesn't matter)

  $ time $(for i in `seq  1 100`; do urxvt -e true &> /dev/null ; done)
  real	0m11.099s
  user	0m9.780s
  sys	0m0.853s
URxvt client (with a separately launched urxvtd) is faster than st.

  $ time $(for i in `seq  1 100`; do urxvtc -e true &> /dev/null ; done)
  real	0m4.593s
  user	0m0.007s
  sys	0m0.017s
Given how solid urxvt has been for me over the years, and given that I run urxvtc already, I don't see why switching to st would help (the argument against featuritis can obviously be made, but urxvt is fairly minimal as well).

Note: I do not know how it would affect it, but I also have a .Xdefaults that sets fonts, colors etc for URxvt.

Edit:

adding xterm to the comparison since some sibling comment mentioned it

  $ time $(for i in `seq  1 100`; do xterm -e true &> /dev/null ; done)
  real	0m8.525s
  user	0m2.777s
  sys	0m0.770s


I wasn't talking about startup speed as that can be ignored given the kind of shells and configs we use these days which will consume most of the start time.

What I was talking about were things like how much memory overhead the emulator has and how fast it paints stuff or how quickly it responds. Some things were slower in urxvt and then some things didn't work as correctly as in xterm, so I didn't bother configuring urxvt for more speed. st, on the other hand, wasn't faster and actually was heavier memory-wise when I tried it the last time.


I ran some benchmarks with perf stat a while back, consisting of displaying a multi-MB text file on screen. st was a lot slower than urxvt, but on par with VTE based terminals. urxvt has other problems though, so I'll stick with st.


xmonad has a built-in (xmonad-contrib) program launcher prompt that doesn't require an extra program and is more comfortable to use. There are other prompts included as well and you can build more prompts in Haskell. st used more memory and was slower than xterm last time I tried. I try using urxvt or st and only xterm works without problems or slowdowns. We may be using it in different ways and exercise different features of the terminal emulators :).


> st used more memory and was slower than xterm

Since st has no scroll buffer, theoretically it's impossible for st to consume more memory than xterm. If st does eat up more, it should be because of its screen buffer, whose size is decided by the size of its window.

Also, yes, the rendering portion of st is not the fastest. I know it pretty well because I implemented it like an year ago. It has been improved, but it's still kinda hacky due to lack of proper Unicode layout engine (or normalization). And what makes things worse is that existing layout engines(ICU, harfbuzz, etc) are just "sucks" for suckles community, while making a new one is not feasible AFAIK.


I don't understand what you're saying about the three different buffers and if you mean that there's a hidden buffer I don't see in xterm but which is used somewhere else in the stack.

I exclusively use bitmap fonts in terminals and editors for crisp and clear text and cannot get bitmap fonts to work in st config.h anymore.


> xmonad has a built-in (xmonad-contrib) program launcher prompt

kinda-sorta...

http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Prompt-A...

doesn't do exactly what i want... i'm looking for something more like this

http://lpaste.net/145311

, except the completions list and tab stuff don't work

aaand, i have to get back to "web" technologies :)


This is your easy Mod-p replacement: http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Prompt-S...

You can give it something else than defaultXPConfig to customize the look and completion behavior: http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Prompt.h...


I just switched from dmenu to the contrib prompt, only thing to look out for is that the searchPredicate function of the XPConfig doesn't actually seem to do anything.

Setting:

  searchPredicate :: String -> String -> Bool
  searchPredicate = \_ _ -> False
seems to make no difference.

And the default is:

  searchPredicate = isPrefixOf

Patching and recompiling with this patch[1] mentioned here[2] seems to fix the issue.

[1]: https://code.google.com/p/xmonad/issues/attachmentText?id=39... [2]: https://code.google.com/p/xmonad/issues/detail?id=393


Care to resubmit that patch at https://github.com/xmonad/xmonad-contrib? That way it can be part of the 0.12 release.


urxvt with the daemon (urxvtd & urxvtc) is blazing fast, in my experience. That said, it's not fun when all my terminals suddenly freeze (happens to me once a year, roughly).


It's faster to start for sure. I don't doubt that it's faster for you, since many users praise urxvt's speed over xterm. It just hasn't been the case for me.


> you can build more prompts in Haskell

Trying to customize xmonad is why I use i3 now.


I've learnt basics of Linux with dwm + dmenu. It's awesome. I long for the day dwm style Windows management is smooth on Windows. It's possible to create many virtual desktops in Windows 10 but windows snapping thing isn't close to the functionality of dwm imo.


'st' falls short in very basic real life [for me] test - paste-ing 2-5MB of the text via ssh to the remote router(yes I'm more than aware about about other methods, those are emergency cases when I have to connect via someone's laptop with data modem). 'st' just freezes, I've reported that at the IRC channel, got some debugging tips, problem confirmed but as I see in git hasn't been fixed. Need to say `st` is not alone with that problem - gnome terminal has it, perhaps overs. Old school xterm and surprisingly 'konsole' pass that test.


I wanted to like st, but vim was kind of broken in it. I'm sure the suckless guys would tell me vim sucks and I should use vi instead. I think it's great that we have people with hard-line, absolutist views about technology. I might not want to live in their world, but they're exploring possibilities the rest of us would never consider.


Looks like being a minimalist FOSS community, they would only write in C and C++? No Python, Java?


I think they'll avoid C++ as well: http://suckless.org/sucks/


>The suckless way is to have a short usage and a descriptive manpage. The complete details are in the source.

Can't agree with that. Also this reminds me to the chapter about documentation in the "UNIX Haters Guide"[1]. (I recommend everyone read it for an alternative viewpoint about UNIX, although most of it is obsolete)

The GNU info system is actually a pretty good attempt to fix the mess that is classical UNIX documentation. No, the source shouldn't be a documentation source. It's for programmers only, and it can be a reference, like man pages. A good info page can provide a full manual from which someone that is not familiar with the program/programming interface can learn how to proceed from scratch. Also, unlike man pages, info pages are hyperlinked. I agree that the info program itself is not very user friendly tho, maybe that's the reason it's not as popular as man pages or HTML documentation in the project website.

[1]: http://richard.esplins.org/static/downloads/unix-haters-hand...


> Can't agree with that.

You don't have to. When I first found out about the suckless project, it seemed completely inaccessible, due to the lack of in-depth documentation. After reading around a bit, it seems intentional. My impression was that suckless doesn't aim for quantity, but for quality, even among its userbase, hence the lack of documentation is an entry barrier, a minimum of technical literacy required to get in. Look at the source and you don't need a wiki. My gut reaction says, that's quite elitist - which itself is negatively connoted when everyone aims for widespread adoption and usability. In the end, I agree with this idea. Software is supposed to serve a purpose. It doesn't have to suit everyone. It can be for a selected few, and still be a great project. What changed my mind was that dwm doesn't use configuration files. I came from openbox and more than once broke the menu because of a syntax error in the xml-based config. In dwm, you change the source config and recompile. This way, any and all errors are returned to you, you can fix it and try again, without ever risking any configuration issues or breakages. They do the same with st, their terminal. I'm absolutely convinced by this approach.


I like the underlying idea of suckless- and would put them in the same category as an academic attempt to build an OS, language et al in 20,000 lines of code.

There ought to be a set of principles we can extract - KISS probably. Ignore project plans ?


That plus some attitude?

> 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.


"Elitist" != capable of modifying and compiling code.

That's literacy vs illiteracy. I approve


They mention that both GCC and Clang 'suck', but I don't see alternative in the 'rocks' category.


scc, suckless C compiler, is in progress: http://git.suckless.org/scc


The source reminds me of the BSD one... I'm a little surprised that the parser is a plain recursive-descent one instead of operator-precedence/precedence-climbing[1][2] since the latter definitely feels like something the Suckless philosophy would highly agree with: extremely concise and elegant.

[1] https://www.engr.mun.ca/~theo/Misc/exp_parsing.htm

[2] https://news.ycombinator.com/item?id=8558822


I think defining yourself by a negative is not a good place to start.

But good luck to them.


This comment is worthless. This obsession HN has with picking apart simple details like this to achieve some sense of superiority based on your preference to name things differently is ridiculous. Judge them based on the merits of the software they write, not based on the name they use for it. After all, Linux's creator must have been an egomaniac to name it after himself - it'll never take off.


After all, Linux's creator must have been an egomaniac to name it after himself - it'll never take off.

Curiously, Linus did consider naming it "Linux" as too egotistical, and chose "Freax" instead. It was a colleague who renamed it when uploading to the FTP server.

I agree with your point, by the way.

https://en.wikipedia.org/wiki/History_of_Linux#Naming


The "Suckless" moniker gives a hint that they're about software quality, and is cute and playful enough that I actually like it.

But having spent a few moments clicking around their site, I have literally no idea what the basic idea is, who they are, what they've accomplished, or why it might be interesting to learn more about them.


Seriously? The first 2 paragraphs of the home page:

Home of dwm, dmenu and other quality software with a focus on simplicity, clarity, and frugality.

Read more about our philosophy and join us on the mailing list.


Sorry, but what the heck is dwm, dmenu? Where is your philosophy statement that can be read? I'm sure everything you're doing is great, but people aren't going to join a mailing list before they at least have a real interest in what you're doing. The current web page does very little to inform someone starting from zero. At least someone as thick as me. Cheers.


> Where is your philosophy statement that can be read?

This demonstrates that you did not even visit the suckless.org home page [0]. How do I know?

Because the word "philosophy" in the two sentences preid24 quoted links to the very thing you're asking for. It's even a boring-old anchor-tag-link in almost-traditional hyperlink blue on traditional white that reacts on hover.

> [W]hat the heck is dwm, dmenu?

Also answered by the hyperlinks on the suckless home page.

[0] http://suckless.org/


I didn't go back to the web page before answering the reply, you're right. Still haven't, since i've yet to hear something compelling that I missed the first time.

An abstract philosophy for example, isn't going to leave an impression without some concrete examples of its principles in action.. a screen shot maybe, of the applications mentioned with an explanation of how and why they are better than the alternatives.

N.B. "Take a hike"... this does not seem like a friendly community at all.


> Still haven't, since i've yet to hear something compelling that I missed the first time.

That's a pity. You might actually -I don't know- get the answers to your questions.

Whatever. I'm not here to spoon feed you. Take a hike.

Edit: To reply to your edit: http://www.catb.org/esr/faqs/smart-questions.html (Not that ESR doesn't have his share of quirks.)


You can take what you will from my reaction to your website, or nothing. If you think nobody important will ever share my view, then there's no harm in ignoring me :-)

Sorry that the tone between us became somewhat combative, since that was never how I felt about things for a moment.

Cheers.


Time vampires often feel that they have the best of intentions, and are often unaware of what they are.

Having said that, even the best of us finds that he has accidentally turned into a time vampire on rare occasion.


Hi, I love you. You are a normal person on HN trying to honestly make sense of the world of technology, and not taking any crap from all of the "Haha, U srsly don't know about xvzz and zxcz, LOL" types of people around here. I just love that!


Thanks. Someone seems to think i'm filled with "ire", when all I was expressing was my genuine experience of not feeling engaged or intrigued by a website. The responses so far seem very defensive.


It's a pity that your admiration is misplaced. tux1968 has let their ire prevent them from launching even the most basic fact finding mission. (That is, actually visiting the home page of the project about which they're asking questions.)


The trouble is that there are many ways not to suck. It really doesn't provide much information.

And my wish for them to do well really is sincere.

ps 1. do you know that your comment to my comment is a self-referential? You're using the same mode as me. Which is fair enough in a way :-)

2. I assure you that I am no way representative of HN so your use of that synecdoche is misplaced.


How much information does "Google" or "YCombinator" provide? It's just a name, if you want a description, you can just go to their home page.


Well, Google is not called 'notYahoo' or searchThatDoesNotSuck.

So that's all I'm saying.

I used to do it a lot, so maybe that's why I bother commenting.

Mainframers sneer at Unix. Unix people sneer at Windows. BSD people sneer at Linux. Plan9'ers sneer at Solaris.

It's just so tiresome and negative.


I've been trying to suck a little less every day for 40 years and I'm doin alright.


Same here!

I try to keep Rule #1 [0] in mind at all times. I fail to do so pretty frequently, so I guess I still don't quite have it down yet. >:-)

[0] "Stop sucking!"



[flagged]


> Idiot.

That breaks the HN guidelines and we ban accounts that do this, so please don't do this. Fortunately, it's nearly always easy to edit such things out of one's posts, thereby following the guidelines and improving one's posts.

https://news.ycombinator.com/newsguidelines.html

https://news.ycombinator.com/newswelcome.html




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: