PowerToys icon indicating copy to clipboard operation
PowerToys copied to clipboard

Option to hide the tray icon

Open enricogior opened this issue 4 years ago • 48 comments

Hiding the tray icon is not in our list of priorities because it's not adding any new functionality. Since this is an open source project, we welcome community contributions.

Constrains

  • This option will be merged after the Stability Release https://github.com/microsoft/PowerToys/wiki/Roadmap
  • It will be merged after we drop support for the old settings app https://github.com/microsoft/PowerToys/issues/9417 to reduce the amount of documentation/coding/testing.

Steps

Removing the tray icon requires a set of steps that can be implemented ahead of adding the actual option to hide the icon.

UI elements

  • [ ] create a new icon for the bug report tool

Documentation

  • [ ] functional specification for the changes affecting the bug report tool
  • [ ] user documentation for the changes affecting the bug report tool
  • [ ] functional specification for the change affecting the Exit command
  • [ ] user documentation for the change affecting the Exit command
  • [ ] functional specification for the changes affecting future tray icon context menu items (to start modules such Color Picker and PT Run)
  • [ ] functional documentation for the settings option to hide the tray icon

Implementation

  • [ ] implement the functional specification for the changes affecting the bug report tool (e.g. add bug report tool to installer)
  • [ ] implement the functional specification for the change affecting the Exit command
  • [ ] implement the settings option to hide the tray icon

enricogior avatar Feb 05 '21 20:02 enricogior

it's not adding any new functionality.

Lack of clutter is functional.

Special handling of the bug report tool is not required. Follow the model outlined in the linked thread; the option to hide the tray icon, only hides it when the first instance is run. Launching a second instance will cause the first instance to be displayed as normal. Now, menus work as normal. The app without this option behaves entirely normally, and this is pseudo-standard for systray apps to the point that documentation is not necessary.

ghost avatar Feb 06 '21 11:02 ghost

@xcasxcursex this issue is for the implementation of the feature, not for general discussion, I will hide your comment and mine. Thank you.

enricogior avatar Feb 06 '21 11:02 enricogior

My comments are in regards to this issue, the issue itself. It outlines an excessively delayed implementation for an illogical reasoning and then outlines and excessively complex implementation when the simple one is well known.

The steps section can be replaced with two steps:

Documentation

functional documentation for the settings option to hide the tray icon

Implementation

implement the settings option to hide the tray icon

ghost avatar Feb 06 '21 11:02 ghost

@xcasxcursex

It outlines an excessively delayed implementation for an illogical reasoning

You are making wrong assumptions on how PowerToys works, and proposing general ideas that simply don't apply to the PowerToys scenario. If you are really interested to contribute to the project, take the time to ask how PowerToys works. Thank you.

enricogior avatar Feb 06 '21 11:02 enricogior

This cloud also apply to awake too.

franky920920 avatar Oct 17 '21 13:10 franky920920

I'm a bit confused, is this ready to work on?

marcelwgn avatar Dec 04 '21 14:12 marcelwgn

I'm a bit confused, is this ready to work on?

@chingucoding This issue does welcome all community pull requests. :D Let us know if you do like to contribute to this. Thanks!

franky920920 avatar Dec 11 '21 03:12 franky920920

I'm a bit confused, is this ready to work on?

@chingucoding This issue does welcome all community pull requests. :D Let us know if you do like to contribute to this. Thanks!

Great, sure I can take a shot at it @franky920920 :)

marcelwgn avatar Dec 11 '21 08:12 marcelwgn

Due to time issues and issues with working on the project, I'll discontinue working on this.

marcelwgn avatar Dec 25 '21 13:12 marcelwgn

This is a feature already implemented deep in some Windows menu and can be set for all possible tray icons. Searching for how to hide tray icons online will help. I apologise for wasting time asking for this feature.

GeonLeorge avatar Jan 13 '22 15:01 GeonLeorge

Not sure if this request is even possible... I haven't seen any app that does this yet, so I asked SO https://stackoverflow.com/questions/71866456/is-it-possible-to-have-a-windows-app-that-does-not-have-an-icon-or-tray-icon-but and if the consensus there is it is not possible then we can close this off.

trajano avatar Apr 14 '22 04:04 trajano

Not sure if this request is even possible... I haven't seen any app that does this yet, so I asked SO https://stackoverflow.com/questions/71866456/is-it-possible-to-have-a-windows-app-that-does-not-have-an-icon-or-tray-icon-but and if the consensus there is it is not possible then we can close this off.

I think you might have misunderstood the request. It is absolutely possible for a running application to not have a system tray icon.

The request is to disable the system tray icon for powertoys

