Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Blacklist for applications #5

Closed
JellyJones opened this issue Apr 4, 2021 · 29 comments
Closed

Feature Request: Blacklist for applications #5

JellyJones opened this issue Apr 4, 2021 · 29 comments
Labels
enhancement New feature or request

Comments

@JellyJones
Copy link

Would it be possible to have a toggle for the application list to operate as either a blacklist or a whitelist. Currently there's only one program I'd like the devices to be blocked in and having a blacklist would be easier. I currently just keep it blank and just toggle the device hiding as needed.

@nefarius nefarius added the enhancement New feature or request label Apr 5, 2021
@Kanuan
Copy link

Kanuan commented Apr 21, 2021

Just for curiosity sake: what exactly is your use case?

@JellyJones
Copy link
Author

Disabling the direct input game controller part of my keyboard for games that prevent keyboard and mouse input when a game controller is detected.

Example: I have a Wooting keyboard and can't play Risk of Rain 2.

This app is great but I'd rather not have to whitelist every other game, so right now I just toggle it on and off as needed. A blacklist would let me select just the problematic games and I can leave and forget.

@nefarius nefarius changed the title Feature Request: Blacklist Feature Request: Blacklist for applications Apr 22, 2021
@DiGi
Copy link

DiGi commented Jul 2, 2021

I want to try this tool to hide joystick from Nvidia Shadowplay container. There is a bug - when you have joystick connected and enabled Instant replay then your monitor and PC will never go to sleep.

@nefarius
Copy link
Owner

nefarius commented Jul 2, 2021

I want to try this tool to hide joystick from Nvidia Shadowplay container. There is a bug - when you have joystick connected and enabled Instant replay then your monitor and PC will never go to sleep.

Kindly refrain from hijacking threads that have nothing to do with your own topic, open your own Discussion instead, thanks!

@DiGi
Copy link

DiGi commented Jul 3, 2021

Kindly refrain from hijacking threads that have nothing to do with your own topic, open your own Discussion instead, thanks!

I'm sorry I wrote it badly. That was another example for black list usage. I want to block only Nvidia container so it will not see joystick and it will not block PC going to sleep. Without needing whitelisting all other games.

@nefarius
Copy link
Owner

nefarius commented Jul 3, 2021

I'm sorry I wrote it badly. That was another example for black list usage. I want to block only Nvidia container so it will not see joystick and it will not block PC going to sleep. Without needing whitelisting all other games.

Ooohhh, I see, thanks for clarification!

@flexgrip
Copy link

This would also be useful in iRacing. There’s a tool to make iRacing force feedback better using vjoy and filtering the effects to the steering wheel.

Running hidhide is great for that. But then every other racing game requires whitelisting. Would be cool to just only blacklist iRacing from the device, then you’d never need to tinker with the settings anymore.

@flexgrip
Copy link

Also, I thought of another reason...

Tonight I tried to run it and I was unable to get it working because there are probably 2-3 apps that need to see my wheel. And I need the game pad controller app in windows to be able to see it. So if I could just blacklist the ones I know I don't want to see it, then that would solve that problem.

@BenGroeneveld
Copy link

I have a similar use case to the one that JellyJones described.

I have a Wooting keyboard and when connected (with HidHide disabled) F1 2021 would simply crash on any key press. Now, when hiding my Wooting keyboard in its entirety, F1 2021 doesn't crash, but my function keys (volume up/down/mute, etc.) wouldn't work anymore (at least after restarting my PC). I've found out which "composite device" 'caused' the crash in F1 2021, so only hiding that specific entry makes this workaround usable.

That being said, it would be easier (and in my perspective, more safe/better) if I could just blacklist F1 2021 (or any program I'd like, really) instead of having to whitelist every other application on my PC.

And I had an idea related to this problem/feature request (if I need to open a new Feature Request for this, please tell me to do so): some games don't go well with certain devices, which is where HidHide comes in handy. Now, not all games have the same problems with the same devices, so it would be nice if there could be profiles for devices, where in each profile you can set different combinations of devices to hide. When combined with a blacklist of programs (instead of a whitelist), you can select/enable such profiles per (blacklisted) program.

@nefarius
Copy link
Owner

This request requires a significant design change of the driver and the API so I can't give any ETA if or when that could become a reality.

@flexgrip
Copy link

Does it though? Keep in mind I’ve only slightly looked through the project, but couldn’t we just change that if statement where it checks if the app should be allowed through and !invert it?

I don’t mean that the UI would be right or that that is the long term way of handling it. Just that that would make all apps work and then the ones we specify would be blocked.

That being said I don’t know the ins and outs of the logic here. I do know that system apps can’t see my hidden wheel base and hidhide is somehow only showing a single device in its UI, even though when I turn it off I would normally see two FANATEC WHEEL BASE devices. So I was going to take some time to review the code this weekend and try to figure it out.

@nefarius
Copy link
Owner

nefarius commented Sep 17, 2021

Does it though? Keep in mind I’ve only slightly looked through the project, but couldn’t we just change that if statement where it checks if the app should be allowed through and !invert it?

The blackist API is currently one call that simply updates a list with application paths that should be whitelisted. To support this request, we'd need to change that to either a dictionary-type structure to add a flag of what to do with this entry (allow? deny?) and also a setting/make a decision what the new default behaviour of the driver should be. Allow by default? Or block by default?

So no, not just one line changed 😛

@ghost
Copy link

ghost commented Nov 17, 2021

Hi I just popped by to make the same request. I have a single game that needs this, so I toggle it before and after every game session. It would be nice to just add this game to the list and be done with it :)

