;;; packages.el --- chicken-dotfiles layer packages file for Spacemacs. ;; ;; Copyright (c) 2012-2017 Sylvain Benner & Contributors ;; ;; Author: Eiyeron ;; URL: https://github.com/syl20bnr/spacemacs ;; ;; This file is not part of GNU Emacs. ;; ;;; License: GPLv3 ;;; 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 `chicken-dotfiles-packages'. Then, for each package PACKAGE: ;; ;; - If PACKAGE is not referenced by any other Spacemacs layer, define a ;; function `chicken-dotfiles/init-PACKAGE' to load and initialize the package. ;; - Otherwise, PACKAGE is already referenced by another Spacemacs layer, so ;; define the functions `chicken-dotfiles/pre-init-PACKAGE' and/or ;; `chicken-dotfiles/post-init-PACKAGE' to customize the package as it is loaded. ;;; Code: (defconst chicken-dotfiles-packages '( org org-agenda org-bullets org-brain all-the-icons modern-cpp-font-lock ) "The list of Lisp packages required by the chicken-dotfiles 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 chicken-dotfiles/init-org-brain() (use-package org-brain :defer t :init (setq org-brain-path "D:/Notes/Brain") :config (setq org-id-locations-file "~/.emacs.d/.org-id-locations") (evil-set-initial-state 'org-brain-visualize-mode 'emacs) ;; See https://github.com/Kungsgeten/org-brain#all-the-icons (defun org-brain-insert-resource-icon (link) "Insert an icon, based on content of org-mode LINK." (insert (format "%s " (cond ;; File extensions ((string-suffix-p ".pdf" link) (all-the-icons-octicon "file-pdf")) ((string-match ".cpp" link) (all-the-icons-alltheicon "cplusplus")) ((string-match ".h" link) (all-the-icons-alltheicon "cplusplus-line")) ((string-match ".hpp" link) (all-the-icons-alltheicon "cplusplus-line")) ;; URL ((string-prefix-p "http" link) (cond ((string-match "wikipedia\\.org" link) (all-the-icons-faicon "wikipedia-w")) ((string-match "github\\.com" link) (all-the-icons-octicon "mark-github")) ((string-match "vimeo\\.com" link) (all-the-icons-faicon "vimeo")) ((string-match "youtube\\.com" link) (all-the-icons-faicon "youtube")) ((string-match "bitbucket\\.org" link) (all-the-icons-faicon "bitbucket")) ((string-match "stackoverflow\\.com" link) (all-the-icons-faicon "stack-overflow")) (t (all-the-icons-faicon "globe")))) ((string-prefix-p "brain:" link) (all-the-icons-fileicon "brain")) (t (all-the-icons-icon-for-file link)))))) (add-hook 'org-brain-after-resource-button-functions #'org-brain-insert-resource-icon) )) (defun chicken-dotfiles/init-modern-cpp-font-lock() (add-hook 'c++-mode-hook #'modern-c++-font-lock-mode)) (defun chicken-dotfiles/post-init-org-bullets() (use-package org-bullets :defer t :init (setq org-bullets-bullet-list '("◼")) ) ) (defun chicken-dotfiles/post-init-org-agenda() (use-package org-agenda :defer t :init (setq org-agenda-to-appt t) (setq org-agenda-include-diary t) (setq org-agenda-files (list "C:/Notes/Agenda/birthdays.org" ;; GTD "C:/Notes/inbox.org" "c:/Notes/inbox_work.org" "C:/Notes/gtd.org" "C:/Notes/gtd_work.org" "C:/Notes/tickler_work.org")) )) (defun chicken-dotfiles/post-init-org() (use-package org :defer t :init (setq org-cycle-level-faces nil) (setq org-modules '(org-bbdb org-bibtex org-docview org-gnus org-info org-irc org-mhe org-mouse org-rmail org-w3m org-drill)) (setq org-todo-keywords '((sequence "TODO" "WAITING" "IN PROGRESS" "|" "DONE" "CANCELLED"))) ; GTD inspired by https://emacs.cafe/emacs/orgmode/gtd/2017/06/30/orgmode-gtd.html (setq org-capture-templates '(("t" "Todo [inbox]" entry (file+headline "C:/Notes/inbox.org" "Tasks") "* TODO %i%?") ("T" "Todo [tickler]" entry (file+headline "C:/Notes/tickler.org" "Tasks") "* %i%? \n %U") ;; Media ("A" "Artist" entry (file+headline "C:/Notes/inbox.org" "Music") "* TODO %i%? \n %U") ("S" "Series" entry (file+headline "C:/Notes/inbox.org" "Series") "* TODO %i%? \n %U") ;; Work ("W" "Work [inbox]" entry (file+headline "C:/Notes/inbox_work.org" "Tasks") "* TODO %i%?") )) (setq org-directory "C:/Notes") (setq org-default-notes-file "C:/Notes/inbox.org" ) (setq org-refile-targets '(("C:/Notes/gtd.org" :maxlevel . 3) ("C:/Notes/gtd_work.org" :maxlevel . 3) ("C:/Notes/backlog.org" :level . 2) )) (defun wild-git-url(path) (shell-command (concat "start " (concat "https://github.com/WildSheepStudio/Wild/commit/" path)))) ;; TODO Replace with org-link-abbrev-alist or attempt to make a completion routine as seen here : https://orgmode.org/manual/Completion.html#Completion :config (org-link-set-parameters "wild-git" :follow 'wild-git-url) (set-face-attribute 'org-table nil :family "Iosevka") (set-face-attribute 'org-block nil :family "Iosevka") (set-face-attribute 'org-code nil :family "Iosevka" :weight 'light :height 0.8) (set-face-attribute 'org-default nil :family "ETBembo") ;; TODO Use Spacemacs' utilities instead? (add-hook 'org-mode-hook 'buffer-face-mode) (setq org-bullets-bullet-list '(" ")) ) ) ;;; packages.el ends here