adb shell cmd overlay resets to it's previous state (doesn't activate) after reboot - overlay

I'm trying to switch between gestural and threebutton navigation using
cmd overlay enable com.android.internal.systemui.navbar.gestural
and
cmd overlay enable com.android.internal.systemui.navbar.threebutton
or via system-->gestures-->system navigation and then selecting gesture navigation and 3-button navigation.
I checked the changes using -
cmd overlay list --user current and I was able to see the exact changes made.
But when i reboot my android device, it just reverts back to the previous selected navigation; rarely (after 5-6 tries) the changes made remain after reboot.
Example: If my present selection is threebutton and I change it to gestural, then after reboot it goes back to threebutton or sometimes (after 5-6 tries and reboots), it stays as gestural.
How do i keep the changes permanent even after reboot??

I also have the same issue. The changes made using the adb cmd overlay does not remain after reboot. However, in some forums, i saw that the changes still stayed for some even after reboot but they were probably running android 10. I am currently running Android 11. I don't really know if they changed this feature with android upgrades.

Related

Change command line app icon programmatically

I've created a swift command line app for macOS (WITHOUT XCODE, just a simple .swift file), used to build a macOS installer.
When I run the app with sudo swift install.swift, the app is opened with an icon with a terminal app design like this:
Icon
I want to change that icon from the code, would that possible? I'm using Appkit.
You can change the icon by setting NSApplication's applicationIconImage property. That is, if you can obtain an image. Since your program isn't a bundled app, it won't be easy to provide an image with it.
There will be an unavoidable visual glitch when your program exits, though. Its icon will revert to that "exec" icon as it shrinks in the Dock before vanishing. Also, if the icon ends up in the Dock's recently-used applications section, it will be the "exec" icon, there, too. In other words, the icon set programmatically persists only as long as the program runs.
By the way, it's distinctly unwise to run the high-level frameworks with root privileges. It opens a large attack surface that's not really audited for security. You probably want to separate your program into a user app and a privileged helper.

Gnome shell two monitors full screen apps

I'm working on the Ubuntu 16.04 whit Gnome Shell version 3.18.5 and I'm using two monitors. Issue which I have regarding aplications opend in the full screen mode.
For expample if I open on the monitor number 1 my browser and on the monitor number 2 terminal in full screen mode plus some additional application such as a code editor(not full screen). Now when I'm focus on the code editor which is on the top of the terminal it's ok but when I click on my broser window(monitor 1) then the code editor gose behind the terminal automatically.
I've prepared some video to better show this problem:
In this video you can see correct behaviour when I'm using one monitor.
Here is video showing incorrect behaviour. Don't care about the elements which are above the terminal on the left screen. Terminal was set to full screen.
Dose anybody know how to change this behaviour? I was looking for solution in google but without success. Thank you.
That's the expected behavior when things are in focus/out of focus. Try resizing your windows so they don't block one another; thus, nothing will be "behind" anything else when you shift focus by clicking here or there.

Vertical scroll value resets on reboot/log-off

