diff --git a/core/config.go b/core/config.go index f0ebd939..e30ad6c2 100644 --- a/core/config.go +++ b/core/config.go @@ -13,8 +13,6 @@ var ( CfgNetworkServiceKey = "core/networkService" defaultNetworkServiceMode bool - - CfgUseSystemNotificationsKey = "core/useSystemNotifications" ) func init() { @@ -27,7 +25,7 @@ func init() { } func registerConfig() error { - err := config.Register(&config.Option{ + if err := config.Register(&config.Option{ Name: "Network Service", Key: CfgNetworkServiceKey, Description: "Use the Portmaster as a network service, where applicable. You will have to take care of lots of network setup yourself in order to run this properly and securely.", @@ -39,25 +37,7 @@ func registerConfig() error { config.DisplayOrderAnnotation: 513, config.CategoryAnnotation: "Network Service", }, - }) - if err != nil { - return err - } - - err = config.Register(&config.Option{ - Name: "Desktop Notifications", - Key: CfgUseSystemNotificationsKey, - Description: "In addition to showing notifications in the Portmaster App, also send them to the Desktop. This requires the Portmaster Notifier to be running.", - OptType: config.OptTypeBool, - ExpertiseLevel: config.ExpertiseLevelUser, - ReleaseLevel: config.ReleaseLevelStable, - DefaultValue: true, // TODO: turn off by default on unsupported systems - Annotations: config.Annotations{ - config.DisplayOrderAnnotation: -15, - config.CategoryAnnotation: "User Interface", - }, - }) - if err != nil { + }); err != nil { return err } diff --git a/firewall/config.go b/firewall/config.go index d4659972..2e283a49 100644 --- a/firewall/config.go +++ b/firewall/config.go @@ -3,6 +3,7 @@ package firewall import ( "github.com/safing/portbase/api" "github.com/safing/portbase/config" + "github.com/safing/portbase/notifications" "github.com/safing/portmaster/core" ) @@ -12,6 +13,7 @@ var ( CfgOptionAskWithSystemNotificationsKey = "filter/askWithSystemNotifications" cfgOptionAskWithSystemNotificationsOrder = 2 + askWithSystemNotifications config.BoolOption CfgOptionAskTimeoutKey = "filter/askTimeout" cfgOptionAskTimeoutOrder = 3 @@ -55,7 +57,7 @@ func registerConfig() error { config.DisplayOrderAnnotation: cfgOptionAskWithSystemNotificationsOrder, config.CategoryAnnotation: "General", config.RequiresAnnotation: config.ValueRequirement{ - Key: core.CfgUseSystemNotificationsKey, + Key: notifications.CfgUseSystemNotificationsKey, Value: true, }, }, @@ -63,6 +65,7 @@ func registerConfig() error { if err != nil { return err } + askWithSystemNotifications = config.Concurrent.GetAsBool(CfgOptionAskWithSystemNotificationsKey, true) err = config.Register(&config.Option{ Name: "Prompt Timeout", diff --git a/firewall/prompt.go b/firewall/prompt.go index 2f717f15..f2036fc9 100644 --- a/firewall/prompt.go +++ b/firewall/prompt.go @@ -169,10 +169,11 @@ func createPrompt(ctx context.Context, conn *network.Connection, pkt packet.Pack // Create new notification. n = ¬ifications.Notification{ - EventID: nID, - Type: notifications.Prompt, - Title: "Connection Prompt", - Category: "Privacy Filter", + EventID: nID, + Type: notifications.Prompt, + Title: "Connection Prompt", + Category: "Privacy Filter", + ShowOnSystem: askWithSystemNotifications(), EventData: &promptData{ Entity: entity, Profile: promptProfile{