104 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/bash
 | 
						|
########################################################
 | 
						|
######################################################## 
 | 
						|
# Wire-G App for simple management a Wireguard TUNNEL ##
 | 
						|
# Author: Désiré Werner Menrath                       ##
 | 
						|
# Email: polunga40@unity-mail.de                      ##
 | 
						|
# Translate German to English with LibreTranslate     ##
 | 
						|
# Translatefiles edit with Poedit                     ##
 | 
						|
# Use without warranty!                               ##
 | 
						|
######################################################## 
 | 
						|
########################################################
 | 
						|
 | 
						|
Encoding=UTF-8
 | 
						|
 | 
						|
# i18n - Internationalization - Internationalisierung
 | 
						|
 | 
						|
export TEXTDOMAIN=wire-g
 | 
						|
export TEXTDOMAINDIR="/usr/share/locale"
 | 
						|
 | 
						|
############################################################################################################ 
 | 
						|
############################################################################################################ 
 | 
						|
 | 
						|
# wg_workdir Arbeitsverzeichnis wg
 | 
						|
WG_WDIR="/home/$USER/.config/wg_nmcli/"
 | 
						|
# Pfad wg Icons
 | 
						|
WG_PIC="/home/$USER/.icons/"
 | 
						|
IFS=$'\n' WG_START=( $(cat ${WG_WDIR}onstart.txt) )
 | 
						|
nmcli connection up "$WG_START" 
 | 
						|
nmcli connection show --active | grep -iPo "(.*)(wireguard)" | sed 's/  .*//' &> ${WG_WDIR}onstart.txt
 | 
						|
ACTIVE=$(nmcli connection show --active | grep -iPo "(.*)(wireguard)" | sed 's/  .*//')
 | 
						|
 | 
						|
    case $LANG in  
 | 
						|
    
 | 
						|
        de_DE.UTF-8)  OPEN=öffnen ;;
 | 
						|
         
 | 
						|
                  *)  OPEN=open ;;
 | 
						|
    esac         
 | 
						|
        yad --image-on-top --image=${WG_PIC}wg-vpn-info.png \
 | 
						|
            --undecorated --borders=8 --skip-taskbar \
 | 
						|
            --text-align=center --no-buttons --auto-close \
 | 
						|
            --timeout 1 \
 | 
						|
            --text=$"<span color='#0fad0a'><b>"$ACTIVE"</b></span>   <span><b>powered</b></span>"
 | 
						|
            
 | 
						|
    # autoconnect wird hier abgeschalten damit auch neu importierte nach einem Systemneustart nicht aktiv sind
 | 
						|
    IFS=$'\n' lines=( $(cat ${WG_WDIR}tunnel.txt) )
 | 
						|
    nmcli con mod "$lines" connection.autoconnect no 
 | 
						|
    
 | 
						|
    if [ -d /home/$USER/.config/autostart ] # for GNOME, XFCE, KDE, Budgie
 | 
						|
        then 
 | 
						|
            if grep 'TRUE TRUE\|TRUE FALSE' ${WG_WDIR}about.txt 
 | 
						|
                then 
 | 
						|
                    cp /home/"$USER"/.local/share/wg_nmcli/wgonstart.desktop /home/"$USER"/.config/autostart/
 | 
						|
            else 
 | 
						|
                    rm /home/"$USER"/.config/autostart/wgonstart.desktop
 | 
						|
            fi
 | 
						|
 | 
						|
    elif [ -d /home/$USER/.config/lxsession/Lubuntu/autostart ] # for LXDE
 | 
						|
        then
 | 
						|
            if grep 'TRUE TRUE\|TRUE FALSE' ${WG_WDIR}about.txt
 | 
						|
                then
 | 
						|
                    cp /home/"$USER"/.local/share/wg_nmcli/wgonstart.desktop  /home/$USER/.config/lxsession/Lubuntu/autostart/ 
 | 
						|
            else
 | 
						|
                    rm /home/$USER/.config/lxsession/Lubuntu/autostart/wgonstart.desktop
 | 
						|
            fi
 | 
						|
    fi
 | 
						|
 | 
						|
    yad --notification \
 | 
						|
        --image="${WG_PIC}wg-vpn.png" \
 | 
						|
        --icon-size=32 --no-middle \
 | 
						|
        --text=$"$ACTIVE activ" \
 | 
						|
        --menu="Wire-G $OPEN!/sbin/wire_g
 | 
						|
        |$ACTIVE stop!/sbin/wg_stop" \
 | 
						|
        --command="menu" &
 | 
						|
 | 
						|
# Schreib die pid von Notify in 
 | 
						|
    pid=$(ps aux | grep yad | grep -v grep | awk '{print $2}')
 | 
						|
    echo $pid > ${WG_WDIR}for-kill_pid.txt
 | 
						|
    IFS=$'\n' lines=( $(cat ${WG_WDIR}for-kill_pid.txt) ) 
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |