#!/bin/bash DONT_SUPPORT_3D="Your machine does not support 3D acceleration" if [ $LANG = es_ES.UTF-8 ]; then DONT_SUPPORT_3D="Su equipo no soporta aceleración 3D" fi # First, check if the computer # supports 3D acceleration. If not, it # it informs the user and then exits. [ 0 = $(glxinfo |grep "renderer string:" |grep -v llvmpipe | wc -c) ] && zenity \ --info --text="$DONT_SUPPORT_3D" && exit 0 # Check if compton is currently running. case "$(pgrep -u $USER compton | wc -w)" in 0) COMPTON_RUNNING=false ;; 1) COMPTON_RUNNING=true ;; esac if $COMPTON_RUNNING; then COMPTON=true DISCOMPTON=false elif ! $COMPTON_RUNNING; then COMPTON=false DISCOMPTON=true fi # The text that will be showed to the user. TEXT="Use Compton compositor if 3d acceleration available" TITLE="Choose between enabling or disabling Compton" COMPTON_ENABLED="Compton enabled" COMPTON_DISABLED="Compton disabled" INFO="Compton is already running" #Checks the languange of the system (more can be added in the future) and displays the text corresponding to the language selected. if [ $LANG = es_ES.UTF-8 ]; then TEXT="Usar el compositor Compton si el equipo soporta aceleración 3D" TITLE="Seleccionar entre habilitar o deshabilitar los efectos de Compton" COMPTON_ENABLED="Compton habilitado" COMPTON_DISABLED="Compton deshabilitado" INFO="Compton ya se encuentra en ejecución" fi # Zenity is summoned to interact with the user. # The XOR with the "exit 0" means that the script # will exit with no error if zenity is "canceled" # (user clicking on the "cancel" button, for # instance). ans=$(zenity --list --hide-header\ --title "$TITLE"\ --text "$TEXT"\ --radiolist\ --column "" --column ""\ $COMPTON "$COMPTON_ENABLED"\ $DISCOMPTON "$COMPTON_DISABLED" || exit 0) # Evaluate if compton is runnning or not, if it does, # warn the user if he/she tries to run compton again # or disable the compositor if he/she select to disable # it. If compton is not running, run and enable it if # the user selects to do so: # .-----------------. # | | # | | # | Compton running | # | | # | | # '-----------------' # | # | .-----------------. .-----------------. # |-->| User selects no |-->| Disable compton | # | '-----------------' '-----------------' # | .------------------. .-----------------. # '-->| User selects yes |->| Inform the user | # '------------------' '-----------------' # .---------------------. # | | # | | # | Compton not running | # | | # | | # '---------------------' # | # | .-----------------. .------------. # |-->| User selects no |-->| Do nothing | # | '-----------------' '------------' # | .------------------. .-----------------. # '-->| User selects yes |-->| Enable compton | # '------------------' '-----------------' if $COMPTON_RUNNING # Compton running then if [[ $ans == $COMPTON_DISABLED ]]; then touch $HOME/.config/disable-compton killall compton elif [[ $ans == $COMPTON_ENABLED ]]; then zenity --info --text="$INFO" fi else # Compton not running if [[ $ans == $COMPTON_ENABLED ]]; then rm -f $HOME/.config/disable-compton compton-launcher else exit 0 fi fi