Update 11 April 2020: Using the xdotool method, the QtShowRunner works well on Linux, so there is a portable version for Windows and Linux. Get the latest at the github repo. I’m still investigating “Deployment” for Windows and Linux. Now, previously…
I have beat my head against the wall trying to fix the QtShowRunner program that works on Windows to work on Linux. None of the methods have worked.
Kernel uinput API calls never worked.
Using the X11 XSendEvent to send either Mouse clicks or Key events didn’t work.
Finally I found a command called xdotool which does many X things including sending mouse clicks and key presses. Here’s a shell script that uses the xdotool to launch soffice impress to show a slideshow and then terminates the show and then exits the script.
The script launches the show with the ending & to detach it. Then loops looking for the process using pgrep and if it’s still around, uses xdotool to click the mouse and waits for 5 seconds. When the process finishes the show, and the click ends the show, then pgrep fails and the script exits. Trivial.
Well that’s a problem if you have lots of artwork you want to show. The slide shows get very large and so you have a few shows, and then you want to loop them all, right? Impress does not support that. So I wrote a program to help.
QtShowRunner runs a sequence of LibreOffice Impress slide shows one after the other in a loop. Currently it runs on Windows but soon the plan is to move it to Linux Mint.
I’m building an App on Windows and Linux. I was able to make a zip file containing the app and DLLs for a simple deploy on Windows. Now I’d like to link the app statically for a simple deploy on Linux.
But when this finishes, I can’t find the prefix I chose anywhere. I presumed from the web page that it was going to make another tree with a static version of Qt in it, but I can’t find it anywhere.
So what happened?
What did I do wrong?
And when I do it right, how do I use it to build the static app.
The web page is not clear on that. I can’t find a way to “Configure” my app in QtCreator to use another build method, or do I do it manually. They seem to use some example app, but that dir path does not match anything that I have for my app. Here is my app tree.
Anybody help me build this app statically for easy deployment on Linux?
Update: I guess I forgot to do a “make”. But when I did that ran for over 2 hours and I still can’t find what it produced or figure out how to use it. I’m giving up on “Linux Static Deployment”. It is apparently only designed for folks with more energy than I have.
Summary: GitKraken on Linux VirtualBox VM shows blank menus
On Linux Mint 19.3 on VirtualBox 6.0.18 VM on WIndows 10 host, GitKraken sometimes shows black menus.
Steps to Reproduce:
Install GitKraken on Linux Mint Guest using VirtualBox 6.0.18 on Windows 10 1903 host.
Observe most of the time the menus work but sometimes they show black rather than their white contents.
Expected behavior: [What you expect to happen]
Menus should work
Actual behavior: [What actually happens]
Menus are black sometimes when you need them the most. Do I have mind reader feature enabled?
Just kidding. Something is wrong.
Sure would be nice to give you a screenshot. Oh wait. I can that’s why I did this post. One sec.
It’s even worse than I thought. If you left click on the file name on the right list that you tried to edit, then a white box pops up with [Save, Don’t Save, Cancel] options and your Linux VM is now locked and requires a RESET to reboot and get going again. Not just GitKraken is hung. The entire VM is stuck.
Now VM Is Hung
So the machine must be RESET at this point by using the MACHINE >> RESET option at the top of the screen on the left. Hummm Something is broken. This is easily reproducible. Just click on any modified file on the right, choose edit file and then try to figure a way to save it and when you see that box, you are hosed.
Backdated by one year to get it off the front page. Don’t know another way. Sorry.
I’m not a noob. Retired Software Engineer. Been programming since about 1968 and first used SCCS for source control. Used too many source control systems over the years to count. But I’m new to git. Only used it once before couple of years ago.
Installed Qt and GitKraken on all these systems. Developed the code and committed and pushed changes from all four systems. Hey I assumed it could handle changes from everywhere, what do I know? Pulled stuff down to start work on a system for dev or test each time.
Used the same profile when setting up GitKraken on all the systems. Maybe this was an issue. Tell me if so. What do I know?
Ok enough jawboning. Here’s the issue: On Win2, after the last pull, GitKraken now shows me this:
Normally I would expect this. As I understand it, each system is keeping a “Local git Repo” and when you do a pull, of course it should show local files are different from the local repository. The thing is, I expected the interface to show me a way to do a stage and commit to clear these. In other words
“Hey, git, accept this pull and put it in your local repository!”
But I don’t see anyway to do that. If I click on those files no “staging” or anything like it shows up.
So if I were not such a fool and was using the command line interface, what would I do? Or would git command line have fixed this up automagically, because it knew that all successful pulls should be “commited” to the local repo?
Is this a GitKraken bug? Or expected behavour? And how do I fix it and move on?
Thanks a ton.
Here’s the whole picture displayed by GitKraken. Click for a larger view.
Git and GitKraken seem great. Don’t want to go back to SCCS, but I’m confused.
Thanks for your help.
After Editing .gitignore and pushing that to GitHub, the condition cleared itself. Now the file shown on the right list is just .gitignore. Not clear if this is a subtlety with git or an issue with GitKraken.
Post backdated by a year to keep it off the front page. Don’t know of any other way.
Updates: See End of Post
Building a Qt application that spawns another app and then clicks on it – the top window I think. Got it working on Windows with SendInput.
Now for the same idea on Linux. I’m trying to use X11. Found lots of examples using XQueryPointer and XSendEvent. Odd loop looking through windows and subwindows I have no clue about. Anyway, it doesn’t work and I have no idea which window the code is trying to target. Nobody talks about that in the examples.
Code runs, checks for errors and finds none. But clicks do not work. My click on mouse works instantly.
How do I figure out where clicks are going? And how do I find the top window or whatever I need to send clicks there?
Here’s the debug output of the app:
Here are the routines called by the Qt application from TimerEvents inside the QtWidget application. Here is the code over on GitHub.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
So, as you know if you watch things here, I’m a big MMO fan, and recently it’s Final Fantasy XIV. I just remembered that I had purchased a BluRay a while ago of Kingsglaive: Final Fantasy XV, and wondered if I could play that. Not an MMO, but just a single player RPG. So I looked it up.
I tried to install the demo. Figured I’d check it out. I had three choices to get it:
Origins [whatever that is, but the site looks like a steam wanabee.]
First I tried the Microsoft Store. – FAIL. I tried to sign in with my Microsoft account to do that, but I got dumped to a page that said it failed. No real help there.
Try steam. No problem, at first. Program downloaded and installed. Then hung after a few clicks to set it up.
Just hung there forever like it was trying to reach some website. Although why would it by saving stuff online? It’s a single player RPG.