I have a user that would like to have value for vertical scrolling to be set to a certain number. When they've set the wanted value, it works ... Until they log off or reboot. The odd thing is that the horizontal scroll value will remain to set value even after reboot. I guess it's worth mentioning this is an HP laptop, but the user is using an external USB mouse.
I've tried to update the synaptics driver, uninstall it, remove it completely, check all it's settings for possible overwriting options... No result. Still keeps resetting the vertical scroll value upon reboot/log-on.
As the user is on a domain network, with a company computer, the registry is blocked for any user besides local computer admin OR domain admins, and the only way I've so far found to set scroll value in registry is by logging on as local admin, and then set the value for CURRENT user (aka local admin only, if I understand that function properly).
I am out of ideas, almost. There is only one thing I know of that could help, but there is no guarantee. A form of script (VBS/batch) that will run upon user loggin and set the users desired value. Problem is, I am not really familiar with VBS or batch scripts in any large scale, certainly not enough to help myself with this issue.
So, in the end. I am looking for alternate solutions to this pesky problem, or maybe a script that just sets the desired value at user loggin.
I had this same problem, and did a lot of digging to try to resolve it. Most tips on the web suggest to upgrade your mouse driver as some drivers have bugs that result in this problem. In my case I had the latest Logitech drivers already installed, so it didn't help me.
Today I stumbled on the cause of the problem, and hence also the solution: I use the excellent X-Mouse Button Control utility. For some reason I had modified its "Lines to scroll using the scroll wheel" setting (Settings > "Scrolling & Navigation" tab), and then forgotten about it. Whenever the program started (I have it auto-start with Windows), it reset the lines to scroll value in the Control Panel mouse settings to "1". Adjusting the value back to the default "3" in X-Mouse Button Control took care of the problem.
Even if you don't yet use the X-Mouse Button Control, this could help you: you could download and install the free X-Mouse Button Control, and make sure the lines to scroll is set to the value you desire in its settings (even if this is the the only thing you would use it for – the utility doesn't by default affect how your mouse works in any way). That way X-Mouse will reset the value to your liking at boot, even if the ultimate cause in your case is, for example, a mouse driver issue.
I know this has been answered already (please mark Ville as answerer if you're still active!) but I wanted to add a picture.
The option to set the amount of lines scrolled is set under the Scrolling & Navigation tab of the main X-Mouse control window:
In my case, this was set to 3, and had been resetting my Windows value on every reboot/logon.

Active Desktop Recovery

This one's new to me.
I downloaded and installed the VB.Net version 3.5 updates, and got some complaints about my printer drivers, which I ignored. My system auto-rebooted without asking, and then came up with am "Active Desktop Recovery" background screen (everything still works normally). So when I tried to "restore my active desktop" ( a button on the background screen) it claims a script error.
Okay, fine, I wasn't using the active desktop anyhow, so I decided to turn it off. Go to the Display Properties window, and WTF! The Desktop tab is gone!
Anybody know the fix for this, or even a workaround??
Sounds like malware, perhaps trying to hide whatever changes it made to your desktop and prevent you from undoing them. Give your favourite anti-malware a go.
Afterwards, to restore the tab and fix the recover button thingie there's a few MSKBs: 929200 and 929200.
Set the decimal value to 0 under the value DeskHtmlVersion in key HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\SafeMode\Components.

What determines the monitor my app runs on?

I am using Windows, and I have two monitors.
Some applications will always start on my primary monitor, no matter where they were when I closed them.
Others will always start on the secondary monitor, no matter where they were when I closed them.
Is there a registry setting buried somewhere, which I can manipulate to control which monitor applications launch into by default?
#rp: I have Ultramon, and I agree that it is indispensable, to the point that Microsoft should buy it and incorporate it into their OS. But as you said, it doesn't let you control the default monitor a program launches into.
Here's what I've found. If you want an app to open on your secondary monitor by default do the following:
1. Open the application.
2. Re-size the window so that it is not maximized or minimized.
3. Move the window to the monitor you want it to open on by default.
4. Close the application. Do not re-size prior to closing.
5. Open the application.
It should open on the monitor you just moved it to and closed it on.
6. Maximize the window.
The application will now open on this monitor by default. If you want to change it to another monitor, just follow steps 1-6 again.
Correctly written Windows apps that want to save their location from run to run will save the results of GetWindowPlacement() before shutting down, then use SetWindowPlacement() on startup to restore their position.
Frequently, apps will store the results of GetWindowPlacement() in the registry as a REG_BINARY for easy use.
The WINDOWPLACEMENTroute has many advantages over other methods:
Handles the case where the screen resolution changed since the last run: SetWindowPlacement() will automatically ensure that the window is not entirely offscreen
Saves the state (minimized/maximized) but also saves the restored (normal) size and position
Handles desktop metrics correctly, compensating for the taskbar position, etc. (i.e. uses "workspace coordinates" instead of "screen coordinates" -- techniques that rely on saving screen coordinates may suffer from the "walking windows" problem where a window will always appear a little lower each time if the user has a toolbar at the top of the screen).
Finally, programs that handle window restoration properly will take into account the nCmdShow parameter passed in from the shell. This parameter is set in the shortcut that launches the application (Normal, Minimized, Maximize):
if(nCmdShow != SW_SHOWNORMAL)
placement.showCmd = nCmdShow; //allow shortcut to override
For non-Win32 applications, it's important to be sure that the method you're using to save/restore window position eventually uses the same underlying call, otherwise (like Java Swing's setBounds()/getBounds() problem) you'll end up writing a lot of extra code to re-implement functionality that's already there in the WINDOWPLACEMENT functions.
It's not exactly the answer to this question but I dealt with this problem with the Shift + Win + [left,right] arrow keys shortcut. You can move the currently active window to another monitor with it.
Get UltraMon. Quickly.
http://realtimesoft.com/ultramon/
It doesn't let you specify what monitor an app starts on, but it lets you move an app to the another monitor, and keep its aspect ratio intact, with one mouse click. It is a very handy utility.
Most programs will start where you last left them. So if you have two monitors at work, but only one at home, it's possible to start you laptop at home and not see the apps running on the other monitor (which now isn't there). UltrMon also lets you move those orphan apps back to the main screen quickly and easily.
I'm fairly sure the primary monitor is the default. If the app was coded decently, when it's closed, it'll remember where it was last at and will reopen there, but -- as you've noticed -- it isn't a default behavior.
EDIT: The way I usually do it is to have the location stored in the app's settings. On load, if there is no value for them, it defaults to the center of the screen. On closing of the form, it records its position. That way, whenever it opens, it's where it was last. I don't know of a simple way to tell it to launch onto the second monitor the first time automatically, however.
-- Kevin Fairchild
Important note: If you remember the position of your application and shutdown and then start up again at that position, keep in mind that the user's monitor configuration may have changed while your application was closed.
Laptop users, for example, frequently change their display configuration. When docked there may be a 2nd monitor that disappears when undocked. If the user closes an application that was running on the 2nd monitor and the re-opens the application when the monitor is disconnected, restoring the window to the previous coordinates will leave it completely off-screen.
To figure out how big the display really is, check out GetSystemMetrics.
So I had this issue with Adobe Reader 9.0. Somehow the program forgot to open on my right monitor and was consistently opening on my left monitor. Most programs allow you to drag it over, maximize the screen, and then close it out and it will remember. Well, with Adobe, I had to drag it over and then close it before maximizing it, in order for Windows to remember which screen to open it in next time. Once you set it to the correct monitor, then you can maximize it. I think this is stupid, since almost all windows programs remember it automatically without try to rig a way for XP to remember.
So I agree there are some apps that you can configured to open on one screen by maximizing or right clicking and moving/sizing screen, then close and reopen. However, there are others that will only open on the main screen.
What I've done to resolve: set the monitor you prefer stubborn apps to open on, as monitor 1 and the your other monitor as 2, then change your monitor 2 to be the primary - so your desktop settings and start bar remain. Hope this helps.
Do not hold me to this but I am pretty sure it depends on the application it self. I know many always open on the main monitor, some will reopen to the same monitor they were previously run in, and some you can set. I know for example I have shortcuts to open command windows to particular directories, and each has an option in their properties to the location to open the window in. While Outlook just remembers and opens in the last screen it was open in. Then other apps open in what ever window the current focus is in.
So I am not sure there is a way to tell every program where to open. Hope that helps some.
I've noticed that if I put a shortcut on my desktop on one screen the launched application may appear on that screen (if that app doesn't reposition itself).
This also applies to running things from Windows Explorer - if Explorer is on one screen the launched application will pick that monitor to use.
Again - I think this is when the launching application specifies the default (windows managed) position. Most applications seem to override this default behavior in some way.
A simple window created like so will do this:
hWnd = CreateWindow(windowClass, windowTitle, WS_VISIBLE | WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, SW_SHOW, CW_USEDEFAULT, 0, NULL, NULL, hInst, NULL);
Right click the shortcut and select properties.
Make sure you are on the "Shortcut" Tab.
Select the RUN drop down box and change it to Maximized.
This may assist in launching the program in full screen on the primary monitor.