./bin/mu -B -o ... -p muos/amd64 ... target.
@prologic@twtxt.net Damn, nice! I know exactly what you mean – the output/screenshot looks trivial, but there’s so much going on behind the scenes. 😃
Did you do the whole dance with BIOS boot and everything?
Btw @movq@www.uninformativ.de you’ve inspired me to try and have a good ‘ol crack at writing a bootloader, stage1 and customer microkernel (µKernel) that will eventually load up a Mu (µ) program and run it! 🤣 I will teach Mu (µ) to have a ./bin/mu -B -o ... -p muos/amd64 ... target.
@eldersnake@we.loveprivacy.club haha! I read as Golang the first time too. It is just the way our minds work. :-P
@kiwu@twtxt.net problems are aplenty everywhere, Kiwu. As we all know, ups and downs flare often times when we least expect them. When downs come, don’t despair: nothing lasts forever, and ups will soon come, one way or another. Pa’lante!
@kiwu@twtxt.net me too, me too! Thank you for sharing! 🫶
@kiwu@twtxt.net Always stay positive! 🙏
tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace… :-D Yep, suddenly there went my X…
@movq@www.uninformativ.de I guess so, yes. I read something about that in some ticket. In v3 the terminfo support was dropped, though. I’m still on v2 at the moment.
tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace… :-D Yep, suddenly there went my X…
@lyse@lyse.isobeef.org … I sure hope that they generate these files from the general terminfo database instead of maintaining their own DB. 😳
@movq@www.uninformativ.de Woah, that’s really amazing progress! :-)
@bender@twtxt.net I’m already using it for tracktivity (meant for tracking activities and events, like weather, food consumption, stuff like that), which is basically a somewhat-fancy CSV editor:
https://movq.de/v/f26eb836ee/s.png
I have a couple of other projects where I could use it, because they are plain curses at the moment. Like, one of them has an “edit box”, but you can’t enter Unicode, because it was too complicated. That would benefit from the framework.
Either way, it’s the most satisfying project in a long time and I’m learning a ton of stuff.
tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace… :-D Yep, suddenly there went my X…
@movq@www.uninformativ.de Yeah, I know that terminals are super weird and messy. In both the KDE Konsole (identifying itself as TERM=xterm-256color) and xterm (TERM=xterm) it just works flawlessly. My urxvt (TERM=rxvt-unicode-256color) just doesn’t. I also tried messing with TERM in urxvt, but no luck so far.
tcell.Key constants and typing different key combinations in the terminal to see the generated tcell.EventKeys in the debug log. Until I pressed Ctrl+Alt+Backspace… :-D Yep, suddenly there went my X…
@lyse@lyse.isobeef.org Unix terminals are quite limited in that regard. 🫤 You know how Ctrl works? The XOR 0x40 thing? And Alt doesn’t exist at all, it’s just a prefixed ESC byte.
I was surprised to see curses knowing about “Shift+Tab”, wondering how that is supposed to work. Well, it’s an escape sequence, of course (depending on the terminal, of course).
@movq@www.uninformativ.de that some lovely development from the initial one. Curious to know where this will lead!
@prologic@twtxt.net Probably not, but thanks. 💚 It’ll get better.
@movq@www.uninformativ.de Anything we can do? Lend a listening ear? 👂
@prologic@twtxt.net Work and the general state of (gestures broadly) everything.
@movq@www.uninformativ.de What’s up? hmm 🧐
@movq@www.uninformativ.de I figure that’s exactly what it is.
@bender@twtxt.net ICQ, yeah, I vaguely remember these times, despite I still know my ICQ number like it was yesterday. :-D
@shinyoukai@neko.laidback.moe No, it’s not dead. The one account in question actually is on jabber.org.
@bender@twtxt.net I vaguely remember this, some leftover from the old-style hashtags? The (#foo) stuff? 🤔
@prologic@twtxt.net it really is not blank. It reads:
2026-01-12T23:34:11+01:00 (you must be root)
@klaxzy@klaxzy.net nothing like a blank twt eh? 😅
@shinyoukai@yume.laidback.moe Jabber = XMPP.
@movq@www.uninformativ.de Sorry, I meant the builtin module:
$ python3 -m pep8 file.py
/usr/lib/python3/dist-packages/pep8.py:2123: UserWarning:
pep8 has been renamed to pycodestyle (GitHub issue #466)
Use of the pep8 tool will be removed in a future release.
Please install and use `pycodestyle` instead.
$ pip install pycodestyle
$ pycodestyle ...
I can’t seem to remember the name pycodestyle for the life of me. Maybe that’s why I almost never use it.
Pep8 is deprecated, I think
Hmm, I don’t think it is, this still says “Status: Active”: https://peps.python.org/pep-0008/ 🤔
@lyse@lyse.isobeef.org I even got spam on ICQ, back when ICQ was a thing. I see spam as an innate thing. 😅
rustfmt. I now use similar tools for Python (black and isort).
@movq@www.uninformativ.de @prologic@twtxt.net That’s what I like about Go, too. However, every now and then I really dislike the result, e.g. when removing spaces from a column layout. Doesn’t happen often, but when it does, I hate it.
I think I should have a look at Python formatters, too. Pep8 is deprecated, I think, it’s been some time that I looked at it.
@kiwu@twtxt.net what’s going on, Kiwu?
@kiwu@twtxt.net Oh? 🤔 What’s up? Can you share? Or just having a hrd time? 🤗
rustfmt. I now use similar tools for Python (black and isort).
@movq@www.uninformativ.de Welcome to the dark side 🤣
@shinyoukai@yume.laidback.moe Hopefully, yes. Haven’t tried it yet.
@movq@www.uninformativ.de I don’t think he is 🤔
@shinyoukai@neko.laidback.moe mckinley is back? Where? 🤔
@shinyoukai@neko.laidback.moe Whoohoo! That’s a start to cross-platform support 🤣
@movq@www.uninformativ.de Aha! Well, happy hacking. A tiling window manager seems to be good fun. :-)
@shinyoukai@neko.laidback.moe No email has arrived here? 🤔
@shinyoukai@neko.laidback.moe Okay I pushed a commit that hopefully fixes this. I hope!
@shinyoukai@neko.laidback.moe Yes; however the interpreter is also platform dependent and relies on making raw syscalls. This is so the runtime semantics remain the same between the two execution modes.
I’ll see if I can add support for linux/amd64 and netbsd/amd64 for the VM at least.
@lyse@lyse.isobeef.org It’s not super comfortable, that’s right.
But these mouse events come with a caveat anyway:
ncurses uses the XM terminfo entry to enable mouse events, but it looks like this entry does not enable motion events for most terminal emulators. Reporting motion events is supported by, say, XTerm, xiate, st, or urxvt, it just isn’t activated by XM. This makes all this dragging stuff useless.
For the moment, I edited the terminfo entry for my terminal to include motion events. That can’t be a proper solution. I’m not sure yet if I’m supposed to send the appropriate sequence manually …
And the terminfo entries for tmux or screen don’t include XM at all. tmux itself supports the mouse, but I’m not sure yet how to make it pass on the events to the programs running inside of it (maybe that’s just not supported).
To make things worse, on the Linux VT (outside of X11 or Wayland), the whole thing works differently: You have to use good old gpm to get mouse events (gpm has been around forever, I already used this on SuSE Linux). ncurses does support this, but this is a build flag and Arch Linux doesn’t set this flag. So, at the moment, I’m running a custom build of ncurses as a quick hack. 😅 And this doesn’t report motion events either! Just clicks. (I don’t know if gpm itself can report motion events, I never used the library directly.)
tl;dr: The whole thing will probably be “keyboard first” and then the mouse stuff is a gimmick on top. As much as I’d like to, this isn’t going to be like TUI applications on DOS. I’ll use “Windows” for popups or a multi-window view (with the “WindowManager” being a tiny little tiling WM).
@shinyoukai@neko.laidback.moe if you don’t show me the actual full stacktrace, I can’t fix the problem 😢
@shinyoukai@neko.laidback.moe the whole bridge idea is a mistake done twice (I encouraged the first time, it was a mistake to do so). In this case, the “Babel Tower” works; there is no need to interact with “others”, let it be just twtxt.
@movq@www.uninformativ.de Oh, I see. Unfortunately, there seems to be no box drawing character for a corner with a diagonal line. Indeed, this is probably the best you can do.
Is the single character enough to hit it comfortably with the mouse, though? Maybe one additional to the left and above could be something to think about. Not sure. Of course this complicates it a bit more. Personally, I like fullscreen windows, so I’m definitely the wrong guy to judge this or even comment on. :-)
@lyse@lyse.isobeef.org Ah, the lower right corner is different on purpose: It’s where you can click and drag to resize the window. https://movq.de/v/cbfc575ca6/vid-1767977198.mp4 Not sure how to make this easier to recognize. 🤔 (It’s the only corner where you can drag, btw.)
@bender@twtxt.net Seriously, if I ever get a CRT monitor again, I want it to be an amber one and then hook it up to some 8086. 😅 Only problem is that this stuff is expensive as hell now …
@movq@www.uninformativ.de Very nice, it’s coming together!
Just in case you haven’t already noticed it, the right lower corner of the window in front was not updated when it received the focus. 8-) (In tt I also render focused text input fields with a doubly lined border, where unfocused ones have a single one.)
Work kills the soul
Since most of the jobs that we do nowadays are simply meaningless: Yes. Work kills the soul.
Work kills the soul
it sure can! 🤣
@movq@www.uninformativ.de What’s Email?! 😂
@kiwu@twtxt.net better now, with you around! 🙈
@lyse@lyse.isobeef.org I’ll let you guys know when/if it’s ready to get published. 😅 There are still rough edges and, obviously, very few widgets. Most importantly, a list view and a table widget are missing. But my vacation is over now, so things will crawl to a halt.