So #jexer will be finding a new home shortly, because #GitLab continues to be the company that “wishes it was GitHub” rather than being happy as a company that “does its thing rather well”.

I was already annoyed with the “DevOps” CI/CD blah blah push from years ago, but I could turn all that off. I was also annoyed at how often I would have to grab a damn code from email to login, but again I lived with it. What created my ISSUE number 177 was all the “DevSecOps” AI bullshit, but again that was going to be a measured approach of a weeks-to-months kind of thing.

Not anymore. I am leaving #GitLab ASAP.

Because without notice, the “Issues” feature because renamed to “Work Items” and the URL was changed. (Because it helps “organize teams!” or some other bullshit that I YET AGAIN do not need or want.)

To the git hosting providers out there, you have one job: be a fixed point in cyberspace for a project’s code, issues, and other resources. A community might form around that point, but maybe not! You are not Social Media For Code Dorks, you are Glorified Modern FTP. When you change the externally-visible URLs to core features, you fail your job.

Fuck, not even SourceForge did this, and they started on goddamn cvs before subversion even existed! They’ve managed to go through multiple DVCS’es, multiple web hosting solutions, and survived a few years of parasitic owners and trashed reputation that frankly IMHO they have mostly paid for and are pretty fucking fine now.

It’s a win-win, honestly. GitLab doesn’t want projects like Jexer, and I just want to code in peace.

Future: migrate off GitLab (#177) · Issues · Autumn Lamonte / jexer · GitLab

GitLab's all-in push on AI "DevSecOps" isn't a good fit for how I think and work. Plus most of the folks in the xterm world I interacted with...

GitLab

https://companydata.tsujigawa.com/press-20251218-002/

JR東日本スポーツ株式会社(本社:東京都豊島区、代表取締役社長:穴吹昌弘)は、新コンセプトのフィットネス&スパ施設「THE JEXER TAKANAWA(ジェクサー高輪)」を、2026年春、TAKANAWA GATEWAY CITY内に開業いたします。

■プレスリリース配信元-JR東日本スポーツ株式会社
https://companydata.tsujigawa.com/company/4013301025090/

#JEXER #ジェクサー高輪 #フィットネス #プレスリリース #PressRelease #企業情報

TAKANAWA GATEWAY CITYに「THE JEXER TAKANAWA」誕生

TAKANAWA GATEWAY CITYにフィットネス&スパ施設「THE JEXER TAKANAWA」が2026年春開業。

全国企業データベース-プレスリリース配信サービス
Just released 2.0.0 of #jexer. Whew, drink time. #tui #xterm

@AutumnMeowMeow @Elizafox Oh hey that's the #Jexer author. Neat.

The only other place I'd even seen image support in terminals prior was #ranger #FileManager (unless you count that framebuffer image viewer, but that's a special case).

More stuff done on #Jexer. Apparently the guy who did it was very strict with his classes, making them horribly unusable for extension purposes. Worse, the library is no longer under maintenance. Still, there can be workarounds.

I managed to create custom classes (windows, buttons) that can have custom themes. I'm considering (not very probable, but it's a dangling idea in my mind) taking over the project and fixing all that stuff.

I'm getting the hang of it. I managed to create a custom Yes/No dialog class with customizable keys and custom border, etc.

Other dialogs are not affected. This is definitely an advancement.

Stumbled on my first Jexer roadblock: Showing a menu item description in the status bar.

It turns out that this functionality is NOT built-in, and I can't override classes like TMenu or TMenuItem (WTF?), they have final methods and private constructors. Who the hell came up with this idea???  

So, in order to be able to display a menu item's description text in the statusbar, I had to add an onIdle() event handler to the application's desktop object.

This handler finds the active menu in the menubar and gets the active menu item's id, then updates the status bar text with a string that I store manually using the menu item id as key.

It's a horribly complicated workaround, but it works! 😀

Best of all, since it's called in an onIdle() event, it only gets called after the last event is processed, which means it's efficient and doesn't consume any unnecessary cycles!

#Java #Jexer #TurboVision #programming

I'm progressing with my text-mode #Java GUI application.

Decided to switch from #Lanterna to #Jexer because the Lanterna API is a blackhole of documentation; there is little to none.

Jexer, OTOH, is based on #Borland #TurboVision which has plenty of documentation available - Several implementations of the TurboVision API are out there, and it's so damn easy to set up.

In a couple of hours I'm already adding the Main Menu.

Piece of cake.