this post was submitted on 30 Aug 2023
58 points (100.0% liked)

TechTakes

1480 readers
166 users here now

Big brain tech dude got yet another clueless take over at HackerNews etc? Here's the place to vent. Orange site, VC foolishness, all welcome.

This is not debate club. Unless it’s amusing debate.

For actually-good tech, you want our NotAwfulTech community

founded 1 year ago
MODERATORS
 

kinda glad I bounced off of the suckless ecosystem when I realized how much their config mechanism (C header files and a recompile cycle) fucking sucked

you are viewing a single comment's thread
view the rest of the comments
[–] naevaTheRat@lemmy.dbzer0.com 4 points 1 year ago (4 children)

:( sadness. I'm pathologically opposed to software complexity (I mean pathologically, it hurts me) and have a really nice rice set up with dwm.

GNOME's new mosaic layout project which is a few years down the pipeline looks like it might solve the problem of tiling vs teenager's desk windows management so maybe I should switch.

I actually do like the patching thing, prefer it to xmonad which needs recompiling every day that ends in Y or i3 which is about as fun to configure as fellating one of those tubular cheese graters.

Taking suggestions on fast minimalist launchers and windows managers tiling ideally (and terminals with Unicode support rxvt suuuuuuuuuuucks) if anyone has them.

[–] bitofhope@awful.systems 5 points 1 year ago (2 children)

I've been happy with awesomewm for years now. Maybe one day I'll enshrine my current config in dwm or something from scratch in Rust and XCB, but so far it has not been the time.

As for terminal emulators, alacritty has been comfy for me. It's not the most minimalist thing out there but whatever promises it makes in relative complexity, it delivers in performance and features.

[–] 200fifty@awful.systems 5 points 1 year ago (1 children)

oh hey, i love awesomewm! i'm much less amenable to fiddling with annoying linux config than I used to be, but the lua-scriptability is just appealing enough that I don't mind messing with it a bit to do silly things

I just use xfce4-terminal though lol

sidenote, I went to edit this post and accidentally deleted it instead. Would it be so hard for lemmy to use words instead of a million cryptic icons....

[–] self@awful.systems 7 points 1 year ago

I just lost a long post cause upvoting the post you’re replying to causes lemmy to remove the reply box, losing its contents, without any confirmation. lemmy sure is an approach to a UI

[–] 200fifty@awful.systems 1 points 1 year ago* (last edited 1 year ago)

oh hey, i love awesomewm! i'm much less amenable to fiddling with annoying linux config than I used to be, but the lua-scriptability is just appealing enough that I don't mind messing with it a bit to do silly things

[–] self@awful.systems 4 points 1 year ago (2 children)

the one nice thing is that the suckless ecosystem’s simplicity means that forking these things should be fairly easy for a dev or group with the time and spoons to handle maintenance, and might even provide a new direction for features that suckless would never consider

Taking suggestions on fast minimalist launchers and windows managers tiling ideally (and terminals with Unicode support rxvt suuuuuuuuuuucks) if anyone has them.

unfortunately, the only thing I use is emacs (exwm as a tiling window manager, emacs itself as a process launcher, vterm for a mostly not terrible somewhat high performance terminal, a pile of Lisp that keeps growing as I patch things live, all tied into the system with a bunch of Nix)

[–] bitofhope@awful.systems 4 points 1 year ago (2 children)

TIL about exwm, seems fun!

(I'm bitextual, I use both emacs and vim, though I'm more on the vim side of the scale)

[–] naevaTheRat@lemmy.dbzer0.com 3 points 1 year ago

Emacs was the best os except for the text editor until you could run vim on it

[–] self@awful.systems 2 points 1 year ago

oh I am also bitextual as fuck (I’m immediately stealing this) so I highly recommend running exwm under Doom Emacs or Spacemacs, both of which have modules for it (and you can also do a fully custom minimal evil layer for it by just importing exwm from elpa and writing a little bit of config, which I prefer)

[–] naevaTheRat@lemmy.dbzer0.com 3 points 1 year ago (1 children)

Ah, you started learning org mode didn't you?

You've seen this yeah? https://www.youtube.com/watch?v=urcL86UpqZc

has me in stitches. Browsing Wikipedia from within emacs is so convenient though

[–] bitofhope@awful.systems 4 points 1 year ago

What is mac?

What a poser. What self-respecting Emacs fanatic doesn't know about Project MAC?

[–] naevaTheRat@lemmy.dbzer0.com 3 points 1 year ago (1 children)

Or I would accept trying something a bit chubby if people have reasons to recommend it. Like sure it slows down the hellbox but it detects when your concentration is flagging and makes you a coffee type shit. Just no transparency effects, Jesus fuck I hate transparency effects. It's like "hey want to spend more power rendering something that's harder to parse visually?" umm no? who wants that? why would you want that?

[–] argv_minus_one@beehaw.org 0 points 1 year ago (1 children)

Because it looks cool. That's seriously the only reason.

And it does look cool, although yeah, it is also harder to parse visually, which I suppose is why CSS has a media query specifically for asking whether the user wants reduced transparency.

As for suckless, the biggest target of their hate seems to be systemd, and there are quite a lot of reasons to recommend it. A few off the top of my head (all but one of which I have used at one point or another):

  • Faster startup/shutdown
  • More reliable shutdown (it hangs less often than the old shell-script-based shutdown procedure)
  • Being able to see at a glance which services failed to start (systemctl --failed)
  • Being able to see at a glance a service's status including its last few log entries (systemctl status)
  • Keeping track of (systemd-cgls) and optionally cleaning up (KillUserProcesses in logind.conf) user sessions
  • User services started on boot (requires loginctl enable-linger)
  • Easy sandboxing/deprivileging of services (ProtectHome, InaccessiblePaths, SystemCallFilter, CapabilityBoundingSet, etc)
  • Service→device dependencies (Requisite=sys-subsystem-net-devices-wlan.device + WantedBy=sys-subsystem-net-devices-wlan.device = “don't start hostapd unless the Wi-Fi dongle is plugged in, and stop it if the dongle is unplugged”)
  • Querying the logs like a database (journalctl -p warning -b -u smbd = “give me all log entries made by smbd, of warning level or higher, since the last reboot”)
[–] self@awful.systems 4 points 1 year ago (1 children)

it has to be said that a lot of systemd’s features are broken if you’re operating a system without a dbus-enabled desktop manager or are running in an embedded environment. that describes all my systems except my Steam Deck, where I’m thankful for the parts of its game console-like features that systemd enables, though I do wish there were a good alternative that did not (via network effects) give firm control over a big portion of the Linux userland to a big corporation like IBM and its associated development practices

with all that said, suckless init ain’t it. it’s an extremely simple init that reminds me of the deterministic init systems you’d usually see in something like an android phone — ideal if you need to work around broken hardware with a strict boot order, but awful for almost everything else. there are much better options for an alternative init out there, and I’d prefer to use any of them

[–] argv_minus_one@beehaw.org 0 points 1 year ago (1 children)

it has to be said that a lot of systemd’s features are broken if you’re operating a system without a dbus-enabled desktop manager

Huh? Most of systemd's features, including all in the above list, work even if you have no GUI installed at all.

I do wish there were a good alternative that did not (via network effects) give firm control over a big portion of the Linux userland to a big corporation like IBM and its associated development practices

I'm not seeing it. This isn't Chromium, where it takes an army of world-class developers just to keep it up-to-date enough to be fit for its purpose. If systemd were hard-forked right now, and the new maintainer did little more than the occasional bug fix, systemd would still be useful for the foreseeable future.

[–] self@awful.systems 4 points 1 year ago (1 children)

Huh? Most of systemd’s features, including all in the above list, work even if you have no GUI installed at all.

user session features don’t work properly unless your DE sends session start/end information to systemd (and when I found this out, only gnome, kde, and enlightenment did). this breaks various systemd features in surprising ways; I found out about this when my user services wouldn’t work, but I stopped keeping track of what was broken when I realized it was all WONTFIX anyway

If systemd were hard-forked right now, and the new maintainer did little more than the occasional bug fix, systemd would still be useful for the foreseeable future.

historically, hard forking systemd has gone about as well as hard forking bitcoin, for very similar reasons. technologically, systemd forks tend to accumulate compatibility issues with the rest of userland very quickly due to breaking API and functionality changes in the interdependent systemd process ecosystem (and these breakages can very quickly propagate to downstream programs — a breakage in logind can be expected to be catastrophic for auth in general, for example). note too that breaking changes in the systemd API are rarely signposted in advance, which makes the job of a systemd fork and its dependent distros even harder. practically speaking, this means that a systemd fork must either excise the service ecosystem entirely (and would probably be better off just being a completely different init system at that point) or must have the wealth and support of a very large corporation behind it. this is similar to the technological means by which cryptocurrency projects maintain control: in a fork, the chain with more wealth behind it quickly becomes the longer one, and the shorter chain is extremely vulnerable to various attacks.

socially, both cryptocurrency projects and systemd possess notably toxic communities which severely punish forks and dissent, which is also used as a mechanism by which control over the project is maintained. the upshot to this is an additional high cost to the morale and community resources of a fork, which particularly harshly punishes forks run by individuals and small teams.

[–] argv_minus_one@beehaw.org 0 points 1 year ago (1 children)

user session features don’t work properly unless your DE sends session start/end information to systemd

Which features, exactly? I just tried IceWM, which has no systemd-related dependencies and vastly predates systemd, and the session appears correctly on loginctl and disappears from there a few seconds after logging out, same as logging in and out of Plasma. Seems like it works fine.

I did notice that loginctl lock-session doesn't work with IceWM, and presumably neither does anything else that involves sending D-Bus messages to the process controlling the session, but that's not the end of the world.

this breaks various systemd features in surprising ways; I found out about this when my user services wouldn’t work

I definitely have not observed this issue. I have loginctl enable-lingered myself, so my user services start during boot, before any desktop environment is loaded. I haven't tested whether user services work in IceWM without that, but as far as I know, user service managers are started and stopped by logind in response to session start/stop, and logind gets notified of session start by the PAM module pam_systemd, not by the desktop environment.

systemd forks tend to accumulate compatibility issues with the rest of userland very quickly due to breaking API and functionality changes in the interdependent systemd process ecosystem (and these breakages can very quickly propagate to downstream programs — a breakage in logind can be expected to be catastrophic for auth in general, for example).

Breaking changes affecting programs outside of the systemd suite? Can you give me some concrete examples of such breaking changes and the problems they caused? I wasn't aware there were any. I would have expected to see some serious fireworks if such a thing ever happened.

socially, both cryptocurrency projects and systemd possess notably toxic communities which severely punish forks and dissent, which is also used as a mechanism by which control over the project is maintained. the upshot to this is an additional high cost to the morale and community resources of a fork, which particularly harshly punishes forks run by individuals and small teams.

We're discussing a community hard fork that leaves IBM behind, like what happened with XFree86. What IBM says or does after that is irrelevant, I would think.

[–] self@awful.systems 2 points 1 year ago

not gonna dig around in the source to my distro for examples, but here’s the hack NixOS uses to make graphical-session.target run with WMs that aren’t Gnome or KDE. since a lot of the session management stuff I want to do relies on being able to sensibly handle both text and graphical sessions (and the NixOS hack wasn’t too reliable the last time I tried it), this was one of the factors that pushed me towards using Shepherd to manage the session process tree on my systems

Can you give me some concrete examples of such breaking changes and the problems they caused?

this is a really weird question to ask, given that the context is a hypothetical systemd fork running into breaking changes in the systemd API. maybe look up a postmortem for uselessd or any of the other dead systemd forks?

What IBM says or does after that is irrelevant, I would think.

leveraging an existing toxic community against a newer, smaller one is very much a way to retain control after a fork; again, this is pretty much a known quantity, and there are a bunch of examples of it happening in cryptocurrency projects

[–] argv_minus_one@beehaw.org -1 points 1 year ago (1 children)

If you're pathologically opposed to software complexity, you probably shouldn't be using a GUI at all. Many millions of lines of code are involved in turning UTF-8 into pixels on your screen, laying out widgets, driving a GPU, and so forth.

[–] naevaTheRat@lemmy.dbzer0.com 4 points 1 year ago (1 children)

Oh come off it. You know what I mean, I'm already mocking myself you don't need to hit me in the kidneys.

I ran headless for a while but security risls

[–] argv_minus_one@beehaw.org 1 points 1 year ago

I will say that it's impressive that modern GUIs, as staggeringly complex as they are, work as well and as quickly as they do, not to mention how ridiculously fast the hardware is. That's quality engineering right there.