Files
sing-web/server/sysproxy_linux.go
2026-04-04 01:15:19 +08:00

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()
}