(elpaca embark-consult)
(elpaca emms)
(elpaca gnu-elpa-keyring-update)
-(elpaca graphql-mode)
(elpaca htmlize)
(elpaca keycast)
(elpaca kubernetes)
:repo "git://git.sv.gnu.org/emacs/elpa"
:local-repo "oauth2"
:branch "externals/oauth2"))
-(elpaca (ledger-mode
- :files (:defaults)))
(elpaca (lin
:pre-build (("emacs" "--batch" "-l" "ox-texinfo" "README.org"
"--eval" "(setq org-babel-confirm-evaluate-answer-no t)"
;;; Configure TeX
-(with-eval-after-load 'tex-mode
- (add-hook 'latex-mode-hook #'electric-pair-local-mode)
- (setq display-tex-shell-buffer-action
- '(display-buffer-no-window
- (allow-no-window . t))
- tex-start-options "--synctex=1"
- ;; latex-run-command "pdflatex"
- )
- (define-advice tex-terminate-paragraph (:around (fun &rest args) fill-and-indent)
- (fill-paragraph)
- (apply fun args)
- (indent-according-to-mode)))
-
(with-eval-after-load 'tex
(setopt TeX-modes '(tex-mode plain-tex-mode latex-mode doctex-mode))
(add-hook 'plain-TeX-mode-hook
(add-hook 'TeX-after-compilation-finished-functions #'TeX-revert-document-buffer)
(add-hook 'LaTeX-mode-hook #'LaTeX-math-mode))
-;;; Track currency exchange rates
-
-(defvar esy/eur-to-ils-rates nil)
-(defvar esy/eur-to-ils-average-rate 0)
-
-(add-to-list 'savehist-additional-variables
- 'esy/eur-to-ils-rates)
-
-(defun esy/update-eur-to-ils-rate ()
- (require 'dom)
- (let* ((time (float-time))
- (from "EUR")
- (to "ILS")
- (amount 1)
- (url (url-parse-make-urlobj "https"
- nil
- nil
- "www.x-rates.com"
- nil
- (concat "/calculator/?"
- (url-build-query-string `(("from" ,from)
- ("to" ,to)
- ("amount" ,amount)))))))
- (url-retrieve url
- (lambda (_)
- (goto-char (point-min))
- (search-forward "\n\n")
- (push (cons time
- (string-to-number (caddar (dom-by-class (libxml-parse-html-region (point))
- "ccOutputRslt"))))
- esy/eur-to-ils-rates)
- (setq esy/eur-to-ils-average-rate
- (/ (round (* (apply #'+
- (mapcar #'cdr
- (take 100
- esy/eur-to-ils-rates)))
- 10))
- 1000.0)))
- nil t)))
-
-(run-at-time t 300 #'esy/update-eur-to-ils-rate)
-
-(defun esy/plot-eur-to-ils-rates (height width)
- (require 'svg)
- (let* ((svg (svg-create width height
- :stroke "green"))
- (time (float-time))
- (frame (* 60 60 24 7))
- (data (named-let loop ((rates esy/eur-to-ils-rates)
- (acc nil)
- (min most-positive-fixnum)
- (max most-negative-fixnum))
- (if rates
- (let ((x (* (/ (+ frame (- (caar rates) time))
- frame)
- width)))
- (if (< 0 x)
- (let ((val (cdar rates)))
- (loop (cdr rates)
- (cons (cons x (cdar rates)) acc)
- (min val min)
- (max val max)))
- (list acc min max)))
- (list acc min max))))
- (points (nth 0 data))
- (min (nth 1 data))
- (max (nth 2 data))
- (normalized-points (mapcar (lambda (xy)
- (cons (car xy)
- (- height (* height
- (/ (- (cdr xy) min)
- (- max min))))))
- points)))
- (svg-polyline svg normalized-points :fill-color "none")
- (svg-image svg)))
-
-(defun esy/plot-eur-rates ()
- (interactive)
- (with-current-buffer-window "EUR to ILS" nil nil
- (insert-image (esy/plot-eur-to-ils-rates 300 500))
- (insert "\n")))
-
(with-eval-after-load 'elisp-mode
(setq elisp-flymake-byte-compile-load-path (cons "./" load-path)))