What have you been up to, @kiwu@twtxt.net? Already melted in this brutal heat?
In light of recent events, check out your mentions. :-)
New Google Earth AI Tool Could Fuel Misinformation, Experts Say
Google has integrated its Nano Banana 2 image generator into Google Earth, allowing users to place AI-generated events and objects onto real satellite imagery. The company says its AI-generated images contain invisible watermarks detectable through Gemini or Lens, but the BBC found those safeguards and some third-party detection tools can be fooled … ⌘ Read more
Earth’s Biggest Disasters Strike In a Hidden Pattern Every 27 Million Years
A new analysis of 89 major geological events over the past 260 million years found evidence that mass extinctions, volcanic eruptions, ocean crises, and other upheavals may cluster around a roughly 27.5-million-year cycle. The cause remains unknown, with possibilities ranging from mantle activity and orbital changes to spe … ⌘ Read more
AMD ROCm Committed To Six Week Release Cycle Moving Forward
One of many interesting takeaways from this week’s AMD Advancing AI event in San Francisco was word that ROCm will be on a rigid six week release cycle moving forward… ⌘ Read more
AMD Advancing AI 2026: Open, Open-Source & More Open-Source
At this week’s AMD Advancing AI 2026 event, “AI” was mentioned thousands of times in talks and in demos. As expected. Beyond that, the other term likely most heard during the event was “open”… Not particularly new for AMD with their long history of open-source efforts but I’d wager at this year’s AMD Advancing AI 2026 event they were more acutely bringing up open-source, open ecosystems, and open standards. Certainly seemed like an uptick in “open” men … ⌘ Read more
Ryzen AI Software 1.8 Released With New Model Support, More Optimizations
Ahead of Lisa Su’s keynote this morning at the AMD Advancing AI event, tagged on GitHub just now was the Ryzen AI Software 1.8 release for helping to deploy AI models on Ryzen AI PCs… ⌘ Read more
Lemonade 11.5 Local AI Server Released With Completed Lemonade Router
Just one week after releasing Lemonade 11.0, the Lemonade 11.5 local AI server was released today for this open-source AMD backed project during their AMD Advancing AI event… ⌘ Read more
Hurray, I can now press gg instead of g to go to the top in tt. Much better! :-) Other multi-key combinations are also easily possible now.
I should probably write a real article about this at some point, but here we go. The only downside with my new key binding system is that it breaks tview’s established pattern. You’ve got an InputHandler(), that is implemented using WrapInputHandler(…). It typically then directly implements the switching logic depending on the key press. Something like this:
func (w *Widget) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
// WrapInputHandler allows for intercepting key events with SetInputCapture(…)
// from the outside for customization. This handles the default key bindings.
return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
switch event.Key() {
case tcell.KeyRune:
if event.Modifiers() == tcell.ModNone {
switch event.Rune() {
case 'k':
w.scrollUp()
return // we already handled the event, stop processing
case 'j':
w.scrollDown()
return
}
}
}
// We didn't handle the key event. Maybe the parent
// widget knows what to do with it.
if handler := w.parent.InputHandler(); handler != nil {
handler(event, setFocus)
}
})
}
From the outside, you can intercept and either stop or continue the widget’s original key handling with a potentially rewritten key event using SetInputCapture(…):
w := NewWidget()
// customized or additional key bindings
w.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
switch event.Key() {
case tcell.KeyUp:
// Rewrite the event, so the "cursor up" key is an alias
// for the vim key binding "k", that is handled by the
// wrapped input handler above. (I know, I know, this is a
// completely unrealistic example, why would anyone use
// cursor keys when there are vim key bindings available?!)
return tcell.NewEventKey(tcell.KeyRune, 'k', tcell.ModNone)
case tcell.KeyRune:
if event.Modifiers() == tcell.ModNone {
switch event.Rune() {
case 'q':
app.Stop()
// we already handled the event, do not pass it
// to the wrapped input handler above
return nil
case 'r':
toggleMessageReadStatus()
return nil
}
}
}
// we didn't handle the event, pass it to the wrapped
// input handler above
return event
}
Since they all expect a single key, I’ve noticed that using multiple dedicated KeyBindings of mine on these different levels kinda breaks multi-key handling with common prefixes. The outer-most KeyBinding captures the prefix, but it can’t transfer it to the inner one if not handled by the outer one. At least not without some more (potentially ugly) changes. So, I now have to work with just a single KeyBindings object for the entire widget chain (if it consists of multiple other widgets or the regular input handler and input capture are in the game). The outside needs to register all its key bind customizations or extensions at the same level that the original widget handles its default ones. Doable by exposing the widget’s KeyBindings instance, but not pretty. You always have to keep this in mind.
With the KeyBindings, it will look like that:
type Widget struct {
parent tview.Primitive
// make it available to children or the outside either by
// direct field access or by providing a getter method
KeyBindings *bind.KeyBindings
}
func NewWidget() *Widget {
w := &Widget{KeyBindings: &bind.KeyBindings{}}
w.KeyBindings. // default key bindings
Bind0(bind.KeySequence('k', w.scrollUp).
Bind0(bind.KeySequence('j', w.scrollDown)
return w
}
func (w *Widget) InputHandler() InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
// also note the missing support for focus transfer at the moment
event = w.KeyBindings.Capture(event)
if event == nil {
return
}
if handler := w.parent.InputHandler(); handler != nil {
handler(event, setFocus)
}
}
}
And then from the outside, or in a child widget:
w := NewWidget()
w.KeyBindings. // additional or customized key bindings
Bind1(bind.KeySequence(tcell.KeyUp), func(*tcell.EventKey) *tcell.EventKey {
return tcell.NewEventKey(tcell.KeyRune, 'k', tcell.ModNone)
}).
Bind0(bind.KeySequence('q'), app.Stop).
Bind0(bind.KeySequence('r'), toggleMessageReadStatus)
When directly working with tview primitives that are not part of custom widget implementations, the following works well so far:
textView := tview.NewTextView().
SetWordWrap(true).
SetText("…")
SetScrollable(true)
textView.SetInputCapture((&bind.KeyBindings{}).
Bind0(bind.KeySequence('q'), app.Stop).
Bind1(bind.KeySequence('g', 'g'), func(*tcell.EventKey) *tcell.EventKey {
return tcell.NewEventKey(tcell.KeyHome, 0, tcell.ModNone)
}).
Capture)
I need to sleep on this some more.
Also, writing very long messages like this one is really not all that fun in tt’s editor. I should absolutely provide a way to shell out to vim.
(Took me about one and a half hours to compose, holy crap. But not only because of not using vim. Although, that might have saved me a quarter hour or so for sure. Proof-reading this message also uncovered quite a few bugs in my real documentation. So, that’s a big win!) Good night!
The firefly season is ending. I only saw 200 of them or so. There was one female directly on the forest road. If only I brought my camera and tripod, that would have worked out I reckon. I had my torch with me and this looked really cool.
Dusk took forever today. It was really long light out there. Full moon is tomorrow.
On the way back, there was suddenly a load clatter and crashing sound 100 meters away from me. I didn’t see anything, but a tree fell over in the forest out of the blue. Fuck me dead, that was scary as hell. Luckily, I was already on the main road, only meadows around me. It’s the second time I witnessed a tree accidentally coming down. The first one was during the most expensive hail storm in our area so far in 2011 behind me when setting up a summer camp. The weather changed in less than 15 minutes.
Maybe not such a good idea to go out so late alone. :-? Any rustling in the forest immediately reminded me of the boar the other day. Luckily, always false alarm. Still a bit terrified from that event.
Ah, with lazy loading, browsers only start loading images when the load event occurs. And that takes time. Hm. Not a fan, I might revert this. 🤔
‘Fingerprints’ of Black Hole’s Event Horizon Detected For First Time
Researchers say they detected the first gravitational-wave “fingerprints” of a black hole’s event horizon by analyzing the final moments of the powerful GW250114 merger. The findings support Einstein’s general relativity and may eventually help probe frame dragging and quantum fluctuations near black holes. Phys.org reports: For the new r … ⌘ Read more
Early AMD GCN GPUs Seeing Improved GPU Recovery - Another Valve-Led Linux Improvement
Early AMD Radeon Graphics Core Next “GCN” GPUs are seeing work to improve the GPU recovery process in the event of hangs. This work is yet another improvement for older AMD GPUs being led by Valve’s open-source Linux graphics driver team… ⌘ Read more
In the light of current events, I will first consult my pillow and only then write an article about readable code.
HPE Tempts VMware Users, Partners With Year of Free Virtualization Software
An anonymous reader quotes a report from Ars Technica: Hewlett Packard Enterprise’s (HPE) new virtualization software promotion will likely pique the interest of end users and resellers who are unhappy with Broadcom’s pricing of VMware. During its HPE Discover event in Las Vegas this week, HPE announced that customers could u … ⌘ Read more
tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:
Now I’m curious how movwin deals with that. ;-)
Focus handling? I hardly remember, lol. 😅 Did that 6 months ago and haven’t touched it since. Let’s see.
The core main loop gets keyboard/mouse events from curses. At this level, the main loop only knows about exactly one widget, so it passes the event to that widget (whatever that is, doesn’t matter – they all inherit from the Widget base class, it could be a Window, a WindowManager, or an Edit box directly).
The outermost widget is usually a WindowManager. It implements a few hotkeys of its own, like switching to another window. If none of those hotkeys match, it passes the event to the currently focused window.
Same story here: Window implements some hotkeys (like opening the menu bar). If none of those match, then … the magic happens.
Each Window acts as a focus manager. It can descend into its child widget hierarchy and collect all child widgets in a depth-first search. They are collected into a flat list. Each Window then has an attribute _focus_position, which is an index into that list. Pressing Tab or Shift+Tab increases or decreases that index and that allows you to select the next/previous focusable widget in the current window.
Eventually, Window passes the input event to the currently focused widget.
Usually on initialization, the application can ask a Window object to focus a certain widget. The file selection dialog does that, for example, because the “natural” focus order would be to focus the Edit box at the top of the window first – but that’s not what the user wants, the Table showing the list of files should be focused.
If no widget ever feels responsible for handling a certain input event, then there’s a global unhandled_input callback that the application can provide (same as in urwid).
I think that’s it.
Hm, that’s more complicated than I remembered, but apparently it works fine, because I completely forgot about this. 😅 All I did in the last few months was make new classes that inherit from Widget, like the new Table class or Edit or HexEdit or whatever, and if they want to get input events, then they must implement the methods input_key() or input_mouse().
Does this answer your question? 😅 (I admit that I didn’t exactly understand your scenario, so I just went ahead and rambled about my implementation. 😅)
Protesters crash heavily guarded One Nation event
Angry protestors have forced Pauline Hanson and Barnaby Joyce to make a back-door exit from One Nation fundraising event. ⌘ Read more
[$] An overlayfs update
In a shortened session in the filesystem track at the 2026 Linux Storage,\
Filesystem, Memory Management, and BPF Summit, Amir Goldstein gave an
update on the overlayfs\
union filesystem. There are some new features over the last few years
that he wanted to mention, along with looking at the status of nesting
overlayfs layers. The composefs use case
that was [discussed at th … ⌘ Read more
Donald Trump’s White House UFC Event Would Be Embarrassing Anywhere
A Monster Energy-sponsored MMA show on the White House’s South Lawn was never going to be the height of dignity. But UFC Freedom 250 is failing to clear even the lowest bar. ⌘ Read more
Short makes bold Commonwealth Games claim after having pizza and Hackett on his mind
Sam Short showed he is in scintillating form ahead of the Commonwealth Games and Pan Pacs by winning his fourth event at the Australian trials in Sydney. ⌘ Read more
Protesters outside the Melbourne venue hosting a funding event for Pauline Hanson
A heavy police presence was on hand as protesters gathered outside the fundraiser ⌘ Read more
Protest plans force One Nation to shift location of Melbourne fundraising event
A planned One Nation fundraiser has been moved to a new, secret location after protesters vowed to demonstrate outside the original venue. ⌘ Read more
Protest plans force One Nation to shift location of Melbourne fundraising event
A planned One Nation fundraiser has been moved to a new, secret location after protesters vowed to demonstrate outside the original venue. ⌘ Read more
A scarf on a seat does not reserve it: MCC lays down law to members
Melbourne Cricket Club members who reserve seats with scarfs, drink alcohol in dry bays or buy guest tickets for major events without attending themselves are on notice. ⌘ Read more
Melbourne venue cancels One Nation fundraiser after protest threats
A party fundraiser has been cancelled hours before it was due to begin after a Moonee Ponds restaurant pulled out from hosting the event. ⌘ Read more
Volk previews White House UFC event
Aussie fight legend Alexander Volkanovski previews the UFC’s event on the White House lawn. ⌘ Read more
Kyrgios falls in Stuttgart to qualifier
The Australian went down in three sets to Japanese qualifier Sho Shimabukuro in the Wimbledon warm-up event in Stuttgart. ⌘ Read more
A state-first trial was trying to save WA’s prized reefs, until a cyclone threatened months of hard work
Millions of coral eggs and embryos during two separate spawning events – one in Exmouth and the other in Coral Bay – to save the reefs after a mass bleaching event. But Cyclone Narelle threatened to derail the project. ⌘ Read more
Spider-Man: Marvel Accidentally Reminds Us How Much Better Peter Parker Was
A new Marvel special accidentally reminds Spider-Man fans how much better the comic was before Civil War. The 2006 crossover event had a lasting effect upon the Marvel Universe. In the case of Peter Parker, however, the effects were disastrous on many levels. The special in question is Civil War: Unmasked #2, by Cristos Gage […]
The post [Spider-Man: Marvel Accident … ⌘ Read more
Jon Stewart Compares Donald Trump to Iron Man, Jokes About Doctor Doom Return
Jon Stewart recently used the Marvel Cinematic Universe to make a point about Donald Trump‘s political influence. He compared the president’s role within MAGA to Iron Man‘s importance to Marvel. During a recent Daily Show event, Stewart questioned whether the movement could maintain the same level of support under a different leader. Jon Stewart uses […]
The post [Jon Stewart Compares Donald T … ⌘ Read more
David Harbour Breaks Silence on Lily Allen’s Explosive Album: ‘It Was Weird’
David Harbour spoke about Lily Allen’s album, West End Girl, for the first time in a recent interview. After Allen used her personal experiences as inspiration for the project, Harbour shared that his perspective on the events differed from what was reflected in the album. Why David Harbour says ‘West End Girl’ wasn’t his experience […]
The post [David Harbour Breaks Silence on Lily Allen’s Ex … ⌘ Read more
Protests outside Pauline Hanson event in Perth
Demonstrators have met Pauline Hanson at a sold-out Perth fundraiser overnight. ⌘ Read more
AMC Theatres Delays Planned Events This Month for a Good Reason
AMC Theatres is walking back on its plan to simulcast a series of live concerts this summer, but that’s good news.
The post AMC Theatres Delays Planned Events This Month for a Good Reason appeared first on [ComingSoon.net - Movie Trailers, TV & Streaming News, and More](https://www. … ⌘ Read more
Donald Trump Is Ready for Fight Night. So Are Donors
The UFC event on the White House’s South Lawn is the president’s birthday gift to himself. Sources expect it to be a lobbying extravaganza. ⌘ Read more
View from the top: Agricultural leaders upbeat at Fieldays
A frosty 1C sunrise at Mystery Creek did little to deter the mood among the who’s who of the primary sector at day one of Fieldays.
The national four-day agricultural event kicked off on Wednesday, with leaders across the sector and politicians turning up to mingle with each other and farmers. ⌘ Read more
Obsession: Curry Barker Reveals What Really Happened to Nikki After That Ending
As Obsession continues to draw attention, director Curry Barker revealed what happens to the film’s central character, Nikki, after the ending. In a recent interview, he suggested a grim fate for her after the harrowing events she experienced during the course of the movie. Curry Barker on what happens to Nikki after Obsession’s ending The […]
The post [Obsession: Curry Barker Reveals What Rea … ⌘ Read more
The Other Major Soccer Event of 2026? The Shake-Up in the World of Video Games
The 48-team World Cup is not the only historic soccer event this year. Four titans are vying for control of video game soccer in the fiercest battle the industry has ever seen. ⌘ Read more
‘World Cup of chaos’: Can the most expensive sporting event deliver?
The World Cup returns to North America after 32 years. And just like in ’94, when O. J. Simpson’s police chase threatened to steal the show, the event is not without dramas. ⌘ Read more
Hanson says planned protest shows One Nation gaining support in WA
Pauline Hanson is due to speak at a sold-out event at the Crooked Spire in Midland this evening, with an open agenda to touch on the budget, negative gearing, and migration. ⌘ Read more
Historic CBS Soap Crossover With Young & Restless & Beyond the Gates To Be Pure ‘Chaos’
Brandon Claybon and Clifton Davis teased details around the CBS crossover with Beyond the Gates and The Young and the Restless. It’s an exciting multi-episode event, starting on Tuesday, June 9, and running through Friday, June 12. This happens when a few Genoa City residents attend a high-profile fundraiser for Martin’s political campaign in the […]
The post [Historic CBS Soap Cro … ⌘ Read more
José Carreras and Robbie Williams to sing at the Gabba in world exclusive event
The Corrs, Ronan Keating, Natalie Imbruglia and others will join the legendary tenor in an all-star concert celebration on his 80th birthday in Brisbane. ⌘ Read more
[$] Eliminating long-lived credentials with trusted publishing
Trusted\
publishing is an authentication mechanism that relies on
short-lived credentials to reduce the risk of supply-chain attacks. At
the 2026 Open\
Source Summit North America, Mike Fiedler walked the audience
through why trusted publishing exists, how it works, and made the case
for its adoption. … ⌘ Read more
The Top New Features in Apple’s iOS 27 and iPadOS 27
Apple took the wraps off iOS 27 at its WWDC event, and the iPhone update is chock-full of smart upgrades, with a big focus on improvements to Siri. ⌘ Read more
The world comes to Mystery Creek
There is a “growing appetite” for international delegations to use Fieldays as a place to learn about New Zealand’s agricultural sector, its chief executive says.
The national four-day event, which starts in Hamilton on Wednesday, is set to have 73 international exhibitors, up from 66 last year, from countries such as Australia, Belgium, China, Germany, Greece, Ireland, the Netherlands, Korea, Sweden, the United Kingdom and the United States. ⌘ Read more
Apple WWDC 2026 Livestream
Article URL: https://www.apple.com/apple-events/event-stream/
Comments URL: https://news.ycombinator.com/item?id=48448106
Points: 8
# Comments: 9 ⌘ Read more
[$] An update on fanotify
In a filesystem-track session at the 2026 Linux Storage,\
Filesystem, Memory Management, and BPF Summit, Amir Goldstein updated
attendees on the fanotify
filesystem-event monitoring
subsystem. He wanted to describe changes that had come in the last year or
so, as well as upcoming features and some remaining challenges in his
efforts [to use fanotify for hierarchical\
storage management](https://lwn.net/Ar … ⌘ Read more
Williamson thought he’d never swim again after a horrific gym injury. He just made another Australian team
Thirteen months after a devastating knee injury left him learning to walk again, Sam Williamson completed a remarkable comeback at swimming trials, while Sam Short went within touching distance of a world record. ⌘ Read more
Australia remembers Neale Daniher with MND Big Freeze event
The AFL community have come together to remember the late Neale Daniher on the first Big Freeze MND charity event since his death. ⌘ Read more
McKeown pulls out of key event at Commonwealth Games trials after illness drama
Kaylee McKeown has been forced out of the 200m individual medley at Australian trials due to illness, placing her Commonwealth Games hopes in the event in doubt. ⌘ Read more
How fans travelled to Brisbane’s latest mega event – and our lessons for 2032
Exclusive analysis of Magic Round mobile phone data shows we’ve got a long way to go to reach our Olympic targets for public and active transport. ⌘ Read more
Fieldays 2026: Sunshine, spending and an election
New Zealand’s agricultural sector is making its annual pilgrimage to Mystery Creek this week, with Fieldays’ sites sold out, farm balance sheets in decent shape, and an election looming in the background.
This year’s Fieldays is the first in recent memory to sell out all available exhibitor sites, something the event’s chief executive, Richard Lindroos, puts down to strength in the sector. ⌘ Read more