aboutsummaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/init/ycp-time.el
diff options
context:
space:
mode:
authorYuchen Pei <id@ypei.org>2023-06-17 17:20:29 +1000
committerYuchen Pei <id@ypei.org>2023-06-17 17:20:29 +1000
commit093ffa5fbf7143f4668bb0a3dc9659a5cc836e12 (patch)
tree1ed4e14b2a43b8e338f4ad6a04d969b99b9239be /emacs/.emacs.d/init/ycp-time.el
parentabc686827ae38ee715d9eed1c5c29161c74127e6 (diff)
Moving things one level deeper
To ease gnu stow usage. Now we can do stow -t ~ emacs
Diffstat (limited to 'emacs/.emacs.d/init/ycp-time.el')
-rw-r--r--emacs/.emacs.d/init/ycp-time.el141
1 files changed, 141 insertions, 0 deletions
diff --git a/emacs/.emacs.d/init/ycp-time.el b/emacs/.emacs.d/init/ycp-time.el
new file mode 100644
index 0000000..bc43764
--- /dev/null
+++ b/emacs/.emacs.d/init/ycp-time.el
@@ -0,0 +1,141 @@
+;;; ycp-time.el -- My config for time related -*- lexical-binding: t -*-
+
+;; Copyright (C) 2023 Free Software Foundation.
+
+;; Author: Yuchen Pei <id@ypei.org>
+;; Protesilaos Stavrou <info@protesilaos.com>
+;; Maintainer: Yuchen Pei <id@ypei.org>
+;; Package-Requires: ((emacs "28.2"))
+
+;; This file is part of dotfiles.
+
+;; dotfiles is free software: you can redistribute it and/or modify it under
+;; the terms of the GNU Affero General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; dotfiles is distributed in the hope that it will be useful, but WITHOUT
+;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
+;; Public License for more details.
+
+;; You should have received a copy of the GNU Affero General Public
+;; License along with dotfiles. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; My config for time related. Covers date, time, calendar, holidays etc.
+
+;;; Code:
+
+
+
+(my-configure
+ (my-setq-from-local calendar-latitude calendar-longitude calendar-location-name)
+ (setq calendar-mark-holidays-flag t)
+
+;;;;; World clock (M-x world-clock)
+ (setq display-time-world-list t)
+ (setq zoneinfo-style-world-list ; timedatectl list-timezones
+ '(("Pacific/Honolulu" "Honolulu")
+ ("America/Los_Angeles" "Los Angeles")
+ ("America/Chicago" "Chicago")
+ ("America/New_York" "Boston")
+ ("UTC" "UTC")
+ ("Europe/London" "Coventry")
+ ("Europe/Berlin" "Berlin")
+ ("Africa/Khartoum" "Khartoum")
+ ("Europe/Helsinki" "Helsinki")
+ ("Asia/Dubai" "Dubai")
+ ("Asia/Yekaterinburg" "Yekaterinburg")
+ ("Asia/Calcutta" "Delhi")
+ ("Asia/Shanghai" "Shanghai")
+ ("Pacific/Auckland" "Auckland")))
+
+ ;; All of the following variables are for Emacs 28
+ (require 'time)
+ (setq world-clock-list t)
+ (setq world-clock-time-format "%R %z %A %d %B")
+ (setq world-clock-buffer-name "*world-clock*") ; Placement handled by `display-buffer-alist'
+ (setq world-clock-timer-enable t)
+ (setq world-clock-timer-second 60)
+
+ ;; Holidays
+ (setq holiday-other-holidays
+ '(
+ (holiday-float 4 1 3 "Sechseläuten (Burning of Böögg)")
+ (holiday-fixed 3 8 "Women's Day")
+ (holiday-chinese 4 8 "Buddha's birthday (East Asia)")
+ (holiday-fixed 4 26 "World Intellectual Pooperty Day")
+ (holiday-fixed 4 30 "Walpurgis Night")
+ (holiday-fixed 5 1 "May Day")
+ (holiday-fixed 5 12 "International Nurses Day")
+ (holiday-fixed 6 4 "International Nothing Happened On This Day")
+ (holiday-float 6 6 1 "Midsommar" 20)
+ (holiday-float 9 6 3 "Software Freedom Day")
+ (holiday-islamic 10 1 "Hari Raya Puasa")
+ (holiday-fixed 12 13 "St Lucia Day")
+ (holiday-easter-etc -47 "Fat Tuesday / Fettisdagen / Pancake Tuesday / Mardi Gras")
+ (holiday-easter-etc 39 "Ascension Day")
+ (holiday-easter-etc 60 "Corpus Christi")
+ )
+ calendar-chinese-all-holidays-flag t
+ holiday-local-holidays
+ '(
+ (holiday-fixed 1 26 "Australia Day (Vic holiday)")
+ (holiday-float 3 1 2 "Labour Day (Vic holiday)")
+ (holiday-fixed 4 25 "Anzac Day (Vic holiday)")
+ (holiday-float 6 1 2 "Monarch's Birthday (Vic oliday)")
+ (holiday-fixed 6 30 "End of financial year")
+ (holiday-float 9 5 -1 "(Possibly) Friday before the AFL Grand Final (Vic holiday)")
+ (holiday-float 10 5 1 "(Possibly) Friday before the AFL Grand Final (Vic holiday)")
+ (holiday-float 11 2 1 "Melbourne Cup (Vic holiday)")
+ )
+ holiday-general-holidays
+ '(
+ (holiday-fixed 1 1 "New Year's Day")
+ (holiday-fixed 2 14 "Valentine's Day")
+ (holiday-fixed 3 17 "St. Patrick's Day")
+ (holiday-fixed 4 1 "April Fools' Day")
+ (holiday-float 5 0 2 "Mother's Day")
+ (holiday-float 6 0 3 "Father's Day")
+ (holiday-fixed 7 4 "US Independence Day")
+ (holiday-fixed 10 31 "Halloween")
+ (holiday-float 11 4 4 "Thanksgiving")
+ )
+ holiday-bahai-holidays
+ '()
+ holiday-hebrew-holidays
+ '()
+ )
+ (setq calendar-holidays
+ (append holiday-general-holidays holiday-local-holidays
+ holiday-other-holidays holiday-christian-holidays
+ holiday-hebrew-holidays holiday-islamic-holidays
+ holiday-bahai-holidays holiday-oriental-holidays
+ holiday-solar-holidays
+ (my-get-from-local my-holiday-personal-holidays)))
+ (put 'list-timers 'disabled nil)
+ )
+
+(my-package appt
+ (:delay 20)
+ (setq appt-message-warning-time 5)
+ (setq appt-display-duration 30)
+ (setq appt-display-interval 5)
+ ;; dbus notification of appt
+ (require 'my-time)
+ (setq appt-disp-window-function #'my-app-display-window)
+ ;; with org-agenda-to-appt
+ (require 'org-clock)
+ (require 'my-utils)
+ (when (boundp 'appt-to-agenda-timer)
+ (cancel-timer appt-to-agenda-timer))
+ (when (my-server-p)
+ (setq appt-to-agenda-timer
+ (run-at-time
+ "07:00am"
+ 86400 #'org-agenda-to-appt))))
+
+(provide 'ycp-time)
+;;; ycp-time.el ends here