Searching We Love Privacy Club

Twts matching #event
Sort by: Newest, Oldest, Most Relevant

Linux Ready With Fix For Intel’s FRED Crashing Some Games Under Wine / Steam Play
Recently there have been some bug reports to Mesa around Intel Panther Lake graphics crashing with some games like Red Dead Redemption 2 and Elden Ring crashing or freezing quite quickly. This turns out not to be an Intel Xe3 Arc Graphics B390 driver bug with Panther Lake but rather due to a kernel issue with the new Flexible and Return Event Delivery “FRED” that debuted with the Core Ultra Series 3 processors… ⌘ Read more

⤋ Read More
In-reply-to » iPhone Duo - Apple Sorry Apple™, I'm really finding it quite hard to justify spending thousands of dollar on your products!

@prologic@twtxt.net Must say I do kinda like the rounded design, passport screen ratio, the inner screen textured finish and the promised pencil support, making this a pocketable drawing tablet.

Obviously wouldn’t buy it, or any other foldable device, with these fragile plastic displays, lack of a headphone jack and thanks to iOS also too many software compromises.

Since earlier this year, I main a TCL phone, I got during a sale event, for under $150 and it really has pretty alright specs: 8GB RAM, recently updated to Android 16, 90Hz refresh rate, even the headphone jack, …

⤋ Read More

The Apple Watch Gets Its Siri AI Upgrade
An anonymous reader quotes a report from Wired: Apple has unveiled the Apple Watch Series 12 and Ultra 4 today during itsSeptember hardware event. The new models retain the signature designs of their predecessors but add a faster S11 chip, new health and fitness features, and the watchOS 27 software update announced atWWDC last June. Both the Series 12 and Ultra 4 run on the upgraded S11 c … ⌘ Read more

⤋ Read More

Apple Unveils the iPhone Duo, Its First Foldable iPhone
At its September event today, Apple unveiled the iPhone Duo, its first foldable iPhone and one of the biggest changes to the device’s form factor since its debut. Starting at $1,999 and available for preorder beginning October 16th, the device is roughly the size of a passport when closed and pairs a 5.4-inch outer screen with a 7.6-inch Super Retina XDR inner di … ⌘ Read more

⤋ Read More

To Promote Grand Theft Auto 6, Mayor Might Transform Miami into ‘Vice City’
Rockstar Games and the mayor of Miami-Dade county are discussing a joint marketing campaign transforming parts of the county to look like areas from Grand Theft Auto 6, reports the blog Rock Paper Shotgun:

The proposed publicity event would include “an immersive arrival experience” at Miami International Airport. with signs f … ⌘ Read more

⤋ Read More

The Linux Kernel AI Flood, Linux 7.2 Release & Other August Highlights
It was a very busy month of August with the Linux kernel developers continue to be flooded with AI/LLM-generated patches and bug reports. Plus there was the general resolution on AI usage within the Debian project and other open-source projects now evolving in the AI era. With the Linux 7.2 stable release and Linux 7.3 merge window, the past month was all the more eventful… ⌘ Read more

⤋ Read More

Gamescom Crime Spree? Three Exhibitors Report Their Laptops Were Stolen
From the gaming news site Aftermath”

Game developer and consultant Ryan Laley traveled to Cologne, Germany from Essex, England to showcase his upcoming horror social deduction game Mimic at the annual Gamescom event. He paid “thousands of pounds” to get a booth at the show, where other game developers and press could try the game ahe … ⌘ Read more

⤋ Read More

GNOME’s Very Exciting Week From Flatpak Funding To Reset Recovery Plus Apps
This week was extremely eventful in the GNOME space with GPU reset recovery for GNOME Mutter now largely wrapped up and the merge request opened to facilitate the code review. There was also the announcement of the half million Euro Sovereign Tech Agency investment into Flatpak. Plus on the application side were a few more interesting advancements this week.‘.. ⌘ Read more

⤋ Read More

AMD Preparing To Enable HDMI 2.1 FRL Support By Default For Linux
It was back in May that the surprising event happened of AMD posting HDMI 2.1 FRL patches for their open-source AMDGPU Linux driver as part of their broader HDMI 2.1 bring-up. For years the open-source HDMI 2.1 support in AMDGPU was blocked by the HDMI Forum but whether it was due to Valve or some other event, the code was finally unblocked. While it’s been part of the kernel since Linux 7.2, it’s been disabled by default – except that is now c … ⌘ Read more

⤋ Read More

OpenAI Releases Its Official Report On the Hugging Face Breach
TechCrunch reports that OpenAI released its official report Wednesday on the Hugging Face breach, “offering the clearest picture yet of how an unusual chain of events allowed an AI model to escape its testing environment and triggered a sprawling cybersecurity incident.” The AI company says the breach began when an unreleased cyber model, tested withou … ⌘ Read more

⤋ Read More

YouTube Offers Creators Millions of Dollars to Stay Off Netflix
Bloomberg reports that YouTube is offering major creators millions of dollars to keep some content exclusive to its platform as Netflix increasingly signs YouTube-native talent to non-exclusive deals. YouTube has also warned that creators who simultaneously publish on Netflix could lose marketing support, event opportunities, and access to revenue … ⌘ Read more

⤋ Read More

Top Album Releases Linked To Rise In Fatal Crashes
An anonymous reader quotes a report from The Guardian: The release of a new album by Taylor Swift might be a cause for celebration among her fans, but such events have also been linked to a more sombre phenomenon: an increase in fatal car crashes. The team behind a new study say it sheds light on the impact of distracted driving. Writing in the journal Jama Network … ⌘ Read more

⤋ Read More

Meta Patents AI Glasses to Use Facial Recognition to Identify People, Make Highlight Reels of Your Dinner Party
Meta has patented a smart-glasses system that could use facial recognition to identify people and automatically create personalized highlight reels of events such as dinner parties. The patent doesn’t guarantee the feature will ship, but it offers a detail … ⌘ Read more

⤋ Read More

Google Unveils Pixel 11 Lineup
At its Made by Google 2026 event today, Google unveiled a slew of new devices, headlined by the Pixel 11, Pixel 11 Pro, and Pixel 11 Pro Fold. Here’s a breakdown of the company’s latest smartphones, provided by TechCrunch: Pixel 11: The standard Pixel 11 gets a redesigned camera bar that is thinner than the one on the previous generation. Google says the new camera bar is more than 40% thinner and now uses an … ⌘ Read more

⤋ Read More

Taiwan ‘Throttles’ Mobile Internet For First Time During Annual War Games
Taiwan deliberately throttled mobile internet across the Taichung area during its annual Han Kuang war games, “simulating communication disruption in the event of a Chinese attack or natural disaster,” reports Reuters. The drill accompanied air-raid exercises and military rehearsals aimed at defending strategically important areas … ⌘ Read more

⤋ Read More

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

⤋ 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

⤋ 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

⤋ 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

⤋ 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

⤋ 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

⤋ 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!

⤋ Read More
In-reply-to » I went to check on the fireflies this season. But I didn't see any. Instead lots of moths. At first, I thought it might have been still too light, but it was already dark enough for me to miss and destroy a snail shell. Bummer. Maybe it was too wet tonight. Although, it's probably just another or two weeks until my glowing friends will finally show up.

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.

⤋ Read More

‘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

⤋ 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

⤋ Read More

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

⤋ Read More
In-reply-to » Every now and then, I think that I have carefully proof-read my message enough times and hit the "Add message" button in 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:

@lyse@lyse.isobeef.org

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. 😅)

⤋ 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

⤋ 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

⤋ 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

⤋ 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

⤋ 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

⤋ Read More