@nefarius You've described a good way to do this where each entry can be an inclusion or exclusion, but I think that most or maybe even all of us here would be very happy with a solution that globally swaps from whitelist to blacklist. That way there mightn't be a need for the dictionary and default behaviour change, just simply a checkbox that swaps between the two behaviours, defaulting to the same behaviour we have now. Does that sound feasible?

@ghost ghost mentioned this issue Nov 24, 2021
@tonyz2525
Copy link

I also would like to filter only one application..Star Citizen. I would like all other apps on my system to function normally and see all controllers but only filter Star Citizen to see just 2 of my devices and no others. How hard would that be? I REALLY REALLY don't want to have to give special permission to ALL my dozens and dozens of applications just for this app to block ONE program.. so could that be done?

@nefarius
Copy link
Owner

How hard would that be?

Fork it, fix it, PR it, Profit. Ez gg

@nefarius
Copy link
Owner

so could that be done?

Nope, as mentioned earlier it ain't designed that way.

@shumatech
Copy link
Contributor

I forked it, fixed it and PR'ed it! PR here... #73
This adds a single checkbox to the client UI that turns the application list into a blacklist. I also added support to the CLI application for completeness.

@ghost
Copy link

ghost commented May 30, 2022

Thanks mate! The ink is barely dry on my todo list for this and you're done. GG.

Volunteering for testing if needed.

I forked it, fixed it and PR'ed it! PR here... #73 This adds a single checkbox to the client UI that turns the application list into a blacklist. I also added support to the CLI application for completeness.

@tonyz2525
Copy link

Great news…But since I am not a C++ programmer I would appreciate some instructions or directions on how to actually incorporate this into the app and how to use it…..maybe some actual files and instructions on where to place them to make this work? I appreciate the effort but it really doesn’t help me since I have no idea what to do with this info. Maybe a zip file with the updated files and instructions on where to put them? Just saying…..

@nefarius
Copy link
Owner

Great news…But since I am not a C++ programmer I would appreciate some instructions or directions on how to actually incorporate this into the app and how to use it…..maybe some actual files and instructions on where to place them to make this work? I appreciate the effort but it really doesn’t help me since I have no idea what to do with this info. Maybe a zip file with the updated files and instructions on where to put them? Just saying…..

Mate, this is a developer platform. You don't need to do anything with this information, I'll review the code when I got time and prepare a new update you can then download. Patience is the key here. Just saying...

@nefarius nefarius reopened this May 31, 2022
@nefarius
Copy link
Owner

I forked it, fixed it and PR'ed it! PR here... #73 This adds a single checkbox to the client UI that turns the application list into a blacklist. I also added support to the CLI application for completeness.

Very nice job, I merged and will craft a new release towards the upcoming weekend if everything goes according to plan (which it never does) 😁

@nefarius
Copy link
Owner

Alright, chaps, here is a pre-release with the new feature, ready for tests and feedback!

Cheers

@ghost
Copy link

ghost commented Jun 24, 2022

Seems to work really well, thanks! The text hints are a little confusing now, but otherwise, great! Thanks heaps mate :)

@nefarius
Copy link
Owner

Seems to work really well, thanks! The text hints are a little confusing now, but otherwise, great! Thanks heaps mate :)

I'll update the docs once the release has been downloaded a few times!

@gabrielmannarino
Copy link

This pre-release is working for me as intended, however, it's blacklisting DS4Windows every time I restart my PC. It was very useful with the whitelist, but I don't think it's intended for the blacklist.

@nefarius
Copy link
Owner

nefarius commented Jul 7, 2022

This pre-release is working for me as intended, however, it's blacklisting DS4Windows every time I restart my PC. It was very useful with the whitelist, but I don't think it's intended for the blacklist.

What does that mean? What's your config? What's the exact behaviour?

@nefarius nefarius closed this as completed Jul 7, 2022
@gabrielmannarino
Copy link

This pre-release is working for me as intended, however, it's blacklisting DS4Windows every time I restart my PC. It was very useful with the whitelist, but I don't think it's intended for the blacklist.

What does that mean? What's your config? What's the exact behaviour?

I use DS4Windows to emulate a XBOX Controller, and I use HidHide to avoid dual inputs from the DS4 and Driving Force GT on games like FIFA.
I used to allow DS4Windows and my racing games through the cloak, but I'm trying this new feature to block only FIFA. It works (I'm checking the "Inverse application cloack" option).

However, every time I restart my PC, the DS4Windows is again on the list. Even if I remove it from the list, it comes back after the next restart.

Sorry for my english, but I hope I could be clear now

@tonyz2525
Copy link

tonyz2525 commented Oct 11, 2022 via email

@ghost
Copy link

ghost commented Oct 11, 2022

I would appreciate some instructions or directions on how to actually incorporate this into the app and how to use it

Don't worry, the PR (pull request) is not intended for end-users, but for the developer to include, which as above, has now been done.
You can just download the finished product from the releases page here: https://github.com/ViGEm/HidHide/releases

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

9 participants