#!/bin/bash case $LANG in pl*) TITLE="Edytor autostartu XDG" DESC="Wybierz programy/usługi do autostartu" ENABLE="wł" FILE="Plik" NAME="Nazwa" COMMENT="Komentarz" NO_DESC="brak opisu" ;; *) TITLE="XDG Autostart Editor" DESC="Choose apps/services to autostart" ENABLE="run" FILE="File" NAME="Name" COMMENT="Comment" NO_DESC="no description" ;; esac config_dir=${XDG_CONFIG_HOME:-$HOME/.config} # Copy only new files from /etc/xdg/autostart/ mkdir -p $config_dir/autostart rsync -aq --ignore-existing /etc/xdg/autostart/ $config_dir/autostart/ # check if line starting with Hidden exist, if not add Hidden=false for f in $config_dir/autostart/*.desktop; do grep -q "Hidden=" $f && echo "yes" || echo "Hidden=false" >> $f done results=$(mktemp --tmpdir autostart.XXXXXXXXXX) for f in $config_dir/autostart/*.desktop; do [ "$(grep -m 1 -e '^[[:blank:]]*Hidden' $f | cut -d = -f 2)" == "true" ] && echo false || echo true echo $f grep -m 1 -e '^[[:blank:]]*Name=' $f | cut -d = -f 2 #grep -m 1 -e '^[[:blank:]]*Exec' $f | cut -d = -f 2 comment=$(grep -m 1 -e '^[[:blank:]]*Comment=' $f | cut -d = -f 2) [ ! -z "$comment" ] && echo $comment || echo "$NO_DESC" done | yad --width=400 --height=400 --title="$TITLE" --image="gtk-execute" \ --text="$DESC" --list --print-all --bool-fmt="t" \ --checklist --column="$ENABLE:CHK" --column="$FILE:HD" --column="$NAME" --column="$COMMENT:HD" --tooltip-column=4 > $results if [[ ${PIPESTATUS[1]} -eq 0 ]]; then i=0 cat $results | while read line; do eval $(echo $line | awk -F'|' '{printf "export HIDDEN=\"%s\" FILENAME=\"%s\"", $1, $2 }') [ $HIDDEN == "true" ] && HIDDEN="false" || HIDDEN="true" echo "Hidden=$HIDDEN, File: $FILENAME" sed -i'.temp' -e 's/^Hidden.*$/Hidden='"$HIDDEN"'/g' $FILENAME rm $FILENAME.temp ((i++)) done unset NAME HIDDEN FILENAME comment fi rm -f $results exit 0