Is anyone using Arcan?

I considered posting this elsewhere on the forum. But this seemed like the best place.

I've been playing with Arcan and a DE built on top of it called Durden for the last year or so over a variety of OSs (mostly OpenBSD and FreeBSD). I'm shocked I don't see more people talking about it or using it. Since you get both X11 and wayland application support with it for free. But it also brings a ton of new abilities to existing applications and allows you to do a lot of things that aren't possible under X11/wayland/traditional shells in your own applications and scripts.

For example, and I use this example often whenever I bring Arcan up. You get real networking support for GUI applications over the wire. On my local LAN I can now do things like open up an emulator/video game. Then I can drag+drop/move that window to another machine on my network as long as it speaks A12 (Arcan's new protocol think of it like X11). By drag+drop/move I mean I can use my mouse or keyboard to send that running application to another screen on another machine as if it's just another monitor displaying my desktop on the first machine. The state of the application is sent over the wire then the second machine keeps running the GUI application as if it was always running on that machine locally.

Now imagine you can do the same thing with any application you use everyday. No dealing with ssh, X11's issues or having to resort to something like VNC. Doesn't matter what compositor you're using. Don't have to resort to anything needing direct access to DRM. It just works and you get it for free with everything that displays something via the display server.

It's kind of like Plan9's 9p protocol in many respects. Except, instead of being aimed at sharing files/hardware over a network it was designed to share GUIs (although, with some hacking it can do many things 9p can do). It's really an amazing project and a total game changer if you're into the idea of sharing your applications over multiple machines both on your LAN and over the internet.

You can read more about it here. Tons of long blog posts about what it can do and its design (and goals):


Here is an introduction to things in video format:

View: https://www.youtube.com/watch?v=07nqZIFRDJg


Oh and don't think it's just for point-and-click floating gotta do everything through a Windows/Apple-like GUI type of people either. If you're someone that lives in terminal/shell there are many exciting things happening within the Arcan project that would interest you. Rather than try to explain on my own I suggest you check out these articles on the above website and give the video examples of a look:


Note that last link is the last in a series of articles from initial idea to (mostly) finished product. As you can see from the videos/gifs Cat9 can do much more than any terminal/shell you've used in the past. Stuff like multiple jobs and job control. Traditional terminal/shell/shell scripting has a lot of issues and legacy cruft as I'm sure most of you are aware of. On top of many other issues that are annoying to deal with day-to-day.

Of course, using arcan doesn't force you to give up your preferred terminal emulator and shell because they're all fully supported through Arcan's ability to run X11 and wayland stuff natively. Much better than Xorg and the wayland compositors do in my opinion.

Seriously, give it a look. You won't be disappointed. Durden may not be for everyone but it serves as a good proof of concept and supports everything I've thrown at it. Hopefully, we'll see more DEs and WMs that are Arcan native built around it in the near future as Arcan creeps closer to the 1.0 release. I am personally writing one around it at the moment (well 2, but another story for another time).

Arcan and the standard tools (Cat9, Durden and others) are packaged by just about every BSD and Linux distro I've checked the ports tree/repos for in the last year or so. The project's developers are proactive about ensuring it remains fully portable to multiple OSs (including non-UNIX-like OSs) and many of them maintain those ports/packages themselves. The leader of the project is also very active and if you go to the official IRC channel for the project (#arcan@irc.libera.chat) him and the rest of the team are always willing to help you, answer questions and all that good stuff. Friendly bunch of folks. They even get together in-person pretty often and hack on the project together. So if you're really into helping out maybe you'd like to read about the regular hackathons.

I'll leave you with a couple of more videos to show off what the latest releases can do. Note that while I've embedded youtube videos there are many more demos (some more up to date) on the linked webpages which are articles from Arcan's main website. I suggest reading the linked articles when you find the time.

Cat9 (Terminal emulation/shell):

View: https://www.youtube.com/watch?v=39ob0IO2Za0


Pipeworld (If you think Plan9's 9p is awesome you'll love this):

View: https://www.youtube.com/watch?v=FgHMU7m9-I8

Live migration of running application between two systems that speak A12 protocol/running Arcan display server (Article/write-up):
View: https://www.youtube.com/watch?v=_RSvk7mmiSE


I could go on but the information about Arcan is much better on the developer's own blog. I'm just a humble user writing some stuff on top of it at the moment. But I'm considering jumping in to help with developing some of their tools myself (or writing man pages) if I find the time. My long term goal is to probably fork one of the BSD kernels and build an entire OS for multimedia work on top of the A12 protocol and Arcan suite of tools (hence why I'm making a WM/DE on top of it to learn at the moment).

One of the things I've wanted for many many years is an OS that works like Plan9 but still has full support for running all UNIX/POSIX/Linux-only and NT/Win32 applications natively. Which also gives me PC-98, Amiga and DOS applications as well through acceptable emulation methods (in other words: I can pipe them into POSIX/Win32/NT applications easily).

FreeBSD with Arcan/A12 protocol running on top of the kernel is basically 90% of the way to that goal. I've also always badly needed an OS that can allow me to share multimedia (mostly video/audio) over the LAN in real time since the early-mid 90s. Trust me it has always been a huge pain to do that and I never understood why everyone always tried to make it so difficult. Especially since 9p/Plan9 solved that issue in 1992. On my own LAN I've had to resort to doing several direct ethernet cable runs between machines and using various methods to send digital/analog signals over the wire directly with some type of adapter+capture/sending/display device on each end. I even have many of these for input devices like keyboards and mice so I can control some machines remotely from the same desk.

The tools I need to use for my day-to-day work were always Amiga, PC-98/DOS then later Win32/NT. In the past few years Linux-only focused in many cases (ffmpeg/vapoursynth, blender and many many others). So I've been reduced to having to move audio/video around for years either with direct analog (later digital) cable runs or having to send lossless video/audio over the LAN so it could be processed and encoded on a beefy encoding server (or clusters of machines).

This often involved doing multiple ripping/capturing+editing/filtering+plus encoding (first to lossless then to lossy after sending TBs over the wire) which required tons of storage space, wasted tons of bandwidth, put wear and tear on my hardware and most importantly wasted a lot of my time. Even today I am reduced to doing this all day every day for most of the things I have to work on. Meanwhile, for a lot of stuff I'm also still required to keep Windows 2k/XP-era machines and even Amigas running to work with old analog sources and early digital a/v files. Or I'm having to build one-off hardware to get at analog sources fully digitally (like domesday duplicator).

Arcan's tool's and protocol help me eliminate having to waste a lot of computing resources and makes it easier to move things around and manage all jobs happening on all my local and remote systems. I'm having to unlearn a lot of bad habits I didn't know I had. Suffice to say I really like Cat9. Being able to view multiple video streams in my terminal while managing batches of encoding/ripping/frame servers has been a huge game changer for me. It's like having tmux but for video. It's hard to describe just how wonderful it is.
 
Back
Top