Why I Use Suckless Tools
christine.website
christine.website
Would the tiny incremental gain from tweaking one or two specific settings to my perfect liking save me anywhere near the amount of time, happiness, or productivity that I save from just letting someone else choose the defaults for me?
I don’t have enough time in my life to debug and recompile my window manager or Terminal app on a regular basis. Maybe a long time ago, when I was single and had a lot more time to burn.
But once you get used to an OS and set of tools—warts and all—I think the level of tweaks that are listed in this post are the equivalent of someone spending an hour each day prepping clothing and makeup.
For some people, that’s a fun part of their day. For me, it seems like torture.
I set up dwm, st, and dmenu once years ago, and have worked flawlessly without faults ever since. I actually use a stripped-down hacked-up dwm that I did on a Sunday years ago and have since lost the source for it; I can't recompile it even if I wanted, heh (which is not ideal, but I have little reason to spend effort on it).
> Would the tiny incremental gain from tweaking one or two specific settings to my perfect liking save me anywhere near the amount of time, happiness, or productivity that I save from just letting someone else choose the defaults for me?
But that's not without overhead either. If you update your Fedora or Windows you'll sometimes need to spend time getting used to new defaults and the like, especially on the long term (e.g. Windows 7 -> 8 -> 10, or if you use Ubuntu, Gnome -> Unity -> back to Gnome). With dwm, my experience has remained unchanged for a very long time.
I can only speak for myself, but your description of a hacker constantly fiddling and compiling their software couldn't be further from what I'm actually doing with suckless/dwm. Funny enough, I like it for much of the same reasons as you like Fedora/Windows: it gets out of my way so I can spend time on more important stuff.
I had the same experience with dwm, and this is the reason I keep using it.
I spent a day to set my system up a couple of years ago, and never had to touch it again. There are no dependencies, so it does not break on updates. It has so few moving parts that nothing ever goes wrong. It gets out of my way so that I can get the job done.
Moreover, I can sleep sound, not worrying about how they'll replace the toolbar with a start screen in dwm 8.0, only to change it back in dwm 8.1 after I spent the better part of the year relearning my workflow instead of doing my job.
Aha, so in some sense the software was still not totally suckless to you.
The "I don't want to spend time configuring my desktop environment" argument misses the point with these things. Everyone had to learn how to use various interfaces. It's easiest for me to learn something whose code I can mess around with
I don't like dealing with multiple things on my screen (from the WM, tmux panes, Vim windows, whatnot) and like focusing on one thing, so I've had a pretty simple and straightforward "full screen all the things" workflow for years (well before I used dwm) which doesn't demand much from my WM. I mostly use tags/workspaces, tmux windows, and Vim tabs to switch between things.
Unless that was the first time you used those tools, how long prior to that did you spend getting to a state where you could do that?
I don't think suckless is for everyone; it's pretty explicit about that. I think that's okay: not all software needs to cater to all users; suckless is mostly a hobby project by some devs for their own purposes.
I sometimes see people recommend dwm or st in "what {WM,terminal} should I use?" and I think it's a terrible recommendation, because most of the time people asking those questions don't have the required skill set to be able to use it effectively (not yet, anyway).
But then I found "Regolith". There are a few distributions which have i3 out of the box, but this one had a special keybinding reminder that was one click (or keybinding) away. I was very surprised by how quickly I adapted once the barrier of entry was removed.
Once I switched funny things started happening. I wanted to slightly change the time format of the bar, and found that it was controlled by a tiny shell script. So I made my own tiny shell script that did exactly what I wanted. Eventually this sort of thing happened at lower and lower levels and I started hacking the C code and making PRs. It was really strange that the barrier between my window manager and it's code is smaller than the one between my previous desktop environment (xfce) and the new window manager. It's liberating.
All this said, when I had to use OSX at a previous company, the walled garden was pretty nice. It always worked and the usability was much better than most other environments I had used. But now that I've experienced something custom built to my preferences, I would have a hard time using something else.
The i3 community variant of Manjaro is also a nice config for new i3 users (I'm one of them) on an Arch derivative.
I use a lot of tools that I significantly customize- i3wm, tmux, vim, fish, fzf, etc. I'm certainly no stranger to editing and maintaining configs, but when I've tried the suckless tools in the past they turn everything right up to 11.
My strategy, and this is the same as a few other people I've seen comment here, is to choose a tool that has sane defaults, and only customize to eliminate pain points. If it requires significant configuration just to get it viable, than it's not going to work for me.
It's something you do once and then leave alone. If someone is tweaking their configuration all the time it's because they enjoy it. Changing a few settings doesn't doom you to a life of debugging and compiling.
I mean I'm not against new and better ways to interact with a computer, I just like to decide on my own if I want to use the new and shiny thing or not. Fuzzy searching is probably the most significant improvement I opted in in the last couple of years, and it's used basically everywhere on my desktop, while all the "modern" desktop systems like GNOME, Windows 10, macOS, ... still barely make any use of it and their search implementations sometimes even worsened from my point of view (Windows 10).
https://en.wikipedia.org/wiki/Command-line_completion#Histor...
Another related feature that I wish some Linux gui framework would adopt is the concept of global keybindings. Every menu in every app in macOS displays by default the shortcut key next to it - if one exists.
These are the kinds of features that are easy to overlook but contribute hugely to the "cohesive" feeling that macOS advocates so often seem to have trouble describing to Linux desktop users.
Realistically I suspect that at the end of the day the people who are getting things done aren't jumping on every shiny new trend. BUT they also they aren't spending weeks on end tweaking all of their configurations to make them perfect.
I didn't make some grand decision to use emacs (I assume mentioning emacs is what upset you). When I installed linux for the first time the instructions were to use vi or emacs to edit files. I couldn't figure out how to quit vi so after a hard power cycle I use emacs today. It turns out though that if you use a tool for long enough and make small tweaks occasionally it adds up. My environment suits me perfectly. Maybe you would hate it but that's fine too.
Whatever floats your boat. Why be so dogmatic? Why not use a little of the tried and true and mix in a bit of the hip new thing?
For example, are you using twm? xterm? Admittedly those are only 30 years old but I don't know any older examples that are still supported.
to give my data point, whenever I was using windows I could never stop trying to change its workflow because of, well, how unefficient it seemed to me ? After years of trying various distros & DEs, building my own config based on i3, rofi, zsh and a couple other tools which took for the most part a couple afternoons, I could never see myself change for anything else again - especially not that wretched mac thing (I have one on my desk, it feels like every single interaction with that computer takes 10x the time it takes me on my main linux box which makes my blood pressure go way too high :-) )
This is the very reason I choose to configure a minimal WM, fed up of the churn and quirky behaviour of large DEs, especially the proprietary ones.
If you install DWM, or i3wm or {minimal wm of your choice}, you don't have to configure it to the nth degree like on unixporn - many of them work out of the box with sensible defaults (i3wm is known for this)... but the nicest thing of all? it stays that way, you may or may not make gradual tweeks over the years if you find a pain point, then when you reinstall or upgrade your system just take a single config file with you - done.
Compare this to macOS or windows where things just dynamically move around and change their behavior "because progress", or you re-install and have to dig through UIs to turn shit off to get back to where you were... I don't want this, I want to get shit done, I also don't want to have to relearn someone's exciting new desktop paradigm every few months at random and inconvenient times, which these days are more and more catered to the lowest common denominator of user.
Using a minimal WM does not necessitate massive time investment, it may take a little getting used to like any new thing, you can invest as much or little into customisation as you can be bothered - the biggest reward: stability, continuity, piece of mind, sanity, less distraction.
Anecdote: I last touched my i3config 4 years ago, my WM behaves the same, I use the same key commands, no new features are automatically injected on updates... zero distraction.
There are substantial privacy and security benefits to leaving the macOS/Windows ecosystem. Both of these operating systems include a lot of telemetry that is non-trivial to disable, and both use opaque, proprietary encryption software with a history of catastrophic bugs, including for disk encryption.
The big one though is spyware: Windows makes no farce of it, and is instrumented up the wazoo. You've got to dig into the registry to disable a lot of it, and firewall the rest. Opting out during install is entirely insufficient.
macOS used to be a lot better, but as of Catalina, even with all of the Apple network services disabled, iCloud turned off, Siri and location turned off, analytics opted out, no Facetime, no iMessage, no App Store, et c et c, it still sends all sorts of traffic to Apple, including some to no-hostname 17./8 IPs for some reason.
To get basic privacy on these systems, you have to do hours of work after install, run third party firewalls, and even then you're who-knows-how-many disk encryption 0days away from a stolen laptop meaning total compromise of your data.
This is not to say there aren't any encryption 0days in linux, but there are certainly a lot more eyeballs on the source, for a much longer time.
Conversely, linux doesn't really have anything comparable to Little Snitch or the per-app per-directory permissions of Catalina, sadly.
Then at one day I decided to _really_ put a lot of effort on improving and highly customize my workflow.
It took a while to get used to being the fastest around my colleagues. I'll never look back.
We are professionals. The defaults, believe me, are not for us.
I like this conclusion
The ones that aren't must be acknowledged, and attacked directly and mercilessly with automation. That could mean a bit of custom code, recording a macro for keystrokes or mouse clicks, or transforming the task into data to make it programmable or searchable.
Knowing the tools only means adding more options along these axes. Customizing the WM and editors can help, but it leans more in the direction of directionless tinkering. I develop in Windows and make use of its tiling shortcuts(Win + arrow keys) all the time - it's 80% of a tiling WM and is always there and has been there since Vista. That's the benefit of knowing what defaults can do, and "merciless automation" on top of defaults goes a long way.
Anyway, whatever editor you use, you still depend on the keyboard to type the code, the monitor to view it, and comfortable ergonomics for a long session. Identifying the best thing for the task is an art form. I recently invested in cheaper headphones(!) because they are lighter weight and therefore contribute less to neck strain; I also expect them to last longer since drop impacts will be less forceful.
I use tools like Linux and suckless because I am sick and tired of being blocked by shoddy software failing in an inexplicable, opaque way. If something goes wrong in Windows or Mac OS X, I might be able to file a bug off to into the void, and restart everything, to work around it. There's not much other choice. It's just a waste of time every time it happens.
With software I control, whether or not it's a waste of time is up to me.
There's obviously a trade-off here, and no single right or wrong answer. Visual Studio is undoubtedly neat software with a lot of features that help people being productive; but it's indeed not as simple as the previous post made it out to be, IMHO, as it forgot about the second question.
Then again, if you're lucky nothing ever breaks and you win :-) But in my experience people usually aren't that lucky.
And that's exactly why I like dwm so much: it has zero dependencies, and no config files. It just displays the windows of the programs that I actually want to use, and gets out of my way.
And since you can’t even look at the CSPROJ within VS without gymnastics debugging isn’t even easy to get started with.
Distro hopping and trying a lot of (minimalistic) tools are fine to learn a thing or two, but at some point you'll have to do some work, and having your mind on "how to do this more efficiently" can be distracting.
Where do you get the confidence from? Because GNOME frequently broke workflows in the past. They removed status and desktop icons, the window titles in the overview vanished, Evince lost some feature with its latest redesign (which I can't remember right now what it was exactly), Nautilus lost its two pane mode, compact view and type-ahead search, which was replaced with a slower full-blown recursive search, ...
These kind of disturbances caused me to move to a much more personally tailored desktop and I can't remember it breaking once in like 5 years and certainly not to the extend the GNOME desktop breaks in almost every release.
I really have to hard disagree on this.
Would letting someone else choose the defaults for me save me more time (and frustration!) considering that I'd have to adapt, again and again, every time those defaults change, or would it be better to just pay that one-time cost of setting up things how I like it, forgetting about it, and not having to worry about the whole environment changing underneath me?
Sorry, but I really don't understand your argument here. How many times did the UI of macOS change? How many times did the Windows' UI change? How many times did the Android's UI change for no good reason? (Like, e.g. it seems that for virtually every new major version they completely redesign the camera app.)
In what way is it less effort to constantly keep adapting to those seemingly arbitrary changes compared to just setting it up yourself once, and then forgetting about it?
I just don't get it.
I've set up my environment many years ago, and I haven't really significantly tweaked anything since. It works the same way as it used to. Still the same tiling window manager, still the same apps, and everything works just as I'd like it. It's great. And I don't have to waste my time dealing with all of the UI churn that happens all around.
It's like knowing compilers. You don't use that knowlege to tweak c++. You use it to build your own special language when needed.
Using a bicycle fitting for your body with good components instead of some shabby and abused rental, which makes you sweat, so you could have jogged instead, and been as fast.
Using a swiss knife, or some other multitool for anything, while more fit for the purpose tools exist. (how often?)
Using camping cutlery instead of proper knife, fork and spoon.
Using (duct)tape to temporarliy fix installations, while avoiding/delaying a true repair.
So much more...
Anyways, happy treadmilling...
You're framing it as if the OP said "fuck fancy text editors or IDEs, I'm using notepad!" but I don't really see it that way.
As I see it, it's more like "do you really get that much gains from customizing your vim / Sublime Text / IDEA so much that you're incapable of working on someone else's machine? Is that worth it?"
All this assumes the difference in utility between a specialized and a generic software tool is as stark as your examples portray. That difference is quite subjective, and arguably lesser than your examples given how much effort goes into producing modern OSes and their ecosystems.
I strongly agree! It saves me time and decreases the number of incompatibilities I have to deal with. Not every program gets this treatment, but as much as possible i try not to change the defaults, especially with the OS.
A colleague also persuaded me that statically linking my binaries was the best long term approach. I started out thinking he was crazy but no, he was right.
But it still makes sense to reach the knee.
I personally think it makes sense to invest a little time in your tools when things are slow, hopefully for a payoff when things get crazy.
From my own experience and talking with other suckless users this seems to be the common behaviour.
I feel like we have very different conceptions of what 'easily' fixing a configuration issue looks like.
Take their window manager dwm as an example. The codebase is only 2000 lines long, so any bug you find will have to be hidden in those 2000 lines. If you take a Sunday afternoon to study the code, you will very likely understand how every piece of the software works, at which point you will be in a position to fix anything you might find. You might even end up forking it and implementing your own window manager (AwesomeWM was originally forked from Dwm).
I don't think I have ever needed to do this "fix" any piece of configuration in any software.
While I understand the concept and approach, I don't think that this is a productive use of most people's time.
Now when it comes to more complex stuff, like hotkeys, well you're essentially programming already in most other wms that doesn't have such things build in. AwesomeWM, i3, qtile (not popular but I used it for years) basically is half-way to programming, although it's a line, so it isn't any worse. I think the thing people aren't getting is the code is actually simple, so editing it and recompiling it isn't a chore.
If it's a case of their software being simpler to understand so which makes it easier to fix bugs, then sure, I get that. But in my experience, software that has been around forever just tends to have fewer bugs in general so it's also just something else that I simply don't need to care about. And how often does the average user of suckless tools actually have to fix bugs in the programs? If it's more than once, then does the label "suck less" even qualify?
Is it just because the software is extremely minimal and therefore less "bloated"? I get that too, but personally, why would I care if a piece of software is 70kb or 500kb in this age? YMMV.
Don't get me wrong - I'm not trying to bash suckless or any other community here. I'm just very pragmatic about the tools that I use and my workflow. If you're the type of person that likes to tinker and customize every aspect from the ground up, sure then maybe suckless tools are for you. Tinker and mod away, there's absolutely nothing wrong with that.
I'm torn on this because I am way, way over screwing around with my OS, but I also hate that all the modern standard desktop operating systems (macOS, Win10, Gnome3 or KDE) that you get if you don't want to jack with defaults and configure things or use some way-less-popular so likely to be (even more) janky distro or "spin" or whatever, want to take up a gigabyte or more (way more for macOS and Win10 especially, tens of GB) of disk and hundreds of MB of RAM, while delivering experiences that are marginally better than what we had in the late 90s and early 2000s with sub-GB OS installations and low-tens of MB of memory use when idle.
I use Awesome WM which is configured / scripted with lua. I know lua already so it's great.
You may need only a day or two to orient yourself to the source code, but that’s on top of months or years of experience with X11R6 and ICCCMv2 and EWMH and such. How much debugging did you first need to do to discover your current issue was even in dwm?
EDIT: I especially love the phrasing in Wikipedia's ICCCM article: dwm "can be configured for compliance". If 'configuration' can include editing source code, I'm sure that's true!
Dwm "wins" by just giving up, in a sense. It doesn't try to implement a taskbar, therefore it cannot have a buggy taskbar.
EDIT: I guess it does have a "Taskbar", but in a very, very limited scope.
On the other hand, the thing that I do not like about suckless and the minimal hacker types in general is just the staunch elitism. I think you'll get some level of elitism with any group but in this case, with the minimalism comes a bit of a sense of hostility to new users who just don't think your way. It feels like there is no in between in the foss world, either people seem to be friendly and kind with TOCs and all that but force churn every few years or are militantly minimal and just super unpleasant as people. Then again, I think the thing I want isn't really minimalism, stability to me is the thing that is lacking greatly in the open source world which is sort of a side effect of the minimalism.
Thanks for a new phrase of the day, that describes the phenomenon well. At some point it can go beyond being a practical matter, and crosses over into fashion and dogma.
> the primary problem with software today..is churn
> stability..is lacking greatly in the open source world
This makes me think, there's a difference between minimalism and simplicity. Software that's stable, backward compatible, with a small and well-defined interface - there are rare gems out there that achieve this simplicity, where it can be used every day for years and just works like a champ.
I agree. The machines are wicked fast, most of the needful algorithms are already sussed out, not to mention how ML solves another swath of problems. Today most "programming" should consist of picking and configuring existing software, and this should be seen as a big win and a sign of maturity.
(Instead we have Python 3 and Rust and... <rant omitted>)
So, yes, we need the outside view, please complain!
In re: elitism and hostility, remember that most of the old-school programmers are old enough to have grown up before nerds became cool, so some of that grows out of resentment and alienation.
You can complain about this or that aspect of language design, but then you also have to look at what a clusterfuck of historical accidents C and C++ are.
Like what you like, but at least be correct about why you like what you like (and why you don't like what you don't like).
This lasted maybe 15 years. There was a sense of vanity in trying to be different yet spectacular.
Today I would tell my younger self that use what makes you productive. Even if it is the standard Windows or Mac OS environments.
R/unixporn is the nerds equivalent of shirtless beach dudes.
But then it got killed off due to a vocal minority constantly complaining about it, and now I'm trying to find an alternative that uses similar UI principles but nothing actually seems to get it right. For example, I often hear people (computer power users) praise OS X. When I see them use it, they're mostly operating it in a "casual" point-and-click fashion like the average casual user. What made the difference for me in Ubuntu/Unity were power user features, like extensive keyboard navigation, or dragging/resizing a window with the middle/right mouse button while holding Alt, or searching the window menu simply by pressing Alt.
Did you try Plasma? You can drag a window while holding the Win key, there are tons of keyboard navigation, and your last point can be achieved by this extension: https://github.com/Zren/plasma-hud. There is even some global themes with the look of Unity.
FWIW, the drag while holding a key is actually quite common in Linux DEs, I just miss it in the Big Two.
Wait, what kind of savage goes to the beach in a shirt?
:)
/me giggles
The same with cars, get in, first 10-15 minutes of driving and after that I use important controls intuitively. I don't see value in mastering specific make of a car, it is just a tool.
Once up, Xfce and i3 stay out of my way and I can just get to work.
I don't consider Debian to be the "best distro" (some distros like NixOS seem much more elegant), but I find it to be very stable during the 2 years where a major release is supported, and that leaves me more time to being productive on things that interest me more.
Still, distro hopping and spending endless hours customizing and searching for the "perfect" setup can be a good hobbie.
So I went to ICEWM, have my terminal with Tmux in the center screen and my web browsers on my left and right monitors and that's good enough for me to be productive and get my job done.
So yeah, the perfect setup is not the one that's the coolest, it's the one that lets you get things done efficiently. Unfortunately for me, tiling window managers don't seem to do that.
My ADD makes these the same. Having a cool desktop setup is the only way I can stay interested enough to get any work done.
No, really. It's the center of my custom linux desktop. You can run a similar setup like described in the article with it, it replaces dwm just fine. Its preferences and winoptions are powerful enough.
The winoptions I still recommend looking into, especially pinning apps to one workspace is very useful. That's not too far into the "configure everything" category. The concept of ice-win (clicking on a window, then having all options visible and configurable) would still be useful for that.
r/unixporn is a subreddit for sharing your desktop wallpaper.
To change a config I need to recompile stuff? Jikes
To each their own though. I can see how this could work well if one invested a mountain of time into learning & fine-tuning it all
I wonder how many milliseconds slower the startup of a C application will be, when it reads a config file from SSD first.
There are real world examples like bspwm (my favorite window manger), that proves you wrong. It is configurable via config file and is as "suckless" as it could be.
Do people act this way if you do LFS?
Reading a simple config file will probably be faster. So yeah, it's pretty much negligible.
I do like the config.h as it's easy to include your own hacks, I added some key mappings and modifications to dwm that would be much harder with a config.ini or whatnot; but that's very different than startup speed.
But seriously, reading a config file means there has to be a syntax and a parser, and both have to be maintained. The syntax can be limiting or fiendishly complex, both by accident. The parser can have bugs. Is it really worth adding these headaches just so editing your config file is one instead of two commands?
If you look at my startup time for my system it goes something like this:
10s - waiting for monitor to wake up to pick OS at dual boot menu
15s - typing disk encryption password
15s - system uses disk encryption password to retrieve LUKS key
5s - Literally the entirety of my OS and window manager and autostart programs beginning.
I use i3 for my window manager, which manages to launch instantly, and alt-enter launches alacritty for my terminal, which also launches instantly. But even heavier terminals like xfce4-terminal launch very quickly. These programs are lightweight sure, but they don't need to be recompiled for configuration and have some ergonomics. I don't see the marginal benefit of maybe 4s at boot time being worth that hassle.
I use a bunch of suckless tools, in particular DMW. I don't necessarily agree with all their choices but for me it's about configurability and reliability. I consider myself a power user, I know how things work, I don't need a gui to configure my keyboard or network interface. I don't want daemons running in the background and overwriting the settings I apply manually with the command line (a common issue I have with more fully fledged "desktop environments").
Ergonomics easily win too, sure I have to mess with C code to get the config I want, but then it's basically tailor-made vs. ready-made. All the functions I use the most are one key keystroke away, I use the mouse so little that I often find myself searching for it because it ended up buried underneath some papers. I want to focus the terminal? Win-C. I want to focus Vim? Win-E. Firefox? Win-w. I have special customization to sticky windows the way I like, placement rules etc...
Everything is fast, reliable, no pointless transitions, no cruft, no having to worry about the next update changing a behaviour that I use and me having to figure out how to revert the change or relearn how I do things. >I don't see the marginal benefit of maybe 4s at boot time being worth that hassle.
Before I used DWM I used StumpWM for more than a decade, an other tiling WM. Being written in Common Lisp it was quite slow to boot up from an image dump (especially 10+ years ago on HDDs and vastly less powerful CPUs). For me performance is highly irrelevant, the "hassle" is what I'm in it for. It's like learning to touchtype, at first it's immensely frustrating but once you're past the learning curve it gets really beneficial. Digging throw DWM's code is harder than clicking on Gnome's menus, but once you've got it working exactly like you want you probably won't have to touch it for a long while.
The last significant change I made to my DWM fork dates from July 27 2018. Since then I've only tweaked a couple of keybindings.
Often window manager bugs seem to be working around strange behaviours from individual applications. I wouldn't assume simpler code means less bugs, it could mean more. dwm must be very well tested at this point though.
Second paragraph, second phrase.
> However as a side effect of suckless tools having their configuration baked into the executable at compile time, they start up instantly.
There’s definitely good use for these optimized tools. Especially on old systems with low resources and slow CPU’s.
I generally like the simplicity of suckless tools. dmenu together with i3 is a nice duo.
Suspend to RAM does not work for you?!
What distro do you use and what kernel? What do the files /sys/power/state and /sys/power/mem_sleep contain? Maybe it's just a SystemD issue?
For what it's worth, a comment [0] on the Archlinux BBS says that Linux 5.6.13 fixed the issue for the user's t495 and Debian seems to have 5.6.14, so if you haven't yet tried updating the kernel, definitely try now.
[0] https://bbs.archlinux.org/viewtopic.php?pid=1905479#p1905479
I've been using kitty for a few months now and performance is great. in fact, the biggest performance gain I saw was when I switched away from "oh my zsh" to a manually written `~/.zshrc`.
250 lines of Rust should get you started
wayst in code refers to having gotten https://github.com/michaelforney/st to work at some point, seems there's also https://github.com/majestrate/wterm
In my view, the value of these types of tools (Suckless & friends) doesn't come from simplicity per se, but more from the fact that they can be debugged at all when they break, because it is possible for one person to have a decent handle on all the pieces and how they fit together.
I have tried to use and like more complex environments like macOS or GNOME in the past. If they actually worked, they would be great. However, something inevitably breaks, and now I have to unpick a twisted not of dependencies, IPC, libraries, languages, etc. At least when CWM breaks, it can be fixed at all rather than being forced to give up and deal with it being broken.
I think people saying "having to hack on the C sources isn't easy" and the counterpoint "it's just a four kLOC of C, it's easy to hack on!" are both right, but also missing the point.
GNOME, KDE, etc. are so complicated, that from the perspective of an individual person trying to fix a problem, they may as well be closed source unless you're willing to devote months just to learning the project.
I have no problem using complicated tools, as long as they are tools that I understand, because I can't fix things I don't understand. Alternatively, complex tools that work so well that they never break are also fine, since I never have to fix them.
" As dwm is configured in C, there’s also a community of people creating patches for dwm that add extra features like additional tiling methods, the ability to automatically start things with dwm, transparency for the statusbar and so much more. I use the following patches..."
Eventually, enough users will want a particular patch, and it will be agreed to include for all users. At that time, is the product still suckless?
Note that you can use dwm just fine without any patches.
The software is generally pretty good though, they cater to a niche. Dont be mad if thats not you. (Its not me either)
Luke smith has some pretty good content covering their tools
1) I'm leaving Mac hardware for "pro"-tier computing because their gear's swung way back into ZOMGWTF overpriced territory, especially if you want higher-than-basic-but-still-not-actually-that-much core counts, memory, or disk, while also getting worse in some ways (mostly the MBP line), and not keeping up with what ought to be standard base specs for "premium" hardware. I'll keep buying used Apple gear as terminals and light farting-around machines, and iPads are still the only tablets worth a damn and I use them for tons of stuff, so they've still got me for their iOS devices.
2) No software platforms support suspend/restore-this-entire-desktop-session, with multiple sessions available at once (and the ability to run more than one at once), which is an incredibly productive way of working for me short of having a dedicated machine for every purpose (which would be worse in a lot of ways anyway), so the only way I can get something like that is with a big-assed desktop machine with 4x as much RAM as any one of my tasks/sessions needs, running VMs. I'd rather just be able to suspend and resume user sessions, including desktop and application state, as a native OS feature, as that'd save me the PITA of keeping multiple VMs around and up-to-date and all that—alas, no platform supports that.
[EDIT] for the latter, if it's not clear, think "client 1 session", "client 2 session", "side-project 1 session", "side-project 2 session", "gaming session" (probably can't do that one with my set-up as I don't want to screw with gaming in a VM), "book 1 writing/research session", "porn session" (LOL), all isolated and able to suspend/resume from exactly where they were.
I really don't get it. Who uses a web browser like that? I almost always maximize my browser on my desktop, and when i want to share the space with something I'm working on, I maybe will split the screen in half, or just have floating windows on top of each other. Alt+tab works pretty well.
I'm not sure how representative the screenshots are of actual usage.
There's a subreddit for that r/UsabilityPorn
With windows, once I have a large number of windows, working in several things at the same time, I'm really afraid of losing that setup (for example, leaving my laptop unattended for a while and see that the system had the great idea of rebooting while I was gone). With dwm, I had the layout I wanted with much less effort. It adapts to what I'm doing. It's very fluid.
None is perfect, both have pros and cons. And I understand some people don't like some of the design decisions in dwm like editing source to configure and so on, but dynamic window management is a powerful concept.
Not sure what “All of these things control various errata.“ means.
That is a strange division of labor. I thought transparency and composition were aspects of window management. What else would they be?
Transparency support falls under composition - the decision on applying the effect can be left to WM/app.
That's how world used to work, but it seems its going the way of dodo :-(
Despite its NSFW name, /r/unixporn is a great subreddit of people posting their Linux GUI configs. It's mostly tiling WMs, but I learned a lot about how to heavily customize my setup there. The top posts are worth skimming for anyone who's a fan of beautiful UIs: https://www.reddit.com/r/unixporn/top/?sort=top&t=all
...
> As of the time of this post being written, it uses only 11 megabytes of ram
I'm not a rust programmer. Is 11 megs for an app like this concidered small?
I'd expect something like this grabbing some dead-simple format over a TCP socket, rather than importing a Web library, to be well under a MB, certainly, and even that seems not to be setting a very low bar, to me. Though those are expectations based on C, not Rust.
After I've changed to alacritty, which does not supports tabs, I could easily recreate my old workflow with "tabbed".
(I've never heard of suckless previously, I just knew that I want some generic X11 tabbing SW (and I was sure it must exists somewhere, so have put a lot of effort in googling) - maybe I should check the other things there too...)
I think people should give dmenu a try. It's an application launcher, but it's unix-y design allows for composition in ways that are very interesting.
However https://sta.li/ (static linux, not "stalin"[:-1] ) appears to be in circulation.
It's followed me from Arch to Ubuntu to Void
famous last words. won't ever use dwm, got no time for this.
They could express a positive enthusiasm for simplicity, but that's not the way they go about it.
> The Mutt E-Mail Client
> "All mail clients suck. This one just sucks less." -me, circa 1995
The above is in essence a absurdly humorous, self-derogatory show of humility, summarizing the sysiphean task of trying to make any software bug free and useful in any way.
I mean, if everything is small and simple, doesn’t require you to learn a frameworkish configuration written in yet another language but can be configured with what amounts to a key/value file and can be installed in seconds with make + sudo make install, then it’s hardly elitist.
The name that immediately claims that their software sucks? I get where you are coming from, but you're just labeling the average software with a different term.
https://twitter.com/pid_eins/status/1113738764797534208?s=19
See also
https://news.ycombinator.com/item?id=20845633
I don't know much more about the community, I don't like suckless tools.
Or not in America. As far as worldwide events go, Charlottesville wasn't that noteworthy.
And surely not all people knew about that event. The thing is I don't believe he, in particular, would ignore it and I don't trust him anyway fwiw.
It's like ergonomics. When you're a kid, you sit on what you have and you've got more interesting things to worry about than the height of your desk? At some point in life you might just want a nice chair and roomy adjustable desk with a sizeable external monitor on a proper adjustable stand to make work comfortable. That's why you hack your window manager or shell or whatever. The defaults are always terrible and not tailored for you.
But.
Looking back at my life, the things I got done barely register on the radar compared to the joy of learning and creating, the joy of hacking.
To paraphrase Arthur Dent: "Ah, this is obviously some strange use of the word 'less' that I wasn't previously aware of."