diff options
Diffstat (limited to 'skel/.config/autostart/autostart.sh')
-rwxr-xr-x | skel/.config/autostart/autostart.sh | 59 |
1 files changed, 51 insertions, 8 deletions
diff --git a/skel/.config/autostart/autostart.sh b/skel/.config/autostart/autostart.sh index 3ac5a24..91be332 100755 --- a/skel/.config/autostart/autostart.sh +++ b/skel/.config/autostart/autostart.sh @@ -1,13 +1,56 @@ #!/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}') -for notice in ~/welcome.txt ~/news.txt -do [ -f $notice ] && gxmessage -title "_EDITION_TITLE_" \ - -file $notice \ - -buttons "OK:1,Don't show this again:0" \ - -default "OK" \ - -geometry 620x460 \ - -center -wrap -ontop -sticky && rm $notice & + +DisplayNotice() +{ + gxmessage -title "_EDITION_TITLE_" \ + -file $notice \ + -buttons "OK:1,Don't show this again:0" \ + -default "OK" \ + -geometry 620x460 \ + -center -wrap -ontop -sticky +} + +Cleanup() +{ + return # TODO: + + 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 -~/.config/autostart/autostart-lxde.sh & +# WM-specific startup tasks +case "$WM_NAME" in + '"LXDE"') which octopi-notifier && sleep 10 && octopi-notifier & ;; + '"MATE"') ;; +esac |