31 lines
964 B
Go
31 lines
964 B
Go
//go:build linux
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os/exec"
|
|
)
|
|
|
|
func setSystemProxy(host string, port int) error {
|
|
cmds := [][]string{
|
|
{"gsettings", "set", "org.gnome.system.proxy", "mode", "manual"},
|
|
{"gsettings", "set", "org.gnome.system.proxy.http", "host", host},
|
|
{"gsettings", "set", "org.gnome.system.proxy.http", "port", fmt.Sprintf("%d", port)},
|
|
{"gsettings", "set", "org.gnome.system.proxy.https", "host", host},
|
|
{"gsettings", "set", "org.gnome.system.proxy.https", "port", fmt.Sprintf("%d", port)},
|
|
{"gsettings", "set", "org.gnome.system.proxy.socks", "host", host},
|
|
{"gsettings", "set", "org.gnome.system.proxy.socks", "port", fmt.Sprintf("%d", port)},
|
|
}
|
|
for _, args := range cmds {
|
|
if err := exec.Command(args[0], args[1:]...).Run(); err != nil {
|
|
return fmt.Errorf("gsettings: %v", err)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func clearSystemProxy() error {
|
|
return exec.Command("gsettings", "set", "org.gnome.system.proxy", "mode", "none").Run()
|
|
}
|