Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Isn’t is possible to get something like mouse position from almost any stdlib of most languages?


No, not really. Modern APIs usually don't even let you access that kind of information without additional privileges. Some older toolkits have functions that are supposed to do this, but it doesn't work everywhere.


It works fine on Windows and macOS's desktop APIs in 2024. This is a basic "desktop app" expected feature - if you aren't able to implement fully something like AutoHotkey or AppleScript macros, you aren't really a proper desktop platform.


You can implement all those things, just differently now.

Relatedly, now random apps can't record the whole screen. This is a good thing, now they get explicit user permission and go through xdg. I don't know how anyone could be opposed to this - it's objectively more empowering for you, the user.


You think enforcing the one true rights model to everyone is more empowering? We have obviously different definitions.


Yes, it's empowering because your "rights model" is one where you don't have rights. You don't know what applications are using what data, and you also can't stop it. Is that empowering? I think no.

But if you wanna argue Chrome should be able to read all your keyboard inputs whenever it wants be my guest. I can't fathom why people want that type of setup.


Can’t you get the cursor position from the windows c++ stdlib? Or like pyautogui? Or the Java stdlib?


Windows' pointer position is available to even the most limited GUI application; it is not protected information. For win32 at least, I am not familiar enough to say that about the newer app packages which are much more locked down, but I would be surprised.


They queried that info based on a specific implementation of a framework. If that framework is implemented under Wayland, then through the Wayland APIs it will only get rudimentary info on mouse position (e.g. only when it’s in focus and the mouse is over it).


App doesn't have to be in focus. It receives pointer events over its own surfaces (plus in some additional cases like drags and grabs). It doesn't receive any information about pointer position otherwise, nor its global coordinates (at least not without extra protocols).


Is it possible that one could write essentially a transparent app, which is always in focus and just passes click events through the transparent layer?


You can write a transparent app, but its the compositor that decides whether it's in focus and your app will either pass both hovers and clicks to the window behind (not staying in focus for long and not getting any pointer events even when it still is), or it will consume them all.


Hopefully only if the given app has focus.


Why? I want to have some applications that can always see the mouse cursor like, xeyes. Because that allows me to implement a better customized desktop environment.


Then give that piece of code extra-special permissions. As I’ve said in another comment, the days where you downloaded your software from the sunsite or tsx11.ai.mit.edu FTP servers and could be confident that it and all its dependencies were trustworthy are unfortunately gone for a very long time.


stdlib? Nope, a definite nope!

I won't expect stdlib.h to provide me a magical get_cursor_pos() function in any way.

GUI toolkits? (This includes the Win32 GUI.) Maybe.

It's not a universal thing though -- for example, you may receive mouse position _only_ when the cursor is in your window.


"stdlib" was shorthand for "the standard library of a given language" and it came across poorly.

I did a quick google before I asked you that question, and it looks like wayland is one of the few exceptions to completely exposing current cursor position. Most "stdlibs" do expose it.


Please refrain from using the term "stdlib", it has a specific meaning and I have trouble understanding what do you mean by it.

Are you referring to the native GUI toolkit of a platform (e.g. Winforms, Cocoa) or something else?


I will not refrain, you're the only one confused by it.

Just google it. You are incorrect and you're not pumped about it, I get it. The horse is fully beat to death. If you want to discuss further, my responses will probably just be lmgtfy links.


I find their point pedantic, but I tend to think it is correct. The "standard library" of a language is the library that comes with the language itself, usually across all platforms, and that rarely contains anything UI-wise beyond the very basics (e.g. text/terminal I/O like printing and reading lines).

I do agree that probably no-one was confused, though.


Check out the link a few comments down.


https://en.wikipedia.org/wiki/Standard_library

> In computer programming, a standard library is the library made available across implementations of a programming language.

You should show me that, among the mainstream programming languages, their standard library will provide get_cursor_pos().


It's clearly you who's confusing "standard library" with "UI toolkit". Some standard libraries come with a toolkit, like Java, but that's an exception rather than rule.

Not that it makes a huge difference in the discussion, but if you want to be smug about it then at least make sure you're right first.


You literally contradicted yourself.


No he didn't. Java is quite possibly the only mainstream language that provides a GUI toolkit in its standard library.

It's an exception, not the rule. Even Python, well known for its batteries-included std, do not provide this magical get_cursor_pos() function that you insist is found in stdlibs.


Perhaps Delphi and Visual Basic could count too if you squint? Can't think of anything else.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: