More detail:

It's not going to have the same kind of infinite configuration that is both tmux greatest wonder, and its infinite curse. It's much easier to manage panes in tbim, and much easier to save and restore layouts from the get go, no strange incantations necessary.

One other design decision: it doesn't come with a terminal detach feature. I think that from an engineering point of view that's a separate concern that's better handled using GNU screen, or BSD window. After you log in to a remote terminal and you start as many screens as you want, you can then have a tbim on each of those. Only one pty per tbim screen, that's so much better in my opinion.

#tbim #bim #hmop #foss #golang

These are hmop, bim, and htop running inside panes controlled by tbim. Once I manage to iron a few more bugs in bim and hmop, the editor and the process viewer are going to be integrated in tbim, so tbim won't have to use an extra process, extra pty, and ipc to run hmop or bim. The terminal viewer will also be available, but for many daily tasks will be built-in already with far less complexity involved. Of course you can still run vim and htop too, using more resources.

This is a screenshot of the combo running on Linux. I had only tested often on Mac until today, so going forward the Linux releases will be on par with Mac releases.

The name "tbim" is really not a definitve name, I still don't know what it's going to be called. It may be called hmux or something in the end.

#bim #tbim #hmop #foss #golang

I think I'm done tweaking the visuals of hmop. Next step is maybe add filtering and reversing sort order with column toggles. Any more other htop-like functionality will be added after it's integrated with tbim.

#golang #foss #tbim #hmop

Instead of Hirsham's top (htop) this is an old tool called hmop (haitch's mop, or... monitoring ops... whatever)

Nothing too flashy here, the idea is to refactor it and make it one of tbim's Views, so you don't have to start a separate process with htop. hmop is not as feature-rich as htop, but it performs the same basic function. If somebody wants more, they can just open a Terminal view and run htop.

That way, tbim upon completion would integrate into a single CPU process, in a single shared memory space, and with a reduced number of ptys 80-90% of the core functions of:

  • tmux
  • vim
  • htop
  • tail / head / less

#foss #hmop #htop #golang #tbim #bim

Debugging my macros. The good thing is that after you have some well designed macros, most of the simple text user interface things behave almost like BASIC, or terminal printing in Pascal.

Also a good chance to dog food myself using the barely improved editor, and trying to make the zenas assembler work and assemble my non-trivial Z80-based text editor. Dog food is good food!
The only problem I found today was a regression in the vim-like command to jump to a line number. One other thing I noticed is that horizontal scroll doesn't work reliably when you have very long lines that extend beyond the right margin.

That being said, It's a little miracle I have never seen it crash, not a single time, during actual development work.
The best of news is that there are not many news on that front!

#bim #tbim #zenas #z80 #zen80 #zenzx #retrocomputing #ZXSpectrum #speccy #Spectrum

@Kroc I've created a simple interface that has only two essential methods: Render(), and HandleEvent()
Every embedded panel now must satisfy that interface. This enables me now to have different implementations of what goes inside a panel:

  • Text View
  • Terminal View
  • Bim View

The Text View now has at least a vertical scrollbar. I thought it was going to take much longer, but the needs of integration made it surprisingly easy.

Text View is now the default viewer if you don't place anything else in a pane, see it working in the top left pane.

#bim #tbim

tbim, bim, zenas, zen80

Yes, of course all of these things can be done mixing and matching disparate tools in some other ways, but as a matter of access and code legibility you will be able to directly examine every single bit of the toolset and toolchain.

Every single bit traceable, nowhere left for bits to hide. That's something you can't do unless you're a highly sophisticated specialist today.

#bim #tbim #zenas #zen80 #zenzx #retrocomputing #golang #foss

zenas, zen80, bim and assorted tools

Things starting to fall into place like Tetris bricks!

I still can't glue the ZenZX emulator to the text mode editor, but when I decouple the text mode renderer from the editor logic (sometime next year), I should be able to render the editor and other tools using Deluxe UI in a GL-accelerated window, and I should be able to embed ZenZX in a bim pane.

But essentially everything you see in this screenshot, from tiling manager, to editor, to assembler, to emulator, is one single coherent and consistent codebase (with the sole exception of the Spectrum ROM!)

Lots of work ahead in 2026!

Longer term project beyond 2026 will be to get the language ual off the ground and port all these things to ual.

#bim #tbim #zenzx #zen80 #zenas #foss #golang #retrocomputing #z80

bim and tbim

  • bim is the barely improved editor
  • tbim is a tiling manager

The tile manager tbim almost works, and bim works save for a few missing functions. The basic Go interfaces for plugging in new viewers are in place, in code. That means that creating new viewers that run inside a pane is substantially easier, and it requires none of the unix tooling glue you typically have to patch together when using tmux with an assortment of other tools.

The only pane viewers available right now are Text View (with scrollbars! by popular demand!) and Terminal View.
What comes next is bim integration so that any pane can become a bim editor without launching external processes. This greatly helps resource management in constrained environments (like rpi, routers, phones, etc)

For the time being, the screenshot shows the tbim tile manager displaying Text View panes, and one pane running a Terminal view with tileless bim running in a separate process on top of it. When tbim and bim are fully integrated, tbim and bim will become one single application and it won't need to launch an external process with a pty to run an external bim, it will all be done internally.

And the retrocomputing bit? Ah, yes, it can run a zen80-based Z80 for scripting πŸ™‚

Any questions?

#bim #tbim #foss #golang #retrocomputing #zen80 #z80

And here we are, once again at the beginning of another work week.

#MondaySelfie #MondaySucks #TBIM #MondayVibes #Coffee #Caffeine #OfficeSelfie #CubicleSelfie