Blazein avatar Apr 14 '22 07:04 Blazein

I'm waiting for bring hide the tray icon.

JergenRoss avatar May 02 '22 13:05 JergenRoss

Hey guys, I just stumbled across a workaround that somewhat addresses this issue! It would still be ideal to have a proper option to disable the system tray icon though.

Each of the PowerToy modules are installed as a separate exe, in their respective folders, here for example: C:\Program Files\PowerToys\modules

These modules (the few I've tested, FancyZones, ColorPicker, and PowerRename) appear to work just fine without the main PowerToys launcher exe. That's what displays that systray icon.

This means you can disable PowerToys from running at startup, and manually set the individual PowerToys modules you use to run at startup, and no system tray icon.

Hope this helps!

Blazein avatar Jun 15 '22 04:06 Blazein

Hey guys, I just stumbled across a workaround that somewhat addresses this issue! It would still be ideal to have a proper option to disable the system tray icon though.

Each of the PowerToy modules are installed as a separate exe, in their respective folders, here for example: C:\Program Files\PowerToys\modules

These modules (the few I've tested, FancyZones, ColorPicker, and PowerRename) appear to work just fine without the main PowerToys launcher exe. That's what displays that systray icon.

This means you can disable PowerToys from running at startup, and manually set the individual PowerToys modules you use to run at startup, and no system tray icon.

Hope this helps!

Assuming this works, you may alternately be able to simply use a delayed startup script to kill PowerToys.exe. This way, you could launch it and enable/disable features whenever you want without having to individually enable/disable them for startup. PowerToys.exe would launch normally, run whatever ones you have enabled, then after a few minutes it would be killed. Also, if you do choose to add the individual .exe's to startup, be careful which ones you add. I have PowerRename and Image Resizer enabled, but neither are normally running, likely because they're added to the context menu when enabled in PowerToys then run when selected from there. So you probably don't want to add them to startup, only the ones that are always running in the background.

vertigo220 avatar Jun 19 '22 20:06 vertigo220

Good call, the only module I really use is Fancy Zones for my multiple screens, so it's the only one I've thoroughly tested and that works fine.

Unfortunately. I've found that when you kill the powertoys.exe task, it also kills all powertoys tasks.

Interestingly enough, when you 'Exit' powertoys from the system tray icon, it only closes itself, and the modules that were opened along with it. The powertoys modules that were opened on startup remained running.

All of the exe's are running as the same user. I've also tried several command line arguments to quit, exit, etc on the powertoys exe, but they do nothing.

Blazein avatar Jun 19 '22 21:06 Blazein

You're right. So a delayed kill isn't an option, you have to add each module you want to startup individually. Not a big deal, though, and the only real solution thus far. I enabled all modules and checked which ones had running processes to see which you'd want to add to startup (assuming you want to use them) and which you shouldn't. Here's the breakdown:

Add:

  • PowerToys.AlwaysOnTop.exe
  • PowerToys.Awake.exe
  • PowerToys.ColorPickerUI.exe
  • PowerToys.FancyZones.exe
  • PowerToys.KeyboardManagerEngine.exe
  • PowerToys.PowerLauncher.exe

Don't add:

  • PowerToys.exe - should be obvious but still mentioning
  • PowerToys.Settings.exe - also should be obvious
  • PowerToys.ImageResizer.exe - dll is added to startup when enabled in settings
  • MouseUtils (Mouse utilities) - only dll's, so also should be obvious
  • PowerToys.PowerRename.exe - dll is added to startup when enabled in settings
  • PowerToys.ShortcutGuide.exe - not sure how this runs, can't find it in startup anywhere and am currently running a full registry search, but it works even after killing PowerToys.exe, so should hopefully work after taking it out of startup
  • VideoConference (Video Conference Mute) - only dll's

Adding the desired ones to startup is an easy task, but if there's demand I can throw together a script to automate it.

vertigo220 avatar Jun 19 '22 23:06 vertigo220

Good call, the only module I really use is Fancy Zones for my multiple screens, so it's the only one I've thoroughly tested and that works fine.

Unfortunately. I've found that when you kill the powertoys.exe task, it also kills all powertoys tasks.

Interestingly enough, when you 'Exit' powertoys from the system tray icon, it only closes itself, and the modules that were opened along with it. The powertoys modules that were opened on startup remained running.

All of the exe's are running as the same user. I've also tried several command line arguments to quit, exit, etc on the powertoys exe, but they do nothing.

Maybe Powertoys should just be a "page in the store" and each individual utility is an app that would make it easier to maintain. Especially since they're more or less independent. The idea of powertoys back in the day is to have a single place to get a common set of utilities that were vetted by Microsoft, but now that there's a "store" it may not be as relevant so long as PowerToys is prominent. Much like Office.

trajano avatar Jun 20 '22 15:06 trajano

Good call, the only module I really use is Fancy Zones for my multiple screens, so it's the only one I've thoroughly tested and that works fine. Unfortunately. I've found that when you kill the powertoys.exe task, it also kills all powertoys tasks. Interestingly enough, when you 'Exit' powertoys from the system tray icon, it only closes itself, and the modules that were opened along with it. The powertoys modules that were opened on startup remained running. All of the exe's are running as the same user. I've also tried several command line arguments to quit, exit, etc on the powertoys exe, but they do nothing.

Maybe Powertoys should just be a "page in the store" and each individual utility is an app that would make it easier to maintain. Especially since they're more or less independent. The idea of powertoys back in the day is to have a single place to get a common set of utilities that were vetted by Microsoft, but now that there's a "store" it may not be as relevant so long as PowerToys is prominent. Much like Office.

True, but it's nice to have one central location to configure all of them. It's something that could be argued either way: currently it can be seen as a bloated tool that comes with several things whereas a user might only want a couple, but it also makes it more convenient in a lot of ways. The bigger concern about doing as you suggest is that I suspect that would only exacerbate this issue, as each individual one would likely have its own tray icon. Yikes. I think Blazein's solution, assuming it works (I haven't had a chance to test it yet), is a pretty good one, and easy enough to do. It's just a shame it's necessary.

vertigo220 avatar Jun 20 '22 23:06 vertigo220

YES PLEASE!!!

davidsteltz avatar Oct 06 '22 22:10 davidsteltz

I believe every app should allow this or even better, should be a Windows thing to allow you to hide any tray icon permanently, Spotify is another one that really annoys me. Anyway, there are several programs that allow you to hide the tray icon and if you want to bring the configuration/dashboard/whatever you just click the app/executable again which won't run a second instance of the app opening instead the configuration window, PowerToys could follow a similar approach. Edit: also the icon is ugly that's probably why everyone wants to hide it.

perigozin avatar Jan 22 '23 14:01 perigozin

Without a tray icon there is no tray menu and the window does not have a (custom) menu either, so no File > Exit.

How do you expect to exit the PowerToys (runner) ?

Jay-o-Way avatar Feb 11 '23 19:02 Jay-o-Way

@Jay-o-Way There is a "menu" or a location to place the "Exit the applcation" if you are forgetting it. 🤔

image

Or you can place it under general, adding a new section at the topmost area. This would be alongside the toggle to "hide the tray icon" and the warning that "you can only exit the application inside the application whenever you hide the tray icon"

RinMinase avatar Feb 13 '23 13:02 RinMinase

@RinMinase that is a Navigation menu - it's possible, but it has a very different intention...

Jay-o-Way avatar Feb 13 '23 13:02 Jay-o-Way

@vertigo220 @bolololololo you can thumb-down all you want, but how about answering the question?

Jay-o-Way avatar Feb 13 '23 15:02 Jay-o-Way

@Jay-o-Way Ask a question worth answering and I will. A thumbs down was already more effort on my part than that comment deserved.

vertigo220 avatar Feb 13 '23 15:02 vertigo220

Besides what @RinMinase suggested, which I think is the best approach, I believe whoever is using PowerToys and specifically hiding the tray icon is enough of an advanced user to know how to use Task Manager > End Task. The main reason everyone is annoyed by the icon is that it doesn't offer any functionality besides allowing the user to close the program or view documentation/report bug (things that can already be accessed from the dashboard), and all the PowerToys features should be already built-in into Windows so the icon is extremely useless (and ugly).

perigozin avatar Feb 14 '23 03:02 perigozin

Anybody with Windows 11 can already do this natively:

  • Go to the Windows settings for the tray area
  • set PT icon (or any) to "off" to move it to the overflow
  • set overflow menu to "off" to hide it completely

FYI @BLM16 @crutkas

Jay-o-Way avatar Feb 19 '23 19:02 Jay-o-Way

Task Manager > End Task

That is equivalent to "hold down the on/off button to shutdown your computer" or just pull the power cord.

Jay-o-Way avatar Feb 19 '23 19:02 Jay-o-Way

Anybody with Windows 11 can already do this natively:

  • Go to the Windows settings for the tray area
  • set PT icon (or any) to "off" to move it to the overflow
  • set overflow menu to "off" to hide it completely

FYI @BLM16 @crutkas

I use the overflow menu, and that is where PT is. I don't want it in that menu, but I do want the menu.

BLM16 avatar Feb 19 '23 22:02 BLM16