Lot of programs (such as wget, curl, pacman, ...) use environment variables to determine the proxy of a given protocol.
Environment variables can be added per user in their .bashrc or .zshrc shell profile file with something like export KEY=value. The advantage is that variables can be used in order to avoid repeating the same proxy several times.
Or /etc/environment file stores the system-wide variables initialized upon user login. Or you can use /etc/syconfig/proxy under openSUSE.
To add proxy settings one time for everyone, you can execute the following script with sudo privilege (because you need to write into a system file: /etc/environment).
Some other graphical programs (such as Chromium or Rhythmbox) ignore those environment variables and use gnome (GTK3) settings. These settings can be modified through the gnome-control-center front end and also through gsettings (see the example below).
gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host 'proxy.example.org'
gsettings set org.gnome.system.proxy.http port 8080
gsettings set org.gnome.system.proxy.ftp host 'proxy.example.org'
gsettings set org.gnome.system.proxy.ftp port 8080
gsettings set org.gnome.system.proxy.https host 'proxy.example.org'
gsettings set org.gnome.system.proxy.https port 8080