#!/bin/bash readonly NEWS_DIR=/usr/share/parabola-laf/news readonly NEWS_STAMP=~/.local/share/parabola-laf/last_news readonly CLEANUP_MSG="These old news files are no longer needed. It is safe to delete them." readonly ROOT_WIN_ID=$(xprop -notype -root | awk '$1=="_NET_SUPPORTING_WM_CHECK:"{print $5}') readonly WM_NAME=$( xprop -notype -id $ROOT_WIN_ID | awk '$1=="_NET_WM_NAME"{print $3}') readonly TITLE="_EDITION_TITLE_" readonly BUTTONS="OK:1,Don't show this again:0" DisplayNotice() { which gxmessage > /dev/null || return gxmessage -title "$TITLE" \ -file $notice \ -buttons "$BUTTONS" \ -default "OK" \ -geometry 620x460 \ -center -wrap -ontop -sticky } Cleanup() { return # TODO: which gxmessage > /dev/null || return current_news="news-$(pacman -Si parabola-laf | awk '$1=="Version"{print $3}').txt" declare -a read_notices=( $(grep -v $current_news $NEWS_STAMP) ) (( ${#read_notices[*]} > 10 )) || return gxmessage -title "Delete read news items ?" \ -buttons "Keep them:1,Delete them:0" \ -default "Keep them" \ -geometry 620x460 \ -center -wrap -ontop -sticky \ "$CLEANUP_MSG$(printf "\n\t%s" "${read_notices[*]}")" && \ echo $current_news > $NEWS_STAMP && \ chroot $NEWS_DIR "pkexec rm ${read_notices[*]}" } # display unread news items mkdir -p $(dirname $NEWS_STAMP) ; touch $NEWS_STAMP ; cd $NEWS_DIR for notice in news-* # e.g. news-${pkgver}-${pkgrel} do [ -f $notice ] && notice_exists=1 || notice_exists=0 [ -z "$(grep $notice $NEWS_STAMP)" ] && is_unread=1 || is_unread=0 [ -z "$(echo $(cat $notice))" ] && is_blank=1 || is_blank=0 (( $notice_exists && $is_unread )) || continue ( (( $is_blank )) || DisplayNotice ) && echo "$notice" >> $NEWS_STAMP && Cleanup & done # WM-specific startup tasks case $WM_NAME in '"Openbox"') which octopi-notifier && sleep 10 && octopi-notifier & ;; '"MATE"' ) ;; esac