Show HN: Play Pokémon to unlock your Wayland session

github.com

119 points by anajimi 3 days ago

Hello everyone!

I've created a gameboy emulator to unlock my Wayland session and wanted to share this project to everyone here!

I've been a Linux enthusiast since I was a kid. What always captivated me was the freedom to customize my system exactly the way I wanted. With Wayland, we've reached an incredible level of performance. It's like turning your operating system into a video game! I've always been fascinated by the blend of fun and the serious, technical nature of an OS. That’s what inspired me to create this project.

I started by studying Wayland, its protocol and how to build a compositor. Then I became particularly intrigued by the concept of a locker, which reminded me a bit of an escape game. That’s when I thought: how cool would it be to solve a puzzle to unlock your session, instead of just typing a password? Since I’ve worked with emulators in the past and I’m a huge Pokémon fan, the idea of building the puzzle around that game came to me instantly!

Technically, the locker code and the wayland protocol have been implemented from scratch ( using EGL and wl_keyboard_listeners ). My locker runs a version of the gbcc emulator modded by myself. This emulator waits for one precise value to be set in a given memory address.

I have modded the Pokémon game to my needs: when the password is good, I put the good value in the good memory address so the emulator knows it needs to unlock the session.

Hope you will appreciate this project!

OsrsNeedsf2P 2 days ago

Heavy customization is important to me on the Linux desktop. This project has given me a lot more faith in Wayland than 5 years of hearing debates about it.

  • yjftsjthsd-h 2 days ago

    FWIW, as a ... Wayland skeptic/pessimist¹, screen locking does seem to be one place where things actually work and seem more sensible than under X.

    ¹ It always seems to be just around the next corner. Sixteen years on, it would be nice if we could have feature parity.

    • jasonjayr 2 days ago

      From my understanding, the security decisions around things like screen locking are the source of many of the pain points holding back X11 users from wayland.. Things like xtest(send input events from random sources), screen grabbing/video recording(allowing another app to see the contents of another window from a potentially different security domain), focus grabbing, input sniffing, are all difficult on wayland, specifically because they are serious security issues on X11, especially in light of a modern understanding of the risk profile.

      • yjftsjthsd-h 2 days ago

        Yes, many of Wayland's problems come down to particular ideas about security at the expense of functionality. But IMHO screen locking is a rare exception because the overly restrictive approach is actually fairly reasonable here, and the set of features to (not) implement is smaller.

skerit 2 days ago

Incredible that we're getting something like this before a plain good old screensaver

  • anajimi 2 days ago

    Thanks for your idea! I think it is totally possible to implement a screensaver with the ext-session-lock protocol. I will try to explore this idea when I have time in the next few months :)

    • DrewRWx 2 days ago

      Do you have a Ko-fi? 'cause I would really enjoy that screensaver.

      I adore this project on its own merits too because using the memory values in an emulated game is something that has fascinated me since Twitch Plays Pokémon integrated their Twitch display!

      • anajimi a day ago

        Thank you for your kind comment! I don't have a ko-fi but I will think about creating one :)

  • derefr 2 days ago

    For use with vintage computers that use CRTs? If not, what kind of oddball display / use-case do you have, where it would be better to play a screensaver than to follow the usual modern flow of display dim -> display black -> display sleep -> computer lock -> [maybe] computer sleep?

    • KetoManx64 2 days ago

      One of the great strengths of Linux, and one of the things that draws new people in, is the custizability and making the system your own to whatever degree you want. That a "modern" display manager doesn't let you have a screensaver and people try to cover up for it with "you're just trying to use your system wrong. Be normal and use your system like we say is normal" is embarassing.

      • unclad5968 2 days ago

        I think that's a little dramatic. Screen savers originally served a purpose, and it's not unreasonable to be unaware that some people see them are customization.

        If you think it's embarrassing, you're welcome to contribute a working implementation or pay someone else to do it. Otherwise, I don't see how it's embarrassing.

        • KetoManx64 a day ago

          I'll just keep using X/XLibre. Wayland developers are way to user hostile for it to be worth the effort.

      • mappu 2 days ago

        What modern display manager doesn't let you? In KDE the screensaver is merged into the screen locker settings, you can pick any "wallpaper plugin" which includes slideshows, video, or animation if you plug in e.g. https://store.kde.org/p/2143912 or https://store.kde.org/p/2194089

      • derefr 2 days ago

        Some hardcore Greenpeace types might argue that this is a special case where such a person is literally using their system "wrong" — as in unethically. In the sense that they are deliberately wasting [i.e. "turning into waste heat"] a nontrivial amount of power, by keeping however-many monitors they use always powered on, never allowing any of them to enter sleep.

        It's a sort of attitude that isn't really that problematic when one person does it; but becomes problematic if it becomes a popular thing to do.

        Anyone here who lived through the 1990s might remember that the ENERGY STAR certification initiative — that today measures all sorts of things — began specifically to grade computer monitors on their ability to be put into a low-power sleep state by software control.

        Everyone back then loved the computer personalization aspect of screensavers — I had After Dark installed myself! — and what resulted was an energy-waste tragedy-of-the-commons of a large-enough scale that the EPA had to get involved.

    • throitallaway 2 days ago

      If there's one thing I never tire of, it's someone telling me that I don't need something or how I'm doing it wrong. I would love a screensaver that scrubs my OLED pixels.

    • free_bip 2 days ago

      OLEDs still have burn-in issues even with all the fancy mitigation systems they have.

      • zamadatix 2 days ago

        Turning dim and black as soon as possible is actually the best for an OLED. A traditional screensaver is a net negative. The built-in fancy-mitigation systems are also probably better than any intermittent fancy screensaver (without the ability to analyze the panel wear to be corrected directly), but at least that's angling towards something better than a loss.

        Of course, screensavers are still plain fun. That's justification enough to set one if you want.

    • whatevaa 2 days ago

      OLED. KDE has kinda a workaround with lock delay.

      I use steam deck with TV as a media PC and it's OLED, I don't want to lock a media PC nor want to display a static picture on it.

    • yjftsjthsd-h 2 days ago

      > what kind of oddball display / use-case do you have,

      It's fun.

