# Using coding agents to redesign the Hyprland screen-share picker

DevFeed: [Using coding agents to redesign the Hyprland screen-share picker](<https://devfeed.tech/articles/the-age-of-personalized-software-22438.md>)

Original publisher: [Read original article](<https://samsaffron.com/archive/2025/11/23/the-age-of-personalized-software>)

Author: Sam Saffron

Published: 2025-11-23T05:00:51Z

Content type: opinion

Language: en

Sources: [Sam Saffron](<https://devfeed.tech/sources/sam-saffron.md>)

Topics: [Wayland](<https://devfeed.tech/topics/wayland.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Qt](<https://devfeed.tech/topics/qt.md>), [ui](<https://devfeed.tech/topics/ui.md>), [cursor](<https://devfeed.tech/topics/cursor.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [codex](<https://devfeed.tech/tags/codex.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [cursor](<https://devfeed.tech/tags/cursor.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [net](<https://devfeed.tech/tags/net.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [saffron](<https://devfeed.tech/tags/saffron.md>), [sam](<https://devfeed.tech/tags/sam.md>), [software](<https://devfeed.tech/tags/software.md>), [sql](<https://devfeed.tech/tags/sql.md>), [ui](<https://devfeed.tech/tags/ui.md>), [wayland](<https://devfeed.tech/tags/wayland.md>), [weblog](<https://devfeed.tech/tags/weblog.md>), [work](<https://devfeed.tech/tags/work.md>)

## AI overview

The author describes redesigning the Hyprland screen-share picker to address confusing defaults, window selection, and restore-token settings. They used coding agents and multiple language models to prototype and iterate on the interface and its supporting code.

## Source excerpt

Over the past few months, I have been struggling with the Hyprland screen-share dialog (hyprland-share-picker via xdg-desktop-portal-hyprland). traditional xdg-desktop-portal-hyprland only title is visible816x483 23.7 KB Under the hood, Chromium / OBS talk to xdg-desktop-portal, which hands off to xdg-desktop-portal-hyprland. That launches hyprland-share-picker (a Qt dialog) which uses the hyprland-toplevel-export-v1 protocol to offer windows and screens. When I am on a call with people I want to quickly share a screen with them, I am confronted with a rather confusing UI: By default it selects the "Screen" tab, which I almost never want On the "Window" tab I get a non-visual list of window names that are hard to decipher There is this whole "restore token" thing that is very confusing. I don't need this checkbox. I accept the risk of always restoring. The "old way" of dealing with this kind of pain was: Open an issue on GitHub which was done back in 2022 Discuss the issue Some brave soul who is familiar with Qt toolkit, various Wayland protocols including the somewhat experimental hyprland-toplevel-export-v1 would take it on herself to implement. Given the complexity of the feature, we would be looking at a week of engineering. So what ends up happening is that we have a bottleneck. Vaxry only has so much time. hyprland is mostly on one person's shoulders, so some little niggles like "my favorite bug" tend to take a back seat for years. However, there is an interesting wind of change as of November 2025. The release of ultra-competent language models such as Gemini 3 Pro, Codex 5.1 Max, and the established Sonnet 4.5 means that when we hit "our favorite bug" we can go ahead and "work something out." Particularly, given the knowledge I had about the problem, the source code of grim hyprland, the protocols involved, and general structure of a solution, I am able to vibe engineer a solution to the problem in an hour or so. I made this new version of the picker using c