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.

8 points

You win

permalink
report
reply
4 points

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

permalink
report
reply
1 point

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.

permalink
report
parent
reply
2 points

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)

permalink
report
reply
2 points

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…

permalink
report
parent
reply
2 points

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 :)

permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply
1 point
*
Removed by mod
permalink
report
reply
1 point

Not everything is on Github yet, and much of it is messy and with dependencies on my environment (in the process of cleaning that up), but if you click through the “cross-posted to:” link there are a bunch of links to repo’s of what I have pushed so far.

permalink
report
parent
reply

Unixporn

!unixporn@lemmy.ml

Create post

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

Community stats

  • 422

    Monthly active users

  • 705

    Posts

  • 5.8K

    Comments