A Golang-based Windows application to switch proxy settings
Go to file
2024-09-01 15:02:19 +02:00
.github/workflows bugfix: switching to windows-specfic asset_content_type for .exe 2024-09-01 15:02:19 +02:00
assets moved icons to assets 2024-08-30 18:11:21 +02:00
cmd prompting for command variants in config 2024-08-31 21:13:46 +02:00
proxy cleaner return after nil error 2024-08-31 21:11:54 +02:00
util prompting for command variants in config 2024-08-31 21:13:46 +02:00
.gitignore Initial commit 2024-08-29 22:54:40 +02:00
configs.json bugfix: non-string value in powershell command 2024-08-31 17:47:52 +02:00
go.mod explicitly require golang sys package for registry 2024-09-01 12:48:31 +02:00
go.sum reading and setting system proxy 2024-08-31 18:26:24 +02:00
LICENSE Initial commit 2024-08-29 22:54:40 +02:00
main.go initialize cobra-cli 2024-08-29 23:06:10 +02:00
README.md bugfix: replace placeholders in new README 2024-08-31 21:54:52 +02:00
run.ps1 hide powershell on toggle commands 2024-08-31 19:15:55 +02:00

ProxySwitcher

ProxySwitcher is a Golang-based Windows application that allows you to easily switch internet proxy settings for various programs including the system settings. The application provides a command-line interface (CLI) through the usage of a library called cobra. This CLI then provides commands to set, unset, and save proxy configurations, as well as a system tray icon for quick access to settings and toggling proxies.

Features

  • Switch internet proxy settings for various applications and the system.
  • Manage configurations through a configs.json file.
  • Command-line interface with commands like set, unset, and save.
  • System tray icon with options to enable and disable proxies, open settings, save configurations, or exit the application.

Installation

  1. Clone the repository:

    git clone https://github.com/Baipyrus/ProxySwitcher.git
    

Usage

CLI Commands

  • set: Enable all saved proxies including system proxy.

    go run . set
    
  • unset: Disable all saved proxies including system proxy.

    go run . unset
    
  • save: Saves a new configuration to set a proxy for.

    go run . save
    

Configuration

The programs for which the proxy settings should be managed are stored in a configs.json file, which can be modified directly or through the save command. For examples, please take a look at the default config or at the following block:

[
    {
        "name": "test1", // Default CMD Name
        "cmd": "echo 'Hello, World!'", // Optional
        "set": [
            {
                "args": [
                    "http"
                ], // Optionally empty
                "type": "text" // Default; Optional
                "equator": " " // Default; Optional
            }, // Writes "echo 'Hello, World!' http ", followed
               // by your system proxy, to a powershell process.
            {
                "args": [
                    "https"
                ], // Optionally empty
                "equator": "=" // Optional
            }  // Writes "echo 'Hello, World!' https=", followed
               // by your system proxy, to a powershell process.
        ], // Optional
        "unset": []
        // "unset" has the contents as "set" above
        // and it is also optional.
    }, {
        "name": "test2", // Default CMD Name
        "cmd": "echo '$PRSW_ARG $PRSW_ARG'", // Optional
        "set": [
            {
                "args": [
                    "https"
                ], // Optionally empty
                "type": "variable" // Optional
            }  // Writes "echo 'https <Your System Proxy>'"
               // to a powershell process.
        ] // Optional
    }
]

System Tray Icon

Right-click the system tray icon to:

  • Properties: View and modify system proxy settings.
  • Enable Proxy: Enable all saved proxies including system proxy.
  • Disable Proxy: Disable all saved proxies including system proxy.
  • Save New Config: Open a prompt to save a new proxy configuration.
  • Exit: Close the application.