You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
2.8 KiB
116 lines
2.8 KiB
#!/bin/sh
|
|
|
|
##
|
|
# various functions and aliases that make gcal more convinient
|
|
#
|
|
# Author: Georg Hopp <ghopp@bigpoint.net>
|
|
# Date: Tue Apr 17 17:19:56 CEST 2012
|
|
# Version: 1.0.0
|
|
#
|
|
|
|
alias gcal='LC_MESSAGES=de_DE.UTF-8 /usr/bin/gcal -K -s Monday'
|
|
alias hollidays='gcal -qde_hh -n'
|
|
alias dates='gcal -c'
|
|
alias mdates='gcal -cm'
|
|
alias tcomingf='tcoming | sed '\''1!d'\'
|
|
alias ttomorrowf='ttomorrow | sed '\''1!d'\'
|
|
|
|
function terms() {
|
|
_terms "all" 1 "$@"
|
|
}
|
|
|
|
function tcoming() {
|
|
_terms "coming" 1
|
|
}
|
|
|
|
function tpast() {
|
|
_terms "past" 1
|
|
}
|
|
|
|
function ttomorrow() {
|
|
_terms "all" 0 -ct
|
|
}
|
|
|
|
function _terms() {
|
|
local modifier=${1:-all}
|
|
local color=${2:-0}
|
|
local current_time=`date +%H:%M`
|
|
shift 2
|
|
|
|
#dates "$@" | sed '1,/^Fixed date/d; /^$/d; s/[^:]*: //'
|
|
dates "$@" | awk -v ctime="${current_time}" -v mod="${modifier}" \
|
|
-v col=${color} -v format=${DATES_FORMAT} '
|
|
BEGIN {
|
|
chour = ctime; gsub(/:.*/, "", chour);
|
|
cminute = ctime; gsub(/.*:/, "", cminute);
|
|
ctime = chour * 60 + cminute
|
|
}
|
|
|
|
NR == 1, /^Fixed date/ {next}
|
|
/^$/ {next}
|
|
|
|
{
|
|
gsub(/^[^:]*: /, "");
|
|
FS=" ";
|
|
hour=$1; gsub(/:.*/, "", hour);
|
|
minute=$1; gsub(/.*:/, "", minute);
|
|
time = hour * 60 + minute
|
|
|
|
color=""
|
|
if (format == "i3bar") {
|
|
if (col != 0 && time != 0 && time-ctime <= 15)
|
|
color="\"color\":\"#00FF00\",";
|
|
if (col != 0 && time != 0 && time-ctime <= 5)
|
|
color="\"color\":\"#FFFF00\",";
|
|
if (col != 0 && time != 0 && time-ctime <= 0)
|
|
color="\"color\":\"#FF0000\",";
|
|
}
|
|
else {
|
|
if (col != 0 && time != 0 && time-ctime <= 15)
|
|
color="\033[38;5;82m";
|
|
if (col != 0 && time != 0 && time-ctime <= 5)
|
|
color="\033[38;5;190m";
|
|
if (col != 0 && time != 0 && time-ctime <= 0)
|
|
color="\033[38;5;124m";
|
|
}
|
|
|
|
if ((mod == "all") ||
|
|
(mod == "coming" && (time+5 >= ctime || time == 0)) ||
|
|
(mod == "past" && (time < ctime || time == 0))) {
|
|
|
|
gsub(/\\/, "", $0);
|
|
if (format == "i3bar") {
|
|
gsub(/"/, "\\\"", $0);
|
|
out = color "\"full_text\":\"" $0 "\""
|
|
}
|
|
else {
|
|
out = color $0 "\033[00m"
|
|
}
|
|
print out
|
|
}
|
|
}
|
|
|
|
END {
|
|
if ("" == out) {
|
|
if (format == "i3bar") {
|
|
print "\"full_text\":\"none\""
|
|
}
|
|
else {
|
|
print "none"
|
|
}
|
|
}
|
|
}'
|
|
}
|
|
|
|
test "X$(basename -- "$0")" = "Xgcal" && gcal "$@"
|
|
test "X$(basename -- "$0")" = "Xhollidays" && hollidays "$@"
|
|
test "X$(basename -- "$0")" = "Xdates" && dates "$@"
|
|
test "X$(basename -- "$0")" = "Xmdates" && mdates "$@"
|
|
test "X$(basename -- "$0")" = "Xtcomingf" && tcomingf "$@"
|
|
test "X$(basename -- "$0")" = "Xttomorrowf" && ttomorrowf "$@"
|
|
test "X$(basename -- "$0")" = "Xtcoming" && tcoming "$@"
|
|
test "X$(basename -- "$0")" = "Xtpast" && tpast "$@"
|
|
test "X$(basename -- "$0")" = "Xttomorrow" && ttomorrow "$@"
|
|
test "X$(basename -- "$0")" = "Xterms" && terms "$@"
|
|
|
|
# vim: set ft=sh ts=4 sw=4:
|