public void EnsureDefaults() { string NotInMan = ""; // Option not listed in 'man' documentation. SetDefaultBool("cli", false, Messages.ManOptionCli); SetDefaultBool("version", false, NotInMan); SetDefaultBool("version.short", false, NotInMan); SetDefaultBool("development", false, NotInMan); // If in development file structure SetDefaultBool("help", false, Messages.ManOptionHelp); SetDefault("help.format", "choice:text,bbcode,html,man", "text", Messages.ManOptionHelpFormat); // Maybe 'text' or 'bbcode' or 'html' or 'man'. SetDefaultBool("batch", false, NotInMan); // Don't lock interface, exit when connection is closed. SetDefault("login", "text", "", Messages.ManOptionLogin); SetDefault("password", "password", "", Messages.ManOptionPassword); SetDefaultBool("remember", false, Messages.ManOptionRemember); SetDefault("key", "text", "Default", Messages.ManOptionKey); SetDefault("server", "text", "", Messages.ManOptionServer); SetDefaultBool("connect", false, Messages.ManOptionConnect); SetDefaultBool("netlock", false, Messages.ManOptionNetLock); SetDefault("console.mode", "choice:none,batch,keys,backend,tcp", "keys", NotInMan); SetDefault("console.control.path", "text", "", NotInMan); SetDefault("profile", "text", "AirVPN.xml", Messages.ManOptionProfile); // Not in Settings SetDefault("path", "text", "", Messages.ManOptionPath); // Not in Settings // Path. Maybe a full path, or special values 'home' or 'program'. SetDefault("servers.last", "text", "", NotInMan, false); SetDefault("servers.whitelist", "text", "", Messages.ManOptionServersWhiteList); SetDefault("servers.blacklist", "text", "", Messages.ManOptionServersBlackList); SetDefaultBool("servers.startlast", false, Messages.ManOptionServersStartLast); SetDefaultBool("servers.locklast", false, Messages.ManOptionServersLockLast); SetDefault("servers.scoretype", "choice:Speed,Latency", "Speed", Messages.ManOptionServersScoreType); SetDefault("areas.whitelist", "text", "", Messages.ManOptionAreasWhiteList); SetDefault("areas.blacklist", "text", "", Messages.ManOptionAreasBlackList); //SetDefault("discover.ip_webservice.list", "text", "https://eddie.website/api/xml/{ip};https://ipleak.net/xml/{@ip};https://freegeoip.net/xml/{@ip};http://ip-api.com/xml/{@ip}", NotInMan); SetDefault("discover.ip_webservice.list", "text", "https://ipleak.net/xml/{@ip};https://freegeoip.net/xml/{@ip};http://ip-api.com/xml/{@ip}", NotInMan); SetDefaultBool("discover.ip_webservice.first", true, NotInMan); SetDefaultInt("discover.interval", 60 * 60 * 24, NotInMan); // Delta between refresh discover data (country and other data) for OpenVPN connections. SetDefaultBool("discover.exit", true, NotInMan); SetDefaultBool("log.file.enabled", false, NotInMan); SetDefault("log.file.encoding", "encoding", "utf-8", NotInMan); SetDefault("log.file.path", "text", "logs/eddie_%y-%m-%d.log", NotInMan); SetDefaultBool("log.level.debug", false, NotInMan); SetDefaultBool("log.repeat", false, NotInMan); SetDefault("mode.protocol", "text", "AUTO", Messages.ManOptionModeProtocol); SetDefaultInt("mode.port", 443, Messages.ManOptionModePort); SetDefaultInt("mode.alt", 0, Messages.ManOptionModeAlt); SetDefault("proxy.mode", "text", "None", Messages.ManOptionProxyMode); SetDefault("proxy.when", "choice:always/web/openvpn/none", "always", NotInMan); SetDefault("proxy.host", "ip", "127.0.0.1", Messages.ManOptionProxyHost); SetDefaultInt("proxy.port", 8080, Messages.ManOptionProxyPort); SetDefault("proxy.auth", "text", "None", Messages.ManOptionProxyAuth); SetDefault("proxy.login", "text", "", Messages.ManOptionProxyLogin); SetDefault("proxy.password", "password", "", Messages.ManOptionProxyPassword); SetDefaultInt("proxy.tor.control.port", 9151, Messages.ManOptionProxyTorControlPort); SetDefaultBool("proxy.tor.control.auth", true, Messages.ManOptionProxyTorControlAuth); SetDefault("proxy.tor.control.cookie-path", "", "", NotInMan); SetDefault("proxy.tor.control.password", "password", "", Messages.ManOptionProxyTorControlPassword); SetDefault("routes.default", "choice:in,out", "in", Messages.ManOptionRoutesDefault); SetDefault("routes.custom", "text", "", Messages.ManOptionRoutesCustom); SetDefaultBool("routes.remove_default", false, Messages.ManOptionRoutesRemoveDefault); // Will be probably deprecated, issues with DHCP renew. SetDefault("dns.mode", "text", "auto", Messages.ManOptionDnsMode); SetDefault("dns.servers", "text", "", Messages.ManOptionDnsServers); SetDefaultBool("dns.check", true, Messages.ManOptionDnsCheck); SetDefaultInt("dns.cache.ttl", 3600, NotInMan); SetDefault("netlock.mode", "text", "auto", Messages.ManOptionNetLockMode); SetDefaultBool("netlock.allow_private", true, Messages.ManOptionNetLockAllowPrivate); SetDefaultBool("netlock.allow_ping", true, Messages.ManOptionNetLockAllowPing); SetDefaultBool("netlock.allow_dns", false, Messages.ManOptionNetLockAllowDNS); SetDefault("netlock.allowed_ips", "text", "", Messages.ManOptionNetLockAllowedsIps); SetDefault("ipv6.mode", "text", "disable", Messages.ManOptionIpV6); SetDefault("protocol.ip.entry", "text", "ipv4-ipv6", NotInMan); // ipv6-ipv4;ipv4-ipv6;ipv4-only;ipv6-only; SetDefault("protocol.ipv4.route", "choice:in-always,in-out,in-block,out,block", "in-block", NotInMan); SetDefault("protocol.ipv6.route", "choice:in-always,in-out,in-block,out,block", "in-block", NotInMan); SetDefault("tools.openvpn.path", "path_file", "", Messages.ManOptionToolsOpenVpnPath); SetDefault("tools.ssh.path", "path_file", "", Messages.ManOptionToolsSshPath); SetDefault("tools.ssl.path", "path_file", "", Messages.ManOptionToolsSslPath); SetDefault("tools.curl.path", "path_file", "", Messages.ManOptionToolsCurlPath); SetDefaultInt("tools.curl.max-time", 30, NotInMan); SetDefault("openvpn.custom", "text", "", Messages.ManOptionOpenVpnCustom); SetDefault("openvpn.dev_node", "text", "", Messages.ManOptionOpenVpnDevNode); SetDefaultInt("openvpn.sndbuf", -2, Messages.ManOptionOpenVpnSndBuf); // 2.11 SetDefaultInt("openvpn.rcvbuf", -2, Messages.ManOptionOpenVpnRcvBuf); // 2.11 SetDefault("openvpn.directives", "text", "client\r\ndev tun\r\nauth-nocache\r\nresolv-retry infinite\r\nnobind\r\npersist-key\r\npersist-tun\r\nverb 3\r\nconnect-retry-max 1\r\nping 10\r\nping-exit 32\r\nexplicit-exit-notify 5", Messages.ManOptionOpenVpnDirectives); SetDefault("openvpn.directives.path", "path_file", "", NotInMan); SetDefaultBool("openvpn.skip_defaults", false, Messages.ManOptionOpenVpnSkipDefaults); // Not in Settings SetDefaultInt("openvpn.management_port", 3100, Messages.ManOptionOpenVpnManagementPort); SetDefaultInt("ssh.port", 0, Messages.ManOptionSshPort); SetDefaultInt("ssl.port", 0, Messages.ManOptionSslPort); SetDefault("ssl.options", "text", "", NotInMan); // "NO_SSLv2" < 2.11.10 SetDefaultInt("ssl.verify", -1, NotInMan); SetDefaultBool("os.single_instance", true, Messages.ManOptionOsSingleInstance); bool webui = (WebServer.GetPath() != ""); // WebUI it's a Eddie 3.* feature not yet committed on GitHub. SetDefaultBool("webui.enabled", webui, NotInMan); // Messages.ManOptionWebUiEnabled SetDefault("webui.ip", "text", "localhost", NotInMan); // Messages.ManOptionWebUiAddress SetDefaultInt("webui.port", 4649, NotInMan); // Messages.ManOptionWebUiPort SetDefaultBool("tcpserver.enabled", webui, NotInMan); SetDefault("tcpserver.ip", "text", "localhost", NotInMan); SetDefaultInt("tcpserver.port", Constants.DefaultTcpPort, NotInMan); SetDefaultBool("advanced.expert", false, Messages.ManOptionAdvancedExpert); SetDefaultBool("advanced.check.route", true, Messages.ManOptionAdvancedCheckRoute); SetDefaultInt("advanced.penality_on_error", 30, NotInMan); SetDefaultBool("pinger.enabled", true, Messages.ManOptionAdvancedPingerEnabled); SetDefaultInt("pinger.delay", 0, Messages.ManOptionAdvancedPingerDelay); SetDefaultInt("pinger.retry", 0, Messages.ManOptionAdvancedPingerRetry); SetDefaultInt("pinger.jobs", 10, Messages.ManOptionAdvancedPingerJobs); SetDefaultInt("pinger.valid", 0, Messages.ManOptionAdvancedPingerValid); SetDefaultInt("advanced.manifest.refresh", -1, NotInMan); SetDefaultBool("advanced.providers", false, NotInMan); SetDefaultBool("advanced.skip_privileges", false, NotInMan); // Skip 'root' detection. SetDefaultBool("advanced.skip_tun_detect", false, NotInMan); // Skip TUN driver detection. SetDefaultBool("advanced.skip_alreadyrun", false, NotInMan); // Continue even if openvpn is already running. SetDefaultBool("connections.allow_anyway", false, NotInMan); // Allow connection even if in 'Not available' status. SetDefaultBool("advanced.testonly", false, NotInMan); // Disconnect when connection occur. EnsureDefaultsEvent("app.start"); EnsureDefaultsEvent("app.stop"); EnsureDefaultsEvent("session.start"); EnsureDefaultsEvent("session.stop"); EnsureDefaultsEvent("vpn.pre"); EnsureDefaultsEvent("vpn.up"); EnsureDefaultsEvent("vpn.down"); // Windows only SetDefault("windows.adapter_service", "text", "tap0901", Messages.ManOptionWindowsAdapterService); SetDefaultBool("windows.disable_driver_upgrade", false, Messages.ManOptionWindowsDisableDriverUpgrade); SetDefaultBool("windows.tap_up", true, Messages.ManOptionWindowsTapUp); SetDefaultBool("windows.dhcp_disable", false, Messages.ManOptionWindowsDhcpDisable); SetDefaultBool("windows.wfp.enable", true, Messages.ManOptionWindowsWfp); SetDefaultBool("windows.wfp.dynamic", false, Messages.ManOptionWindowsWfpDynamic); SetDefaultBool("windows.ipv6.os_disable", false, Messages.ManOptionWindowsIPv6DisableAtOs); // Must be default FALSE if WFP works well SetDefaultBool("windows.dns.force_all_interfaces", false, Messages.ManOptionWindowsDnsForceAllInterfaces); // Important: With WFP can be false, but users report DNS leak. Maybe not a real DNS Leak, simply request on DNS of other interfaces through VPN tunnel. SetDefaultBool("windows.dns.lock", true, Messages.ManOptionWindowsDnsLock); SetDefaultInt("windows.metrics.tap.ipv4", -2, NotInMan); // 2.13: 0: Windows Automatic, >0 value, -1: Don't change, -2: Automatic SetDefaultInt("windows.metrics.tap.ipv6", -2, NotInMan); // 2.13: 0: Windows Automatic, >0 value, -1: Don't change, -2: Automatic SetDefaultBool("windows.workarounds", false, NotInMan); // If true, some variants to identify issues // General UI SetDefault("ui.unit", "text", "", Messages.ManOptionUiUnit); SetDefaultBool("ui.iec", false, Messages.ManOptionUiIEC); // GUI only SetDefaultBool("gui.exit_confirm", true, NotInMan, false); SetDefault("gui.skin", "text", "Light", NotInMan, false); SetDefaultBool("gui.tos", false, NotInMan, false); SetDefault("gui.font.normal.name", "text", "", NotInMan); SetDefaultFloat("gui.font.normal.size", 0, NotInMan); SetDefaultInt("gui.log_limit", 1000, NotInMan); SetDefault("gui.window.main", "text", "", NotInMan, false); SetDefault("gui.list.servers", "text", "", NotInMan, false); SetDefault("gui.list.areas", "text", "", NotInMan, false); SetDefault("gui.list.logs", "text", "", NotInMan, false); // GUI - Windows only SetDefaultBool("gui.windows.start_minimized", false, NotInMan); SetDefaultBool("gui.windows.tray", true, NotInMan); SetDefaultBool("gui.windows.notifications", true, NotInMan); // GUI - OSX Only SetDefaultBool("gui.osx.notifications", false, NotInMan); // SetDefaultBool("gui.osx.dock", false, NotInMan); // See this FAQ: https://airvpn.org/topic/13331-its-possible-to-hide-the-icon-in-dock-bar-under-os-x/ SetDefaultBool("gui.osx.visible", false, NotInMan); SetDefault("gui.osx.style", "text", "light", NotInMan); SetDefaultBool("gui.osx.sysbar.show_info", false, NotInMan); SetDefaultBool("gui.osx.sysbar.show_speed", false, NotInMan); SetDefaultBool("gui.osx.sysbar.show_server", false, NotInMan); // TODO: we need to test params with space in different linux platform, with focus on escaping gksu/kdesu shell to obtain elevated privileges SetDefault("paramtest", "text", "", NotInMan, false); // Command-line only Options["cli"].CommandLineOnly = true; Options["help"].CommandLineOnly = true; Options["help.format"].CommandLineOnly = true; // Internal only Options["gui.window.main"].InternalOnly = true; Options["gui.list.servers"].InternalOnly = true; Options["gui.list.areas"].InternalOnly = true; Options["gui.list.logs"].InternalOnly = true; // Omissis Options["login"].Omissis = true; Options["password"].Omissis = true; Options["key"].Omissis = true; Options["proxy.login"].Omissis = true; Options["proxy.password"].Omissis = true; Options["proxy.tor.control.password"].Omissis = true; // Don't clean with user Reset All Options["login"].DontUserReset = true; Options["password"].DontUserReset = true; Options["remember"].DontUserReset = true; Options["key"].DontUserReset = true; // Exceptions // TOFIX: Some users report a stuck in 'Checking environment' phase on macOS only, Eddie 2.13.4 and above. if (Platform.Instance.GetCode() == "MacOS") { Options["advanced.skip_alreadyrun"].Default = "True"; } }
public void EnsureDefaults() { string NotInMan = ""; // Option not listed in 'man' documentation. SetDefaultBool("cli", false, Messages.ManOptionCli); SetDefaultBool("help", false, Messages.ManOptionHelp); SetDefault("help_format", "choice:text,bbcode,html,man", "text", Messages.ManOptionHelpFormat); // Maybe 'text' or 'bbcode' or 'html' or 'man'. SetDefaultBool("batch", false, NotInMan); // Don't lock interface, exit when connection is closed. SetDefault("login", "text", "", Messages.ManOptionLogin); SetDefault("password", "password", "", Messages.ManOptionPassword); SetDefaultBool("remember", false, Messages.ManOptionRemember); SetDefault("key", "text", "Default", Messages.ManOptionKey); SetDefault("server", "text", "", Messages.ManOptionServer); SetDefaultBool("connect", false, Messages.ManOptionConnect); SetDefaultBool("netlock", false, Messages.ManOptionNetLock); SetDefault("profile", "text", "AirVPN", Messages.ManOptionProfile); // Not in Settings SetDefault("path", "text", "", Messages.ManOptionPath); // Not in Settings // Path. Maybe a full path, or special values 'home' or 'program'. SetDefault("servers.last", "text", "", NotInMan, false); SetDefault("servers.whitelist", "text", "", Messages.ManOptionServersWhiteList); SetDefault("servers.blacklist", "text", "", Messages.ManOptionServersBlackList); SetDefaultBool("servers.startlast", false, Messages.ManOptionServersStartLast); SetDefaultBool("servers.locklast", false, Messages.ManOptionServersLockLast); SetDefault("servers.scoretype", "choice:Speed,Latency", "Speed", Messages.ManOptionServersScoreType); SetDefault("areas.whitelist", "text", "", Messages.ManOptionAreasWhiteList); SetDefault("areas.blacklist", "text", "", Messages.ManOptionAreasBlackList); SetDefault("discover.ip_webservice.list", "text", "https://ipleak.net/xml/{@ip};https://freegeoip.net/xml/{@ip};http://ip-api.com/xml/{@ip}", NotInMan); SetDefaultBool("discover.ip_webservice.first", true, NotInMan); SetDefaultBool("log.file.enabled", false, NotInMan); SetDefault("log.file.path", "text", "logs/eddie_%y-%m-%d.log", NotInMan); SetDefaultBool("log.level.debug", false, NotInMan); SetDefault("mode.protocol", "text", "AUTO", Messages.ManOptionModeProtocol); SetDefaultInt("mode.port", 443, Messages.ManOptionModePort); SetDefaultInt("mode.alt", 0, Messages.ManOptionModeAlt); SetDefault("proxy.mode", "text", "None", Messages.ManOptionProxyMode); SetDefault("proxy.host", "ip", "127.0.0.1", Messages.ManOptionProxyHost); SetDefaultInt("proxy.port", 8080, Messages.ManOptionProxyPort); SetDefault("proxy.auth", "text", "None", Messages.ManOptionProxyAuth); SetDefault("proxy.login", "text", "", Messages.ManOptionProxyLogin); SetDefault("proxy.password", "password", "", Messages.ManOptionProxyPassword); SetDefaultInt("proxy.tor.control.port", 9151, Messages.ManOptionProxyTorControlPort); SetDefaultBool("proxy.tor.control.auth", true, Messages.ManOptionProxyTorControlAuth); SetDefault("proxy.tor.control.password", "password", "", Messages.ManOptionProxyTorControlPassword); SetDefault("routes.default", "choice:in,out", "in", Messages.ManOptionRoutesDefault); SetDefault("routes.custom", "text", "", Messages.ManOptionRoutesCustom); SetDefaultBool("routes.remove_default", false, Messages.ManOptionRoutesRemoveDefault); // Will be probably deprecated, issues with DHCP renew. SetDefault("dns.mode", "text", "auto", Messages.ManOptionDnsMode); SetDefault("dns.servers", "text", "", Messages.ManOptionDnsServers); SetDefaultBool("dns.check", true, Messages.ManOptionDnsCheck); SetDefault("netlock.mode", "text", "auto", Messages.ManOptionNetLockMode); SetDefaultBool("netlock.allow_private", true, Messages.ManOptionNetLockAllowPrivate); SetDefaultBool("netlock.allow_ping", true, Messages.ManOptionNetLockAllowPing); SetDefault("netlock.allowed_ips", "text", "", Messages.ManOptionNetLockAllowedsIps); SetDefault("ipv6.mode", "text", "disable", Messages.ManOptionIpV6); SetDefault("executables.openvpn", "path_file", "", Messages.ManOptionExecutablesOpenVpn); SetDefault("executables.ssh", "path_file", "", Messages.ManOptionExecutablesSsh); SetDefault("executables.ssl", "path_file", "", Messages.ManOptionExecutablesSsl); SetDefault("executables.curl", "path_file", "", Messages.ManOptionExecutablesCurl); SetDefault("openvpn.custom", "text", "", Messages.ManOptionOpenVpnCustom); SetDefault("openvpn.dev_node", "text", "", Messages.ManOptionOpenVpnDevNode); SetDefaultInt("openvpn.sndbuf", -2, Messages.ManOptionOpenVpnSndBuf); // 2.11 SetDefaultInt("openvpn.rcvbuf", -2, Messages.ManOptionOpenVpnRcvBuf); // 2.11 SetDefault("openvpn.directives", "text", "client\r\ndev tun\r\nresolv-retry infinite\r\nnobind\r\npersist-key\r\npersist-tun\r\nverb 3\r\nconnect-retry-max 1\r\nping 10\r\nping-exit 32\r\nexplicit-exit-notify 5", Messages.ManOptionOpenVpnDirectives); SetDefaultBool("openvpn.skip_defaults", false, Messages.ManOptionOpenVpnSkipDefaults); // Not in Settings SetDefaultInt("openvpn.management_port", 3100, Messages.ManOptionOpenVpnManagementPort); SetDefaultInt("ssh.port", 0, Messages.ManOptionSshPort); SetDefaultInt("ssl.port", 0, Messages.ManOptionSslPort); SetDefaultBool("os.single_instance", true, Messages.ManOptionOsSingleInstance); if (WebServer.GetPath() != "") { SetDefaultBool("webui.enabled", true, Messages.ManOptionWebUiEnabled); SetDefault("webui.ip", "text", "localhost", Messages.ManOptionWebUiAddress); SetDefaultInt("webui.port", 4649, Messages.ManOptionWebUiPort); } SetDefaultBool("advanced.expert", false, Messages.ManOptionAdvancedExpert); SetDefaultBool("advanced.check.route", true, Messages.ManOptionAdvancedCheckRoute); SetDefaultInt("advanced.penality_on_error", 30, NotInMan); SetDefaultBool("pinger.enabled", true, Messages.ManOptionAdvancedPingerEnabled); SetDefaultInt("pinger.delay", 0, Messages.ManOptionAdvancedPingerDelay); SetDefaultInt("pinger.retry", 0, Messages.ManOptionAdvancedPingerRetry); SetDefaultInt("pinger.jobs", 10, Messages.ManOptionAdvancedPingerJobs); SetDefaultInt("pinger.valid", 0, Messages.ManOptionAdvancedPingerValid); SetDefaultInt("advanced.manifest.refresh", -1, NotInMan); SetDefaultBool("advanced.skip_privileges", false, NotInMan); // Skip 'root' detection. SetDefaultBool("advanced.skip_tun_detect", false, NotInMan); // Skip TUN driver detection. SetDefaultBool("advanced.skip_alreadyrun", false, NotInMan); // Continue even if openvpn is already running. SetDefaultBool("servers.allow_anyway", false, NotInMan); // Allow connection to server in 'Closed' status SetDefaultBool("advanced.testonly", false, NotInMan); // Disconnect when connection occur. EnsureDefaultsEvent("app.start"); EnsureDefaultsEvent("app.stop"); EnsureDefaultsEvent("session.start"); EnsureDefaultsEvent("session.stop"); EnsureDefaultsEvent("vpn.pre"); EnsureDefaultsEvent("vpn.up"); EnsureDefaultsEvent("vpn.down"); // Windows only SetDefault("windows.adapter_service", "text", "tap0901", Messages.ManOptionWindowsAdapterService); SetDefaultBool("windows.disable_driver_upgrade", false, Messages.ManOptionWindowsDisableDriverUpgrade); SetDefaultBool("windows.tap_up", true, Messages.ManOptionWindowsTapUp); SetDefaultBool("windows.dhcp_disable", false, Messages.ManOptionWindowsDhcpDisable); SetDefaultBool("windows.wfp", true, Messages.ManOptionWindowsWfp); SetDefaultBool("windows.wfp.dynamic", false, Messages.ManOptionWindowsWfpDynamic); SetDefaultBool("windows.ipv6.os_disable", false, Messages.ManOptionWindowsIPv6DisableAtOs); // Must be default FALSE if WFP works well SetDefaultBool("windows.dns.force_all_interfaces", true, Messages.ManOptionWindowsDnsForceAllInterfaces); // Important: With WFP can be false, but users report DNS leak. Maybe not a real DNS Leak, simply request on DNS of other interfaces through VPN tunnel. SetDefaultBool("windows.dns.lock", true, Messages.ManOptionWindowsDnsLock); // General UI SetDefault("ui.unit", "text", "", Messages.ManOptionUiUnit); // GUI only SetDefaultBool("gui.exit_confirm", true, NotInMan, false); SetDefault("gui.skin", "text", "Light", NotInMan, false); SetDefaultBool("gui.tos", false, NotInMan, false); SetDefault("gui.font.normal.name", "text", "", NotInMan); SetDefaultFloat("gui.font.normal.size", 0, NotInMan); SetDefaultInt("gui.log_limit", 1000, NotInMan); SetDefault("gui.window.main", "text", "", NotInMan, false); SetDefault("gui.list.servers", "text", "", NotInMan, false); SetDefault("gui.list.areas", "text", "", NotInMan, false); SetDefault("gui.list.logs", "text", "", NotInMan, false); // GUI - Windows only SetDefaultBool("gui.windows.start_minimized", false, NotInMan); SetDefaultBool("gui.windows.tray", true, NotInMan); SetDefaultBool("gui.windows.notifications", true, NotInMan); // GUI - OSX Only SetDefaultBool("gui.osx.notifications", false, NotInMan); // SetDefaultBool("gui.osx.dock", false, NotInMan); // See this FAQ: https://airvpn.org/topic/13331-its-possible-to-hide-the-icon-in-dock-bar-under-os-x/ SetDefaultBool("gui.osx.visible", false, NotInMan); SetDefault("gui.osx.style", "text", "light", NotInMan); SetDefaultBool("gui.osx.sysbar.show_info", false, NotInMan); SetDefaultBool("gui.osx.sysbar.show_speed", false, NotInMan); SetDefaultBool("gui.osx.sysbar.show_server", false, NotInMan); // TODO: we need to test params with space in different linux platform, with focus on escaping gksu/kdesu shell to obtain elevated privileges SetDefault("paramtest", "text", "", NotInMan, false); // Command-line only? Options["cli"].CommandLineOnly = true; Options["help"].CommandLineOnly = true; Options["help_format"].CommandLineOnly = true; // Internal only? Options["gui.window.main"].InternalOnly = true; Options["gui.list.servers"].InternalOnly = true; Options["gui.list.areas"].InternalOnly = true; Options["gui.list.logs"].InternalOnly = true; // Don't clean with user Reset All Options["login"].DontUserReset = true; Options["password"].DontUserReset = true; Options["remember"].DontUserReset = true; Options["key"].DontUserReset = true; }