In the old days, Java Robot had MouseMove, mouseClick, and text input that would allow one to interact with, say, a browser (opened and on top of your desktop) and drive it like a user would.
It (Ubuntu) seems to ignore such mouse and keyboard-like input to non-related processes - but for processes related to the java process running the robot, they get the input. For example I'm running a java robot program from within Cursor ide. A browser is open on top and the robot runs - moving the cursor to an input field on the web page, doing a click, then typing in characters. Nothing goes into the browser; however the Cursor ide is brought to the top and the characters are typed into one of its panels. (if I run the java program by itself, I see no indication of any mouse or keyboard stuff going on. But then there are no related processes - hence my theory about related processes.)
Python has a similar package - pyautogui. I made a similar app to my java one, except in python. It had the same behavior - commands that were supposed to move the mouse or type in text simply did nothing if run by itself - or typed into Cursor if Cursor launched the app.
I can understand some computers might like this type of restriction. But it is not appropriate for my use. How do I change my Ubuntu to permit application driven cursor movements?