this post was submitted on 05 Oct 2023
61 points (93.0% liked)

Unixporn

15346 readers
42 users here now

Unixporn

Submit screenshots of all your *NIX desktops, themes, and nifty configurations, or submit anything else that will make themers happy. Maybe a server running on an Amiga, or a Thinkpad signed by Bjarne Stroustrup? Show the world how pretty your computer can be!

Rules

  1. Post On-Topic
  2. No Defaults
  3. Busy Screenshots
  4. Use High-Quality Images
  5. Include a Details Comment
  6. No NSFW
  7. No Racism or use of racist terms

founded 5 years ago
MODERATORS
 

Most of my workspaces are tiling (bspwm), but I have one where all windows are floated.

This is showcasing my own (very minimalist; ~300 lines) unreleased desktop manager written in pure Ruby, using a Ruby font renderer and Ruby X11 client library (both on github), and showing a custom menu written in Ruby that auto-populates with actions based on directory contents, and showing my Ruby terminal showcasing double-width and double-height support (xterm has it, but few others), and a window showing me editing my Ruby text editor with itself...

Oh, and Polybar. One of the terminals is st - the Ruby terminal is a bit wobbly in a few respects still, though I use it more and more. So there are a few non-Ruby bits left. So far.

all 10 comments
sorted by: hot top controversial new old
[–] angrywetnapkin@lemmy.world 8 points 1 year ago
[–] ghoscht@feddit.de 4 points 1 year ago (1 children)

Pretty cool idea. The few lines of code also make it easy to rewrite in case you want to switch to wayland.

[–] vidarh@lemmy.stad.social 1 points 1 year ago

Thanks. I'm in no rush, but yeah, it's all very small. They depend pretty much on a handful of X calls at the moment, and aiming to isolate that in a couple of very small classes, so should be very simple. Hoping to clean it up and push more of these to github soon.

[–] Xenanthropy@beehaw.org 2 points 1 year ago (1 children)

Looks awesome, I love Ruby!! For even more ruby you could swap bspwm with subtle, whose config file is written in ruby :) (subtle itself isn't though sadly)

[–] vidarh@lemmy.stad.social 2 points 1 year ago (1 children)

That's an interesting one I'd missed. Thanks :)

It might just tempt me to ditch bspwm, or at least experiment. I use little enough of bspwm capabilities, so it might be feasible. I have also lightly toyed with the idea of writing my own, as since I don't use menu bars etc. even on my floating screen (the "menu bars" in my desktop manager are just client rendered titles) I really need very few capabilities. Basically pretty much just a placement function similar-ish to bspwm, and the ability to move and resize and float windows.

On the other hand, a truly minimalist WM is <100 lines, so I might consider writing one from scratch too (I'd need to update the Ruby X11 binding to handle StructureNotify events and add a few more calls, but that's pretty trivial). Though at this point we're quickly approaching zealotry :) It would be fun, though. Maybe when I'm done replacing the terminal fully...

[–] Xenanthropy@beehaw.org 2 points 1 year ago (1 children)

A ruby-written window manager would be too cool, I'd check it out! Although unfortunately I've switched to Wayland months ago and I know Wayland is a lot harder to write for... ah well :)

[–] vidarh@lemmy.stad.social 2 points 1 year ago (1 children)

Heh, yeah, that's part of what's currently keeping me on X. I use little more than a bunch of shells and Chrome, so there's not many incentives for me to switch. All of my Ruby X tools are very light on the X11 API use, so they'll eventually be fairly simple to migrate over, but the window manager vs. compositor situation is frustrating.

I'm somewhat tempted to hack together some FrankenCompositor based on wlroots that implements the bare minimum of the X11 protocol to allow an X11 window manager to to manage the windows. The X11 protocol itself is simple, and while making every WM run would be a ton of work, if you first have a Wayland compositor making it possible to run simpler WMs wouldn't actually necessarily be so bad. Not likely to happen anytime soon, though, it's not exactly necessary and I'm not that much of a masochist :)

A somewhat more sane variant might be FFI bindings for wlroots so it's possible to use it to build a compositor, but that too seems an awful lot more work than an X window manager.

[–] Xenanthropy@beehaw.org 2 points 1 year ago

Very true! Well hey those are still some great ideas - would be really nice to see something like that exist for sure. Keep us updated on the project! Always love seeing new ruby stuff