অরগ-মোড ইভেন্ট দ্বারা ট্রিগারযুক্ত অ্যালার্ম (অডিও + ভিজ্যুয়াল) স্থাপনের জন্য ভাল পদ্ধতিগুলি?


35

আমি নির্দিষ্ট সময়ের সাথে (বা শুরুর সময়) সম্পর্কিত org- মোড ইভেন্টের উপর ভিত্তি করে অ্যালার্মগুলি সেট আপ করতে চাই। আদর্শভাবে এগুলি অডিও এবং ভিজ্যুয়াল হতে পারে এবং কিছুটা হলেও কাস্টমাইজড হতে সক্ষম। আমি ব্যবহার করতাম Sauron, তবে org- মোড ইভেন্টগুলি (বা ইমেল সূচনা) এর সাথে আর কাজ করার জন্য এটি পেতে পারি না। অন্যান্য ভাল পদ্ধতি কি কি?

(আমি বিশেষভাবে বিজ্ঞপ্তি ডেমনের মাধ্যমে স্ক্রিনে প্রদর্শিত না হতে আগ্রহী, তবে স্পোকডও (পাঠ্য থেকে স্পিচ) I'm আমি লিনাক্সে আছি))



@ কনস্ট্যান্টাইন - এটি আমার কাছে ভিন্ন বলে মনে হচ্ছে। আমি এটি তৈরি করার জন্য সরঞ্জামগুলির জন্য জিজ্ঞাসা করছি না, বরং ইতিমধ্যে বিদ্যমান প্রস্তুতির সমাধান। আরও, আমি আসলে ডিএডলাইনগুলির জন্য অ্যালার্মগুলিতে আগ্রহী না, বরং ইভেন্টগুলির সাথে (শুরু) বারের জন্য আগ্রহী।
ইমাকসোমেন্সার

ঠিক আছে; আমি আমার মন্তব্য সম্পাদনা করেছি। (আমি মনে করি যে আমরা উভয়ই সম্মত হই যে আপনার প্রশ্নটি আমি যার সাথে লিঙ্ক করেছি তার সাথে সম্পর্কিত))
কনস্টান্টাইন

1
সম্পর্কিত: emacs-fu.blogspot.nl/2009/11/show-pop-ups.html
-

2
আপনি যদি ফর্মেশনটি ব্যবহার করে আপনার org-এজেন্ডা ফাইলগুলি থেকে অ্যাপয়েন্টমেন্ট আমদানি করতে বিল্টিন অ্যাপটি সিস্টেম ব্যবহার করেন org-agenda-to-appt। তারপরে আপনি নিজের পছন্দমতো appt-disp-window-functionআপনাকে জানানোর জন্য কাস্টমাইজ করতে পারেন (যার মধ্যে বহিরাগত প্রোগ্রামগুলি কল করার অন্তর্ভুক্ত থাকতে পারে)।
ইকবাল আনসারি

উত্তর:


15

আমি যে সিস্টেমটি ব্যবহার করি তার সাথে আমি বেশ খুশি, যা আপনি যা চান ঠিক তা করে (আমার মনে হয়)। এর দুটি অংশ রয়েছে: একটি ইমাস অংশ যা অনুস্মারকগুলি নির্ধারণ করতে অ্যাপলেট.এল ব্যবহার করে এবং একটি ছোট শেল প্রোগ্রাম (আমি লিনাক্স ব্যবহার করছি) যা পপআপ + সাউন্ড বিজ্ঞপ্তি তৈরি করে। এখানে আমি উভয় অংশের জন্য কোড ভাগ করে নিই।

ক) ~ / .emacs.d / init.el তে কোড

