Skip to content

lemonhall/SshProxySwitcher

Repository files navigation

1、参考资料 http://footle.org/WeatherBar/

================================

2、缘起 我最近翻的时候,都用是ssh,所以需要设置socks代理,本来脚本也就一句话的事情;

如果不用命令行,就得点击到网络设置,选择WIFI,点击代理设置,勾选socks代理,点击确定,然后点击应用;

总共是,一次右键,一次左键,一次左键,一次左键,一次左键,一次左键;

总共:6次点击,相当烦躁

================================

3、脚本版 https://richardkmiller.com/925/script-to-enabledisable-socks-proxy-on-mac-os-x

脚本版,其实很简单

================================

4、做成menu bar 版本

参考了:http://footle.org/WeatherBar/

================================

5、代码

// // AppDelegate.swift // SshProxySwitcher // // Created by Hall Lemon on 2016/9/24. // Copyright © 2016年 Hall Lemon. All rights reserved. //

import Cocoa import Foundation

@NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate {

@IBOutlet weak var statusMenu: NSMenu!
let statusItem = NSStatusBar.system().statusItem(withLength: NSVariableStatusItemLength)

//连接代理
@IBAction func connectClicked(_ sender: NSMenuItem) {
    let task = Process();
        task.launchPath = "/usr/sbin/networksetup"
        task.arguments = ["-setsocksfirewallproxystate","Wi-Fi","on"]
        task.launch()
}

//断开代理
@IBAction func disconnectClicked(_ sender: NSMenuItem) {
    let task = Process();
        task.launchPath = "/usr/sbin/networksetup"
        task.arguments = ["-setsocksfirewallproxystate","Wi-Fi","off"]
        task.launch()
}

//退出
@IBAction func quitClicked(_ sender: NSMenuItem) {
    NSApplication.shared().terminate(self)
}

//程序初始化
func applicationDidFinishLaunching(_ aNotification: Notification) {
    // Insert code here to initialize your application
    let icon = NSImage(named: NSImageNameQuickLookTemplate)
    icon?.isTemplate = true // best for dark mode
    statusItem.image = icon
    statusItem.menu = statusMenu
}

func applicationWillTerminate(_ aNotification: Notification) {
    // Insert code here to tear down your application
}

}

================================

6、不足 因为是用了Process这个东西,貌似没有root权限,所以每次更改还需要输入密码

略麻烦,之后看看能不能解决掉吧;

其实也可以把链接ssh服务器,以及设置端口号的东西加入进来,我现在还是用的一个脚本

不够美观,也没有可以设置的界面

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages