The window manager's dropdown menu is its own little Uxn program connected to the main OS node, that will spawn new program nodes.
Top-level
The window manager's dropdown menu is its own little Uxn program connected to the main OS node, that will spawn new program nodes. 35 comments
@creitve having only stdin/stdout/stderr for program communication, and the pain of forking routing, and in this case, one thing I really like, is allowing one program to poke() at another program's running memory as a form of pipe. As well, as all this is stored as an image, recovering state is going to be really easy, it's not tangled into any parts of the subsystem. @pikuseru @creitve yup, I'm going for something similar, although, programs don't expose any symbols table. So I can't say, write to a specific value stored in an object, the "objects" have a singular API which is the varvara specs. It's kind of simplistic, but it should get me where I need to go :) Routing the menu directly into Left makes Left work as a sort of debugger for message passing. @neauoire this really reminds me of some of the things @prahou was scripting in ratpoison, but ohmygod your ui looks elegant! crazy what you can come up with if you leave the constraints of existing software :) (side note: i've been thinking about a low-power portable computer system for ages now and this looks like the dream wm/os for it! do you know what the current state of running uxn close to metal is?)
[DATA EXPUNGED]
@jameschip yup, so you can connect one output to various programs to fork the stream.
[DATA EXPUNGED]
@jameschip yeah that was the idea. Data can go both ways, but it uses uxn's event flow, so there's 256 bi-directional named ports to communicate data with. Each can trigger various events in the next program, like a refresh, a resize, a note, etc..
[DATA EXPUNGED]
@jameschip not really, it just has to be a valid varvara rom(standard uxn program), they always have the same base API to draw pictures, and write files and so on. I can move the cursor of another application by writing to that application's Mouse/x port, and that, in turn, triggers a Mouse/vector, which the application will respond to because that's what roms do.
[DATA EXPUNGED]
@jameschip yup! That's how files, stdio, etc are passed around in Varvara. I should have to need the file's symbols to communicate with it. @neauoire You're doing something amazing now. I don't understand what it is but I like it and please don't stop. It's starting to be usable enough that I can build the OS from within itself. I no longer need to rely on unix pipes to route data between programs, I can just paint little lines between them. :mac: The linter rom is the little black dot, I currently don't have anything to draw roms that don't use the screen device. @neauoire i'm so excited watching you work on this :D @flbr yes! I'm hoping to grab the rom's metadata next and display it :) you're one step ahead of me! Finally figured out a robust way to fork all communication, so I can send the data to different programs, so say I want to print an image alongside its hexadecimal value, I don't have to pass it into the image viewer and then to the hex viewer. Those are all uxn programs, the dropdown is its own rom, so is the log viewer, it keeps the emulator really simple, giving it the only task of managing Uxns: @neauoire does the sender wait for all of the receivers to indicate that they're ready to receive? Do they have input buffers that are always writeable? I'm wondering what happens if multiple programs try to write send to a receiver at once, or if one receiver becomes 'unready to receive' during its execution @voxel yeah it will wait, and events will be queued until it's ready to go through. I might have fun with more non-deterministic stuff in the future, but I haven't found a use for it yet, so it's all sequential atm. @neauoire so excited to see this evolve. you got me here wondering about the implications of connecting ports other than console in and console out, this aspect could be really fun to explore! @bellinitte yeah, there's plenty to try with this! I feel like I haven't even scratched the surface @neauoire @bellinitte I always wondered what it would be like to have an OS where I could explicitly and visually patch sound, data, events, hardware etc like a modular system. @neauoire @bellinitte I think it would be pretty cool to be able to flip all the windows over and then suddenly it’s all like Propellerheads Reason with skeuomorphic weighted patch cables @leon @bellinitte Oh shit I remember that stuff well <3 In the uxn world, cables are always showing tho, there's no flipworld. @neauoire @bellinitte you might want to consider some kind of tooling to manage cables down the line, if a session ends up like any of my patches it’s going to be a bit of a rats nest @leon @bellinitte modules are actual programs so there shouldn't be too much external routing, but we'll see. It's only my second day using a modular OS to my daily work. @neauoire Awesome. I am blown away by the fact how capable UXN is. 🤩🎉 @neauoire this is incredible, i can imagine routing audio through a bunch of little programs for doing music, mixing, etc. @neauoire yay Display Postscript! I'm not sure if it worked anything like this but it's what this reminds me of. |
I don't know why I didn't do all this sooner, I wasted so much time trying to contend with i3 and unix's bullshirt.