Email or username:

Password:

Forgot your password?
Top-level
Devil Lu Linvega

When I wrote my last Electron applications, I had this controls registry that I'd populate with everything that the application could do, with names, shortcuts and the routine to fire when it happened.

This auto-generated my READMEs, and it also generated a OSX-type navigation menu for each application automatically.

That's what I'll do now.

43 comments
Devil Lu Linvega

So, I've been sketching an idea for a how the Hundred Rabbits programs can spit out their own documentation, so you don't need a guide alongside the program file.

My plan is to automatically populate a graphical menu from those, route keyboard controls directly to the menu tree, and spit out a plain-text README directly into the console on launch.

git.sr.ht/~rabbits/nasu/tree/m

Devil Lu Linvega

I've implemented the app manifest in #uxn, which effectively blocks me from sneaking undocument features since the key handlers MUST go through the menu tree.

Upon launching any app now, it will print the manual in the console, next step will be to draw the menu tree inside the application and make it navigable, a-la Macintosh.

Devil Lu Linvega

I was partly reticent to moving ahead with this thinking it would be a pretty big overhead, but in the end it simplifies controls-routing a lot, and for a very little overall cost.

nasu.rom(before): 6586 bytes
nasu.rom(after): 6942 bytes

Thomasorus

@neauoire Also the accessibility of your programs will increase.

Kira, cozy autumn fox 🦊

@neauoire I'm meh on the printing readme to the console on launch part, but having the apps be learn-able just by exposing the controls visually is, I think, an excellent move.

Devil Lu Linvega

@tty it will go away once I figure out how to draw the menu inside the application. It'd be redundant to have both, especially since it's a graphical app :)

[DATA EXPUNGED]
[DATA EXPUNGED]
Devil Lu Linvega

@bouncepaw I hope so! I'm trying to figure out how to handle passing the mouse vector to the menu and back to the app in a portable way. I should have a working graphical demo later today :)

Devil Lu Linvega

Started drawing the menu tree in the application interface! this whole thing is much easier than I expected it would be.

Devil Lu Linvega

There's very few things I enjoy programming more than GUI.

[DATA EXPUNGED]
Devil Lu Linvega

@bouncepaw VMs I think, like Orca is an absolute delight to program, because every tiny change bring about massive variations and it's very rewarding to just change a line or two and have a totally different program.

[DATA EXPUNGED]
Devil Lu Linvega

@protodrew I think it's largely due to having removed all the distraction and friction from the pipeline

spooky blip 👻

@neauoire That's slick. Are there plans to add keyboard navigation to that? I'm thinking of the common GUI thing on Win/Lin/etc. where tapping Alt sends you to the menu bar, and then you can arrow key through the dropdowns (or use mnemonic shortcuts)

Odo Klave

@neauoire I did not think I'd live to see the day your programs had a scrutable menu system : 😂 :tealheart:

Devil Lu Linvega

@dualhammers you might not remember this but Ronin, Dotgrid, Orca, Left, Nasu, etc.. all had menus like this: hundredrabbits.github.io/Dotgr

It's actually the second time that I go through that same motion, it's why it's been so easy to do, I already knew where I was going ;)

Odo Klave

@neauoire I haven't used Ronin since before it had a menu. I think I used Left when it had a basic one.

Glad to see you're still moving forward 🦵

Devil Lu Linvega

It's done.

Now all that's left is to display the shortcuts to the right of the label names, make pretty and optimize.

It'll be a 900-ish bytes library that I can include in each #uxn project and instantly get menus with self-documenting features.

Kira, cozy autumn fox 🦊

@neauoire nice! I appreciate that you're putting this into a reusable library too

Devil Lu Linvega

@tty I'll try to document it well enough so anyone can include an app manifest and have this supported.

I've been thinking I should finish up the coverage of the other apps first. Orca will be interesting because it has all sorts of weird key combinations.

wiki.xxiivv.com/site/roms.html

Pagh

@neauoire
Your creative process is so interesting and so genuinely inspiring
How do you recommend newer developers tackle projects? ^^

Devil Lu Linvega

@thefunnychannel Mhmm, that's a good question. Do you mean in term of finding happiness, or finding work?

Pagh

@neauoire
I've read a lot of your writings on happiness and it's genuinely helped me improve my lifestyle. Thank you.
But I mean in terms of creative projects like software or games.

Devil Lu Linvega replied to Pagh

@thefunnychannel Well, one thing that I found to be really freeing, is to forget about the idea that programming is a specific thing, like a specific language, or a specific computer.

A little while ago, someone told me that "all computers are virtual anyways, might as well use something you like" and I realized that you can basically programming in any sort of way that you want, if you learn things from first principles, you can shape computing in as exciting an adventure as you want.

Devil Lu Linvega replied to Devil Lu Linvega

@thefunnychannel It might not mean anything to you right now, because if someone told me that 10 years ago, I wouldn't really have been able to understand what they meant.

But instead of learning how to navigate around the hurdles of artifacts from history, build your own dream machines that allows you for thinking deeply about things.

Languages, frameworks, engines, not of that stuff matters.

Pagh replied to Devil Lu Linvega

@neauoire
I am still very new to development
I've been making music, art, and writing for years

But one day I want to have everything I use to make things all built by me

A lot can happen in 10 years and I'll remember what you've said throughout all of those years.

Pagh replied to Devil Lu Linvega

@neauoire
that is so freeing
I'm excited to go into new projects with that perspective now!

Devil Lu Linvega

Doing the final touches to the menu navigation routines, so things like re-selecting a menu closes it, and so forth. The drawing of the shortcuts is working pretty well.

Once I'm satisfied, it'll just be a matter of writing an app manifest for each other program, and include this one file.

Then hopefully, with this, the application will be slightly more accessible.

Devil Lu Linvega

Pasted the manifest framework code into noodle, 5 minutes later I had menu with shortcuts.

Mission successful.

⛧ esoterik ⛧

@neauoire looking forward to having these for nasu, just to remind me of all the capabilities and shortcuts

Devil Lu Linvega replied to ⛧ esoterik ⛧

@d6 I wish I could have added these sooner, but I would have never been able to implement it properly.

I had a bit of an epiphany on how to handle that stuff about 2 days ago. I can't wait to have it in Left actually.

Max Cahill

@neauoire this is a completely alien perspective to me haha
ui is my least favourite necessity

mcc

@neauoire I wonder if this system potentially increases the blind/screenreader accessibility of uxn apps

Devil Lu Linvega

@mcc I'm not sure, most of the applications I work on are effectively drawing/typography/animation applications, I haven't really thought too much about making them accessible to blind folks due to their nature, but it might make them more accessible to people with restricted mobility.

Go Up