;;; browser.el --- Web browser configuration and shortcuts -*- lexical-binding: t -*- ;; This file is not part of GNU Emacs ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program 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 General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; commentary ;;; Code: (defcustom theurgy-city "Perth" "The city used for fetching weather from wttr.in." :type 'string :group 'theurgy :group 'theurgy-weather) (defun theurgy-eww-rename-buffer () "Rename the eww buffer intelligently." (when (eq major-mode 'eww-mode) (let ((url (plist-get eww-data :url))) (cond ((string-match-p "wttr.in" url) "*weather*") (t "*eww*"))))) (setq eww-auto-rename-buffer #'theurgy-eww-rename-buffer) (defun theurgy-show-weather () "Show wttr.in in an eww buffer." (interactive) (if (get-buffer "*weather*") (switch-to-buffer "*weather*") (eww (concat "wttr.in/" theurgy-city "?0")))) (add-to-list 'display-buffer-alist '("\\*weather\\*" (display-buffer-in-side-window) (side . left) (slot . 4) (window-width . 0.15))) (provide 'browser) ;;; browser.el ends here