diff --git a/ShadowsocksX-NG/AppDelegate.swift b/ShadowsocksX-NG/AppDelegate.swift index 3678bf8..11a6c6b 100644 --- a/ShadowsocksX-NG/AppDelegate.swift +++ b/ShadowsocksX-NG/AppDelegate.swift @@ -48,9 +48,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele "ShadowsocksOn": true, "ShadowsocksRunningMode": "auto", "LocalSocks5.ListenPort": NSNumber(unsignedShort: 1086), - "LocalSocks5.ListenAddress": "localhost", + "LocalSocks5.ListenAddress": "127.0.0.1", "LocalSocks5.Timeout": NSNumber(unsignedInteger: 60), "LocalSocks5.EnableUDPRelay": NSNumber(bool: false), + "LocalSocks5.EnableVerboseMode": NSNumber(bool: false), "GFWListURL": "https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt" ]) @@ -283,6 +284,15 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele } } + @IBAction func showLogs(sender: NSMenuItem) { + let ws = NSWorkspace.sharedWorkspace() + if let appUrl = ws.URLForApplicationWithBundleIdentifier("com.apple.Console") { + try! ws.launchApplicationAtURL(appUrl + ,options: .Default + ,configuration: [NSWorkspaceLaunchConfigurationArguments: "~/Library/Logs/ss-local.log"]) + } + } + @IBAction func feedback(sender: NSMenuItem) { NSWorkspace.sharedWorkspace().openURL(NSURL(string: "https://github.com/qiuyuzhou/ShadowsocksX-NG/issues")!) } diff --git a/ShadowsocksX-NG/Base.lproj/AdvPreferencesWindowController.xib b/ShadowsocksX-NG/Base.lproj/AdvPreferencesWindowController.xib index 048c9aa..7b76e43 100644 --- a/ShadowsocksX-NG/Base.lproj/AdvPreferencesWindowController.xib +++ b/ShadowsocksX-NG/Base.lproj/AdvPreferencesWindowController.xib @@ -14,14 +14,63 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -29,7 +78,7 @@ - + @@ -37,10 +86,7 @@ - - - - + @@ -55,7 +101,7 @@ - + @@ -63,7 +109,7 @@ - + @@ -79,7 +125,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -142,49 +153,74 @@ - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/ShadowsocksX-NG/Base.lproj/MainMenu.xib b/ShadowsocksX-NG/Base.lproj/MainMenu.xib index cdd88f3..cab9deb 100644 --- a/ShadowsocksX-NG/Base.lproj/MainMenu.xib +++ b/ShadowsocksX-NG/Base.lproj/MainMenu.xib @@ -117,6 +117,12 @@ + + + + + + diff --git a/ShadowsocksX-NG/Info.plist b/ShadowsocksX-NG/Info.plist index e2c0649..01b772e 100644 --- a/ShadowsocksX-NG/Info.plist +++ b/ShadowsocksX-NG/Info.plist @@ -36,7 +36,7 @@ CFBundleVersion - 1 + 3 LSApplicationCategoryType public.app-category.utilities LSMinimumSystemVersion diff --git a/ShadowsocksX-NG/LaunchAgentUtils.swift b/ShadowsocksX-NG/LaunchAgentUtils.swift index a068fed..1488fe3 100644 --- a/ShadowsocksX-NG/LaunchAgentUtils.swift +++ b/ShadowsocksX-NG/LaunchAgentUtils.swift @@ -30,12 +30,17 @@ func generateSSLocalLauchAgentPlist() -> Bool { let oldSha1Sum = getFileSHA1Sum(plistFilepath) - let enableUdpRelay = NSUserDefaults.standardUserDefaults().boolForKey("LocalSocks5.EnableUDPRelay") + let defaults = NSUserDefaults.standardUserDefaults() + let enableUdpRelay = defaults.boolForKey("LocalSocks5.EnableUDPRelay") + let enableVerboseMode = defaults.boolForKey("LocalSocks5.EnableVerboseMode") var arguments = [sslocalPath, "-c", "ss-local-config.json"] if enableUdpRelay { arguments.append("-u") } + if enableVerboseMode { + arguments.append("-v") + } // For a complete listing of the keys, see the launchd.plist manual page. let dict: NSMutableDictionary = [ diff --git a/ShadowsocksX-NG/zh-Hans.lproj/AdvPreferencesWindowController.strings b/ShadowsocksX-NG/zh-Hans.lproj/AdvPreferencesWindowController.strings index 6c30cf1..c26222d 100644 --- a/ShadowsocksX-NG/zh-Hans.lproj/AdvPreferencesWindowController.strings +++ b/ShadowsocksX-NG/zh-Hans.lproj/AdvPreferencesWindowController.strings @@ -2,6 +2,9 @@ /* Class = "NSButtonCell"; title = "启用 Udp Replay"; ObjectID = "1C3-4s-Apd"; */ "1C3-4s-Apd.title" = "启用 Udp Replay"; +/* Class = "NSTextFieldCell"; title = "Don't change these preferences if you have no idea what are they."; ObjectID = "8wL-qv-5nD"; */ +"8wL-qv-5nD.title" = "如果你不明白这些选项是什么,请不要修改"; + /* Class = "NSWindow"; title = "高级设置"; ObjectID = "F0z-JX-Cv5"; */ "F0z-JX-Cv5.title" = "高级设置"; diff --git a/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings b/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings index 949e03b..b574f5b 100644 --- a/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings +++ b/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings @@ -14,6 +14,9 @@ /* Class = "NSMenu"; title = "ShadowsocksX-NE"; ObjectID = "Hob-KD-bx9"; */ "Hob-KD-bx9.title" = "ShadowsocksX-NE"; +/* Class = "NSMenuItem"; title = "Show Logs..."; ObjectID = "Jfy-sf-Fhl"; */ +"Jfy-sf-Fhl.title" = "显示日志..."; + /* Class = "NSMenuItem"; title = "About"; ObjectID = "LgB-6g-Gba"; */ "LgB-6g-Gba.title" = "关于";