(require 'appt)
(appt-activate t)

(setq appt-message-warning-time 5) ; Show notification 5 minutes before event
(setq appt-display-interval appt-message-warning-time) ; Disable multiple reminders
(setq appt-display-mode-line nil)

; Use appointment data from org-mode
(defun my-org-agenda-to-appt ()
  (interactive)
  (setq appt-time-msg-list nil)
  (org-agenda-to-appt))

; Update alarms when...
; (1) ... Starting Emacs
(my-org-agenda-to-appt)

; (2) ... Everyday at 12:05am (useful in case you keep Emacs always on)
(run-at-time "12:05am" (* 24 3600) 'my-org-agenda-to-appt)

; (3) ... When TODO.txt is saved
(add-hook 'after-save-hook
          '(lambda ()
             (if (string= (buffer-file-name) (concat (getenv "HOME") "/ideas/TODO.txt"))
                 (my-org-agenda-to-appt))))

; Display appointments as a window manager notification
(setq appt-disp-window-function 'my-appt-display)
(setq appt-delete-window-function (lambda () t))

(setq my-appt-notification-app (concat (getenv "HOME") "/bin/appt-notification"))

(defun my-appt-display (min-to-app new-time msg)
  (if (atom min-to-app)
    (start-process "my-appt-notification-app" nil my-appt-notification-app min-to-app msg)
  (dolist (i (number-sequence 0 (1- (length min-to-app))))
    (start-process "my-appt-notification-app" nil my-appt-notification-app (nth i min-to-app) (nth i msg)))))

খ) ~ / বিন / অ্যাপটি-বিজ্ঞপ্তিতে কোড

#!/bin/sh

TIME="$1"
MSG="$2"

notify-send -t 0 "<br>Appointment in $TIME minutes:<br>$MSG<br>"
play "~/bin/alarm.wav"

ভয়েস বিজ্ঞপ্তি পেতে আপনি নিম্নলিখিত লাইনটি (প্লে) প্রতিস্থাপন করতে পারেন:

espeak "Appointment in $TIME minutes: $MSG"

; (4) ... Quitting org-agenda. (advice-add 'org-agenda-quit :after #'hw-org-agenda-to-appt)
Org-

দ্রষ্টব্য: মধ্যরাতের কাছাকাছি আপডেট করা রাতের পেঁচার জন্য গুরুত্বপূর্ণ যেহেতু org-agenda-to-apptকেবল বর্তমান দিনের অ্যাপস তৈরি করে।
হলোক্রনউইভার

+1 এটি দুর্দান্ত। ভাগ করার জন্য আপনাকে ধন্যবাদ। পরিবর্তে সতর্কতা.েল ব্যবহার করতে আমি এটি কিছুটা পরিবর্তন করেছি । একটি প্রশ্ন, যদিও: প্রতিটি ইভেন্টের জন্য কাস্টম সতর্কতার সময় সেট করতে org "APPT_WARNTIME" সম্পত্তিটির সাথে কাজ করার ভাগ্য কি কখনও পাওয়া যায়? আমি এটি কাজ করতে পারে বলে মনে হচ্ছে না।
জোসেফ আর

11

আপনি Emacs> 24 এ বিজ্ঞপ্তি ব্যবহার করতে পারেন :

(require 'notifications)

(notifications-notify :title "Achtung!"
                      :body (format "You have an appointment in %d minutes" 10)
                      :app-name "Emacs: Org"
                      :sound-name "alarm-clock-elapsed")

13
এটি খুব দরকারী বলে মনে হচ্ছে। আপনি কীভাবে এটির সাথে সংহত করতে জানেন org-mode?
এরিকস্টোকস

2

আমি এটাই শেষ করেছিলাম:

;;; org-to-appt

;; based on http://emacs-fu.blogspot.nl/2009/11/showing-pop-ups.html
(defun talky-popup (title msg &optional icon sound)  
  "Show a popup if we're on X, or echo it otherwise; TITLE is the title
of the message, MSG is the context. Optionally, you can provide an ICON and
a sound to be played"

  (interactive)
  ;;verbal warning



  (shell-command
   ;;  (concat "espeak -v mb-en1 -k5 -s125 " "'" title " " msg "'" " --stdout | paplay") ;; use local espeak
   (concat "echo " "'" title "'" " " "'" msg "'" " |text-to-speech en-gb")  ;; use remote Google voices
    ;; text-to-speech is from https://github.com/taylorchu/speech-to-text-text-to-speech
   )
  (if (eq window-system 'x)
    (shell-command (concat "notify-send -u critical -t 1800000  " 

                     (if icon (concat "-i " icon) "")
                     " '" title "' '" msg "'"))
    ;; text only version

    (message (concat title ": " msg))))

;; the appointment notification facility
(setq
  appt-message-warning-time 15 ;; warn 15 min in advance

  appt-display-mode-line t     ;; show in the modeline
  appt-display-format 'window) ;; use our func
(appt-activate 1)              ;; active appt (appointment notification)
(display-time)                 ;; time display is required for this...

 ;; update appt each time agenda opened

(add-hook 'org-finalize-agenda-hook 'org-agenda-to-appt)

;; our little façade-function for talky-popup
 (defun talky-appt-display (min-to-app new-time msg)
    (talky-popup (format "In %s minute(s):" min-to-app) msg 
  ;;    "/usr/share/icons/gnome/32x32/status/appointment-soon.png"   ;; optional icon

  ;;    "/usr/share/sounds/ubuntu/stereo/phone-incoming-call.ogg"    ;; optional sound

        ))
  (setq appt-disp-window-function (function talky-appt-display))

এটি স্কারামাউচের সেটআপের সাথে আলাদা নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.