d3Xt3r 3 days ago

Ah, goody. Looks like I found the only other Wayland user on HN. ;)

You should also post here: https://news.ycombinator.com/item?id=44837981

  • jchw 2 days ago

    On the KDE side, Wayland has been going pretty well. Wayland sessions make up 82% of all sessions with telemetry enabled.

    https://blogs.kde.org/2025/03/15/this-week-in-plasma-file-tr...

    For me the real conundrum was SwayWM vs KDE Wayland rather than any X.org session; I really felt like SwayWM was a good upgrade from i3wm and gave me a better desktop session with much less hacks. Hope to see wlroots push forward and support some of the newer Wayland protocols, it has started to fall behind a little bit, but I think it's good for alternative desktops.

    • OsrsNeedsf2P 2 days ago

      I run Wayland but I'm not happy about it. Most autoclickers still don't work, and autotypers need sudo and group magic to get working.

      • jchw 2 days ago

        Root is definitely required to inject inputs at the kernel level using uinput, which I think is what you would hope, ignoring the fact that the typical Linux desktop still has a lot of other low hanging fruit to fix in terms of security.

        Anyway though, the "standard" way to do automatic clicking and typing on Wayland is via the RemoteDesktop portal, named such because it is used with ScreenCast to support use cases like VNC and RDP servers. Despite the poor choice of name, it gives a general API for sending inputs programmatically.

        https://docs.flatpak.org/en/latest/portal-api-reference.html...

        This does require at least a one-time permission grant for an application to use, but at least on KDE it is possible for the permission to persist across runs.

        I'm sure everyone is unenthused about having to deal with another way to do things, but it's at least decently straightforward... You could certainly invoke this from a quick Python script I reckon.

        (There's also libei but it's kind of a mess imo and I don't know if it is well-supported yet.)

      • hpdigidrifter 2 days ago

        I get it's something you need but for the average user autotypers and clickers not working easily without permissions is a definite positive.

        It's entirely the point of moving to Wayland for many.

    • yjftsjthsd-h 2 days ago

      > Wayland sessions make up 82% of all sessions with telemetry enabled.

      That is a significant caveat.

      • hollerith 2 days ago

        Do you have any reason to believe that Wayland users are more likely than X users to enable telemetry?

        • alex-moon 2 days ago

          The reason Wayland users might be more likely to opt into telemetry is because they see Wayland as "developing" and therefore needing that user data for development purposes. I have no idea what the incidence would actually be, but there is certainly a potential selection bias in there.

        • yjftsjthsd-h 2 days ago

          Nothing solid. It would be entertaining if it were the opposite. But unless we have a really good reason to think we know which way it leans, the unknown unknown means I wouldn't want to trust the numbers.

        • jasonjayr 2 days ago

          On a distro with wayland as the default, users are probably defaulting to allowing telemetry as well. (maybe? Just a guess ...)

          • jchw 2 days ago

            KDE telemetry is strictly opt-in, it is something that you are prompted for during the first setup wizard.

    • Y_Y 2 days ago

      Cool kids don't allow telemetry. I think that any software whose userbase isn't totally oblivious will have severe selection effects if you use data obtained by spying.

      • jchw 2 days ago

        If the cool kids are so cool, they should learn to distinguish transparent opt-in telemetry from invasive opt-out telemetry. Unfortunately, being "cool" doesn't get your needs represented, so it's really not always in your best interests to never opt in.

  • alex-moon 2 days ago

    I use Wayland! I like it a lot and I think that it's a sensible way to take window management in the 21st century. However, it's clearly not _mature_ yet (which is understandable - it's very new!). My use case specifically is a bit unusual:

    1. I'm on an NVIDIA graphics card - this struggles a lot, I won't lie, and it's really odd issues which are difficult to track down. 2. I'm running Deskflow for virtual KVM - this is using literally someone's hand-rolled attempt to hack Wayland to make it work - it manages the most important element: my keyboard and mouse are shared between my Linux desktop and my MacBook - but much of the incidental functionality, most notably copy-pasting and repeating held keys, doesn't work at all. Mod keys seem a bit fucky as well.

    That said, I'm committed - am excited to see the tech honed in the coming years.

    • ACS_Solver a day ago

      > However, it's clearly not _mature_ yet (which is understandable - it's very new!)

      I'm admittedly biased against Wayland because in my view it's been a disaster both in organization and technically, and I've had some very frustrating interactions, but even so there's no way it's accurate to describe Wayland as very new.

      Wayland started development in 2008. Version 0.85 of the protocol and of Weston, which the devs called "the first real release", was in early 2012. KDE (KWin) started adding Wayland support in 2011.

      Wayland development began almost exactly 17 years after Linus released the first 0.01 kernel. Next month Wayland turns 17. So Wayland has been in development now for half of Linux's entire existence, and it's still not mature. It started when iPhone 3G was a new top notch phone, the MacBook Air was just launched, 4G mobile networks were not yet commercially available, netbooks were highly popular, solid-state drives were just breaking into the market, and the term blockchain hadn't yet been invented.

      You may like Wayland, but what you're saying is you're using the most common GPU vendor (yes everyone loves AMD's open approach to drivers, but there's a reason Nvidia dominates completely, and that's because AMD GPUs are not competitive) and basic functionality like copy-pasting and key repeats doesn't work for you. Yes Deskflow isn't the most standard setup but this is completely like my experience with Wayland. A 17 year old project and it only works for a certain set of typical setups with typical use cases the committee blessed.

    • throwaway13337 a day ago

      I am also on Wayland (via CachyOS) and recently started using Deskflow for my MacBook KVM-type setup. Linux on one screen, Mac on the other.

      Works great except for the copy-and-paste issues and the mod key resets - just as you describe. I've been fiddling with it the last couple of days.

      Funny to see someone with such a similar setup and issue.

      Esoteric issues aside, the general use of CachyOS has been very smooth.

      There seems to be a lot of momentum for desktop Linux, with Microsoft and Apple dropping the ball lately. LLMs also make deep configuration of Linux more manageable. The stars seem to be aligning for it.

  • juujian 2 days ago

    The trick was to switch to AMD (screw NVIDIA on Linux).

    • techjamie 2 days ago

      I'm on Wayland with NVIDIA, it took longer to get there but it does work perfectly fine.

  • DiabloD3 a day ago

    Ironic you say that, because I also use Wayland.

  • heresie-dabord 2 days ago

    I count for at least two!

    Wayland in Raspberry Pi OS (labwc)

    Wayland in Debian: Bookworm (Sway), Trixie (labwc)

  • righthand 2 days ago

    There are dozens of us…dozens!

  • anajimi 3 days ago

    Thank you for the link! Hope to see more people using Wayland then :D

rtsang1 2 days ago

For a moment, I thought the punchline was that users needed to play through the game and clear the elite four to unlock their session.

  • anajimi a day ago

    Very cool idea, I may implement a hardcore mode in the future just for fun lol.

  • Babkock 2 days ago

    Also thought this. Never made it that far on the original