tnodir / fort

Fort Firewall for Windows
GNU General Public License v3.0
1.11k stars 97 forks source link

Schedule and Time based rules need improvement #173

Open Emi-Emi-Emi opened 6 months ago

Emi-Emi-Emi commented 6 months ago

AppGroups have a way to schedule the enable/disable state of a Group, but you can't specify it like run the Appgroup Everyday or in certain days of the week, plus be able to add more time ranges, so you can Enable it in different hours of the day.

I just noticed this, but "Time Period" wording is redundant because 'Period' is "An interval of time", so Schedule would be a better word for it.

For Programs window, it already has Block in and Block at, but not Allow in and Allow at. Allow At will ways to specify days and ranges too. Since the introduction of Wildcard Programs, there is one less reason to use AppGroups so not having to use Use Application Group's Enabled State for something like this would be good, especially if you just want to allow 1 program to certain time instead of creating a whole single empty AppGroup to do it, when AppGroups are limited in number.

tnodir commented 6 months ago

You are absolutely right as always. Need ideas how to generalize the Scheduler for all of them.

Emi-Emi-Emi commented 6 months ago

Well, Netlimiter does it in their 'rules editor', it has a scheduler tab, where it has Start and Stop controlling everything,

So, Block In, could stay, but Block At could be replaced by a fourth option: Allow, Block, Kill and Scheduled that will display another window, and that way make an advanced scheduling of the rule, to block and allow it at certain times with options for Once, Everyday, days of the week, like what Windows Scheduler has.

And I know my last suggestion about merging AppGroups and Programs in a single place was seen negative by the Fort community, but looking at Wildcard Programs... what is the purpose of AppGroups besides the speed limiter at this point? especially when you want to take speed limiter out and make it independent someday?

Wildcard Programs and AppGroups can do pretty much the same thing for paths. so instead of thinking about a scheduler for AppGroups, you can just leave it as it is, but instead, you can implement a Grouping system in Programs, like what Windows Start menu has when programs are inside a folder. Then, any individual Program's rule inside of it will be overridden by it, make it easy to move programs in and out, add couple custom icons or colors to personalize the grouping system and differentiate them easily, and and this way you don't need to implement any more features in two different places, no more fragmentation, scheduler doesn't have to be implemented in Narnia but right inside Programs and only Programs.

AppGroups was the first thing that was used in Fort, so I know nostalgia can make it hard to let it go, but Programs has proven to be the future the moment you made it default when programs were detected, and wildcard programs made Programs so useful, that it is hard to choose AppGroups anymore, unless we need easy Enabling/Disabling in tray icon/hotkey, copying and pasting multiple paths at once and the Speed Limiter that you want to separate and make its own window anyway.

Don't rush and hate the idea, think about it, you had to implement Kill Processes in both places, wildcard in both places, Apply to child processes in both places as well, and since Wildcard Programs were implemented, maybe feature duplication can be avoided. So it can't be the worst idea I can suggest.

👍 Happy New year and hope you will be alright and have a great 2024!

tnodir commented 6 months ago

@Emi-Emi-Emi Please check the v3.10.6 as further step to remove Allow/Block/Kill text options from AppGroups later.

Emi-Emi-Emi commented 6 months ago

Oh nice! working great, already transferred everything to Programs. Amazing work. 👍