benbuck / rbtray

A fork of RBTray from http://sourceforge.net/p/rbtray/code/.
GNU General Public License v2.0
1.08k stars 89 forks source link

Feature Request: Minimize Whitelist #44

Open mpql opened 4 years ago

mpql commented 4 years ago

Hey, I don't see an issue template or any duplicates, though apologies if I'm missing something. I'd like to request a feature that I think (hope?) should be simple:

When an application whose path/name are on the whitelist is minimized normally, minimize it to tray. I'm not asking for a UI or anything, a txt or ini file formatted something like:

whitelist.txt

"C:\Program Files\Vendor\application.exe"
"C:\Program Files\Other Vendor\application2.exe"

...should work fine, in my mind. And then when an application that is on the whitelist (parsed at launch of rbtray.exe is probably fine) is minimized, that application minimizes instead to tray.

I'm thinking this should not be too much work, and it's a feature in other things that affect specific windows, but I might be underestimating the work. I'd take a crack at it myself, but it's been years since I've programmed in any C-family languages. If it's too much work (and believe me, I understand), I may try my hand at it anyhow and send a pull request if I'm successful, but no promises. 😅

benbuck commented 4 years ago

Hi @mopquill,

Thanks for the request, I can see how it would be useful, and it seems related to issue #20. I'm not sure currently how to implement this, so if you come up with a way please let me know.

Thanks, Benbuck

mpql commented 4 years ago

I'm happy to help ideate; which part are you unsure about? In my mind, flow goes like this:

Application loads up whitelist of process paths (could be path, title, window handle, etc.). When a program is minimized, if it matches path/title/whatever, it's minimized to tray.

If you mean in terms of code implementation, BorderlessGaming has an automatic thing that works like this, but it's for turning a window into borderless fullscreen: https://github.com/Codeusa/Borderless-Gaming (it's also written in C#, not C++)

If that is unclear, or if I've answered the wrong questions, let me know. :)

ericchase commented 3 years ago

Love the idea, I and a client are looking for this kind of functionality.

Have there been any advancements for this feature? @mopquill Were you able to find any utilities that accomplish this?

mpql commented 3 years ago

@mopquill Were you able to find any utilities that accomplish this?

Afraid not. I don't think it'd be terribly hard to implement; I started modifying this myself to focus on process names (example.exe) and titles (the way e.g. Borderless Gaming, Xpadder do). I was working on an issue where it didn't always notice that one was running without messing with polling stuff, but both programs in my use case that caused my need for this responded to my enhancement requests quickly, and added minimize-to-tray functionality to their products, removing my need for this, so I just stopped using it. Sorry I don't have better news.

It's not terribly hard to implement, though, I would suggest just writing something up, or forking this. Good luck!

benbuck commented 3 years ago

Hi,

Pull requests are welcome.

Thanks, Benbuck