;;; packages.el --- mastodon layer packages file for Spacemacs. ;; ;; Copyright (c) 2012-2022 Sylvain Benner & Contributors ;; ;; Author: TakeV ;; URL: https://github.com/syl20bnr/spacemacs ;; ;; 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: ;; See the Spacemacs documentation and FAQs for instructions on how to implement ;; a new layer: ;; ;; SPC h SPC layers RET ;; ;; ;; Briefly, each package to be installed or configured by this layer should be ;; added to `mastodon-packages'. Then, for each package PACKAGE: ;; ;; - If PACKAGE is not referenced by any other Spacemacs layer, define a ;; function `mastodon/init-PACKAGE' to load and initialize the package. ;; - Otherwise, PACKAGE is already referenced by another Spacemacs layer, so ;; define the functions `mastodon/pre-init-PACKAGE' and/or ;; `mastodon/post-init-PACKAGE' to customize the package as it is loaded. ;;; Code: (defconst mastodon-packages '(mastodon (discover :location (recipe :fetcher github :repo "mickeynp/discover.el") :toggle mastodon-enable-discover)) "The list of Lisp packages required by the mastodon layer. Each entry is either: 1. A symbol, which is interpreted as a package to be installed, or 2. A list of the form (PACKAGE KEYS...), where PACKAGE is the name of the package to be installed or loaded, and KEYS are any number of keyword-value-pairs. The following keys are accepted: - :excluded (t or nil): Prevent the package from being loaded if value is non-nil - :location: Specify a custom installation location. The following values are legal: - The symbol `elpa' (default) means PACKAGE will be installed using the Emacs package manager. - The symbol `local' directs Spacemacs to load the file at `./local/PACKAGE/PACKAGE.el' - A list beginning with the symbol `recipe' is a melpa recipe. See: https://github.com/milkypostman/melpa#recipe-format") (defun mastodon/init-mastodon () (use-package mastodon :defer t :ensure t :init (progn (dolist (prefix `(("mg" . "Go to"))) (spacemacs/declare-prefix-for-mode 'mastodon-mode (car prefix) (cdr prefix))) (spacemacs/set-leader-keys "awm" 'mastodon) (spacemacs/set-leader-keys-for-major-mode 'mastodon-mode "gl" 'mastodon-tl--get-local-timeline "gp" 'mastodon-profile--my-profile "gn" 'mastodon-notifications-get "gf" 'mastodon-tl--get-federated-timeline "gh" 'mastodon-tl--get-home-timeline "f" 'mastodon-toot--toggle-favourite "b" 'mastodon-toot--toggle-boost "n" 'mastodon-tl--goto-next-item "t" 'mastodon-toot "r" 'mastodon-toot--reply) (spacemacs/declare-prefix "awm" "mastodon")))) (defun mastodon/init-discover () (use-package discover :defer t :init (progn (require 'mastodon-discover) (with-eval-after-load 'mastodon (mastodon-discover)))))