From e47650852b8aa4da6d0b0cea3b5421955795cc64 Mon Sep 17 00:00:00 2001 From: Blendoit Date: Sat, 1 Aug 2020 15:24:03 -0700 Subject: Definitely /not/ including elpa/, that would be chaos. --- elpa/dashboard-20200306.1344/banners/1.txt | 8 - elpa/dashboard-20200306.1344/banners/2.txt | 6 - elpa/dashboard-20200306.1344/banners/3.txt | 8 - elpa/dashboard-20200306.1344/banners/emacs.png | Bin 43759 -> 0 bytes elpa/dashboard-20200306.1344/banners/logo.png | Bin 32305 -> 0 bytes .../dashboard-20200306.1344/dashboard-autoloads.el | 41 -- elpa/dashboard-20200306.1344/dashboard-pkg.el | 13 - elpa/dashboard-20200306.1344/dashboard-widgets.el | 729 --------------------- elpa/dashboard-20200306.1344/dashboard.el | 258 -------- 9 files changed, 1063 deletions(-) delete mode 100644 elpa/dashboard-20200306.1344/banners/1.txt delete mode 100644 elpa/dashboard-20200306.1344/banners/2.txt delete mode 100644 elpa/dashboard-20200306.1344/banners/3.txt delete mode 100644 elpa/dashboard-20200306.1344/banners/emacs.png delete mode 100644 elpa/dashboard-20200306.1344/banners/logo.png delete mode 100644 elpa/dashboard-20200306.1344/dashboard-autoloads.el delete mode 100644 elpa/dashboard-20200306.1344/dashboard-pkg.el delete mode 100644 elpa/dashboard-20200306.1344/dashboard-widgets.el delete mode 100644 elpa/dashboard-20200306.1344/dashboard.el (limited to 'elpa/dashboard-20200306.1344') diff --git a/elpa/dashboard-20200306.1344/banners/1.txt b/elpa/dashboard-20200306.1344/banners/1.txt deleted file mode 100644 index 8bd71a7..0000000 --- a/elpa/dashboard-20200306.1344/banners/1.txt +++ /dev/null @@ -1,8 +0,0 @@ - -######## ## ## ### ###### ###### -## ### ### ## ## ## ## ## ## -## #### #### ## ## ## ## -###### ## ### ## ## ## ## ###### -## ## ## ######### ## ## -## ## ## ## ## ## ## ## ## -######## ## ## ## ## ###### ###### diff --git a/elpa/dashboard-20200306.1344/banners/2.txt b/elpa/dashboard-20200306.1344/banners/2.txt deleted file mode 100644 index 73b761b..0000000 --- a/elpa/dashboard-20200306.1344/banners/2.txt +++ /dev/null @@ -1,6 +0,0 @@ - _______ .___ ___. ___ ______ _______. -| ____|| \/ | / \ / | / | -| |__ | \ / | / ^ \ | ,----' | (----` -| __| | |\/| | / /_\ \ | | \ \ -| |____ | | | | / _____ \ | `----.----) | -|_______||__| |__| /__/ \__\ \______|_______/ diff --git a/elpa/dashboard-20200306.1344/banners/3.txt b/elpa/dashboard-20200306.1344/banners/3.txt deleted file mode 100644 index 3abfd82..0000000 --- a/elpa/dashboard-20200306.1344/banners/3.txt +++ /dev/null @@ -1,8 +0,0 @@ - _______ _____ ______ ________ ________ ________ -|\ ___ \ |\ _ \ _ \|\ __ \|\ ____\|\ ____\ -\ \ __/|\ \ \\\__\ \ \ \ \|\ \ \ \___|\ \ \___|_ - \ \ \_|/_\ \ \\|__| \ \ \ __ \ \ \ \ \_____ \ - \ \ \_|\ \ \ \ \ \ \ \ \ \ \ \ \____\|____|\ \ - \ \_______\ \__\ \ \__\ \__\ \__\ \_______\____\_\ \ - \|_______|\|__| \|__|\|__|\|__|\|_______|\_________\ - \|_________| diff --git a/elpa/dashboard-20200306.1344/banners/emacs.png b/elpa/dashboard-20200306.1344/banners/emacs.png deleted file mode 100644 index 718b071..0000000 Binary files a/elpa/dashboard-20200306.1344/banners/emacs.png and /dev/null differ diff --git a/elpa/dashboard-20200306.1344/banners/logo.png b/elpa/dashboard-20200306.1344/banners/logo.png deleted file mode 100644 index c9de00c..0000000 Binary files a/elpa/dashboard-20200306.1344/banners/logo.png and /dev/null differ diff --git a/elpa/dashboard-20200306.1344/dashboard-autoloads.el b/elpa/dashboard-20200306.1344/dashboard-autoloads.el deleted file mode 100644 index cc682f5..0000000 --- a/elpa/dashboard-20200306.1344/dashboard-autoloads.el +++ /dev/null @@ -1,41 +0,0 @@ -;;; dashboard-autoloads.el --- automatically extracted autoloads -;; -;;; Code: - -(add-to-list 'load-path (directory-file-name - (or (file-name-directory #$) (car load-path)))) - - -;;;### (autoloads nil "dashboard" "dashboard.el" (0 0 0 0)) -;;; Generated autoloads from dashboard.el - -(autoload 'dashboard-setup-startup-hook "dashboard" "\ -Setup post initialization hooks. -If a command line argument is provided, -assume a filename and skip displaying Dashboard. - -\(fn)" nil nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "dashboard" '("dashboard-"))) - -;;;*** - -;;;### (autoloads nil "dashboard-widgets" "dashboard-widgets.el" -;;;;;; (0 0 0 0)) -;;; Generated autoloads from dashboard-widgets.el - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "dashboard-widgets" '("dashboard-" "recentf-list"))) - -;;;*** - -;;;### (autoloads nil nil ("dashboard-pkg.el") (0 0 0 0)) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; dashboard-autoloads.el ends here diff --git a/elpa/dashboard-20200306.1344/dashboard-pkg.el b/elpa/dashboard-20200306.1344/dashboard-pkg.el deleted file mode 100644 index 44d332a..0000000 --- a/elpa/dashboard-20200306.1344/dashboard-pkg.el +++ /dev/null @@ -1,13 +0,0 @@ -(define-package "dashboard" "20200306.1344" "A startup screen extracted from Spacemacs" - '((emacs "25.3") - (page-break-lines "0.11")) - :commit "bf38867ae80902d58207974b4a2bba4249324599" :keywords - '("startup" "screen" "tools" "dashboard") - :authors - '(("Rakan Al-Hneiti")) - :maintainer - '("Rakan Al-Hneiti") - :url "https://github.com/emacs-dashboard/emacs-dashboard") -;; Local Variables: -;; no-byte-compile: t -;; End: diff --git a/elpa/dashboard-20200306.1344/dashboard-widgets.el b/elpa/dashboard-20200306.1344/dashboard-widgets.el deleted file mode 100644 index a045ce7..0000000 --- a/elpa/dashboard-20200306.1344/dashboard-widgets.el +++ /dev/null @@ -1,729 +0,0 @@ -;;; dashboard-widgets.el --- A startup screen extracted from Spacemacs -*- lexical-binding: t -*- - -;; Copyright (c) 2016-2020 Rakan Al-Hneiti & Contributors -;; -;; Author: Rakan Al-Hneiti -;; URL: https://github.com/emacs-dashboard/emacs-dashboard -;; -;; This file is not part of GNU Emacs. -;; -;;; License: GPLv3 -;; -;; Created: October 05, 2016 -;; Package-Version: 1.8.0-SNAPSHOT -;; Keywords: startup, screen, tools, dashboard -;; Package-Requires: ((emacs "25.3") (page-break-lines "0.11")) -;;; Commentary: - -;; An extensible Emacs dashboard, with sections for -;; bookmarks, projectile projects, org-agenda and more. - -;;; Code: - -(require 'cl-lib) - -;; Compiler pacifier -(declare-function all-the-icons-icon-for-dir "ext:all-the-icons.el") -(declare-function all-the-icons-icon-for-file "ext:all-the-icons.el") -(declare-function bookmark-get-filename "ext:bookmark.el") -(declare-function bookmark-all-names "ext:bookmark.el") -(declare-function calendar-date-compare "ext:calendar.el") -(declare-function projectile-cleanup-known-projects "ext:projectile.el") -(declare-function projectile-load-known-projects "ext:projectile.el") -(declare-function projectile-mode "ext:projectile.el") -(declare-function projectile-relevant-known-projects "ext:projectile.el") -(declare-function org-agenda-format-item "ext:org-agenda.el") -(declare-function org-compile-prefix-format "ext:org-agenda.el") -(declare-function org-entry-is-done-p "ext:org.el") -(declare-function org-get-category "ext:org.el") -(declare-function org-get-deadline-time "ext:org.el") -(declare-function org-get-heading "ext:org.el") -(declare-function org-get-scheduled-time "ext:org.el") -(declare-function org-get-tags "ext:org.el") -(declare-function org-map-entries "ext:org.el") -(declare-function org-outline-level "ext:org.el") -(defvar all-the-icons-dir-icon-alist) -(defvar package-activated-list) - -(defcustom dashboard-page-separator "\n\f\n" - "Separator to use between the different pages." - :type 'string - :group 'dashboard) - -(defcustom dashboard-image-banner-max-height 0 - "Maximum height of banner image. - -This setting applies only if Emacs is compiled with Imagemagick -support. When value is non-zero the image banner will be resized -to the specified height, with aspect ratio preserved." - :type 'integer - :group 'dashboard) - -(defcustom dashboard-image-banner-max-width 0 - "Maximum width of banner image. - -This setting applies if Emacs is compiled with Imagemagick -support. When value is non-zero the image banner will be resized -to the specified width, with aspect ratio preserved." - :type 'integer - :group 'dashboard) - -(defcustom dashboard-set-heading-icons nil - "When non nil, heading sections will have icons." - :type 'boolean - :group 'dashboard) - -(defcustom dashboard-set-file-icons nil - "When non nil, file lists will have icons." - :type 'boolean - :group 'dashboard) - -(defcustom dashboard-set-navigator nil - "When non nil, a navigator will be displayed under the banner." - :type 'boolean - :group 'dashboard) - -(defcustom dashboard-set-init-info t - "When non nil, init info will be displayed under the banner." - :type 'boolean - :group 'dashboard) - -(defcustom dashboard-set-footer t - "When non nil, a footer will be displayed at the bottom." - :type 'boolean - :group 'dashboard) - -(defcustom dashboard-footer-messages - '("The one true editor, Emacs!" - "Who the hell uses VIM anyway? Go Evil!" - "Free as free speech, free as free Beer" - "Richard Stallman is proud of you" - "Happy coding!" - "Vi Vi Vi, the editor of the beast" - "Welcome to the church of Emacs" - "While any text editor can save your files,\ - only Emacs can save your soul" - "I showed you my source code, pls respond") - "A list of messages, one of which dashboard chooses to display." - :type 'list - :group 'dashboard) - -(defcustom dashboard-show-shortcuts t - "Whether to show shortcut keys for each section." - :type 'boolean - :group 'dashboard) - -(defcustom dashboard-org-agenda-categories nil - "Specify the Categories to consider when using agenda in dashboard. -Example: -'(\"Tasks\" \"Habits\")" - :type 'list - :group 'dashboard) - -(defconst dashboard-banners-directory - (concat (file-name-directory - (locate-library "dashboard")) - "/banners/")) - -(defconst dashboard-banner-official-png - (expand-file-name (concat dashboard-banners-directory "emacs.png")) - "Emacs banner image.") - -(defconst dashboard-banner-logo-png - (expand-file-name (concat dashboard-banners-directory "logo.png")) - "Emacs banner image.") - -(defconst dashboard-banner-length 75 - "Width of a banner.") - -(defcustom dashboard-banner-logo-title "Welcome to Emacs!" - "Specify the startup banner." - :type 'string - :group 'dashboard) - -(defcustom dashboard-navigator-buttons nil - "Specify the navigator buttons. -The format is: 'icon title help action face prefix suffix'. - -Example: -'((\"☆\" \"Star\" \"Show stars\" (lambda (&rest _) (show-stars)) 'warning \"[\" \"]\"))" - :type '(repeat (repeat (list string string string function symbol string string))) - :group 'dashboard) - -(defcustom dashboard-init-info - ;; Check if package.el was loaded and if package loading was enabled - (if (bound-and-true-p package-alist) - (format "%d packages loaded in %s" - (length package-activated-list) (emacs-init-time)) - (if (and (boundp 'straight--profile-cache) (hash-table-p straight--profile-cache)) - (format "%d packages loaded in %s" - (hash-table-size straight--profile-cache) (emacs-init-time)) - (format "Emacs started in %s" (emacs-init-time)))) - "Init info with packages loaded and init time." - :type 'boolean - :group 'dashboard) - -(defcustom dashboard-footer - (let ((list '("The one true editor, Emacs!" - "Who the hell uses VIM anyway? Go Evil!" - "Free as free speech, free as free Beer" - "Richard Stallman is proud of you" - "Happy coding!" - "Vi Vi Vi, the editor of the beast" - "Welcome to the church of Emacs" - "While any text editor can save your files,\ - only Emacs can save your soul" - "I showed you my source code, pls respond" - ))) - (nth (random (1- (1+ (length list)))) list)) - "A footer with some short message." - :type 'string - :group 'dashboard) - -(defcustom dashboard-footer-icon - (if (and (display-graphic-p) - (or (fboundp 'all-the-icons-fileicon) - (require 'all-the-icons nil 'noerror))) - (all-the-icons-fileicon "emacs" - :height 1.1 - :v-adjust -0.05 - :face 'font-lock-keyword-face) - (propertize ">" 'face 'dashboard-footer)) - "Footer's icon." - :type 'string - :group 'dashboard) - -(defcustom dashboard-startup-banner 'official - "Specify the startup banner. -Default value is `official', it displays -the Emacs logo. `logo' displays Emacs alternative logo. -An integer value is the index of text -banner. A string value must be a path to a .PNG file. -If the value is nil then no banner is displayed." - :type '(choice (const :tag "offical" official) - (const :tag "logo" logo) - (string :tag "a png path")) - :group 'dashboard) - -(defcustom dashboard-buffer-last-width nil - "Previous width of dashboard-buffer." - :type 'integer - :group 'dashboard) - -(defcustom dashboard-item-generators '((recents . dashboard-insert-recents) - (bookmarks . dashboard-insert-bookmarks) - (projects . dashboard-insert-projects) - (agenda . dashboard-insert-agenda) - (registers . dashboard-insert-registers)) - "Association list of items to how to generate in the startup buffer. -Will be of the form `(list-type . list-function)'. -Possible values for list-type are: `recents', `bookmarks', `projects', -`agenda' ,`registers'." - :type '(repeat (alist :key-type symbol :value-type function)) - :group 'dashboard) - -(defcustom dashboard-items '((recents . 5) - (bookmarks . 5) - (agenda . 5)) - "Association list of items to show in the startup buffer. -Will be of the form `(list-type . list-size)'. -If nil it is disabled. Possible values for list-type are: -`recents' `bookmarks' `projects' `agenda' `registers'." - :type '(repeat (alist :key-type symbol :value-type integer)) - :group 'dashboard) - -(defcustom dashboard-items-default-length 20 - "Length used for startup lists with otherwise unspecified bounds. -Set to nil for unbounded." - :type 'integer - :group 'dashboard) - -(defcustom dashboard-heading-icons '((recents . "history") - (bookmarks . "bookmark") - (agenda . "calendar") - (projects . "rocket") - (registers . "database")) - "Association list for the icons of the heading sections. -Will be of the form `(list-type . icon-name-string)`. -If nil it is disabled. Possible values for list-type are: -`recents' `bookmarks' `projects' `agenda' `registers'" - :type '(repeat (alist :key-type symbol :value-type string)) - :group 'dashboard) - -(defvar recentf-list nil) - -;; -;; Faces -;; -(defface dashboard-text-banner - '((t (:inherit font-lock-keyword-face))) - "Face used for text banners." - :group 'dashboard) - -(defface dashboard-banner-logo-title - '((t :inherit default)) - "Face used for the banner title." - :group 'dashboard) - -(defface dashboard-navigator - '((t (:inherit font-lock-keyword-face))) - "Face used for the navigator." - :group 'dashboard) - -(defface dashboard-heading - '((t (:inherit font-lock-keyword-face))) - "Face used for widget headings." - :group 'dashboard) - -(defface dashboard-footer - '((t (:inherit font-lock-doc-face))) - "Face used for widget headings." - :group 'dashboard) - -(define-obsolete-face-alias - 'dashboard-text-banner-face 'dashboard-text-banner "1.2.6") -(define-obsolete-face-alias - 'dashboard-banner-logo-title-face 'dashboard-banner-logo-title "1.2.6") -(define-obsolete-face-alias - 'dashboard-heading-face 'dashboard-heading "1.2.6") - -;; -;; Generic widget helpers -;; -(defun dashboard-subseq (seq start end) - "Return the subsequence of SEQ from START to END.. -Uses `cl-subseq`, but accounts for end points greater than the size of the -list. -Return entire list if `END' is omitted." - (let ((len (length seq))) - (cl-subseq seq start (and (number-or-marker-p end) - (min len end))))) - -(defmacro dashboard-insert-shortcut (shortcut-char - search-label - &optional no-next-line) - "Insert a shortcut SHORTCUT-CHAR for a given SEARCH-LABEL. -Optionally, provide NO-NEXT-LINE to move the cursor forward a line." - `(progn - (eval-when-compile (defvar dashboard-mode-map)) - (let ((sym (make-symbol (format "Jump to \"%s\"" ,search-label)))) - (fset sym (lambda () - (interactive) - (unless (search-forward ,search-label (point-max) t) - (search-backward ,search-label (point-min) t)) - ,@(unless no-next-line - '((forward-line 1))) - (back-to-indentation))) - (eval-after-load 'dashboard - (define-key dashboard-mode-map ,shortcut-char sym))))) - -(defun dashboard-append (msg &optional _messagebuf) - "Append MSG to dashboard buffer. -If MESSAGEBUF is not nil then MSG is also written in message buffer." - (with-current-buffer (get-buffer-create "*dashboard*") - (goto-char (point-max)) - (let ((buffer-read-only nil)) - (insert msg)))) - -(defun dashboard-modify-heading-icons (alist) - "Append ALIST items to `dashboard-heading-icons' to modify icons." - (dolist (icon alist) - (add-to-list 'dashboard-heading-icons icon))) - -(defun dashboard-insert-page-break () - "Insert a page break line in dashboard buffer." - (dashboard-append dashboard-page-separator)) - -(defun dashboard-insert-heading (heading &optional shortcut) - "Insert a widget HEADING in dashboard buffer, adding SHORTCUT if provided." - (when (and (display-graphic-p) - dashboard-set-heading-icons) - ;; Try loading `all-the-icons' - (unless (or (fboundp 'all-the-icons-octicon) - (require 'all-the-icons nil 'noerror)) - (error "Package `all-the-icons' isn't installed")) - - (insert (cond - ((string-equal heading "Recent Files:") - (all-the-icons-octicon (cdr (assoc 'recents dashboard-heading-icons)) - :height 1.2 :v-adjust 0.0 :face 'dashboard-heading)) - ((string-equal heading "Bookmarks:") - (all-the-icons-octicon (cdr (assoc 'bookmarks dashboard-heading-icons)) - :height 1.2 :v-adjust 0.0 :face 'dashboard-heading)) - ((or (string-equal heading "Agenda for today:") - (string-equal heading "Agenda for the coming week:")) - (all-the-icons-octicon (cdr (assoc 'agenda dashboard-heading-icons)) - :height 1.2 :v-adjust 0.0 :face 'dashboard-heading)) - ((string-equal heading "Registers:") - (all-the-icons-octicon (cdr (assoc 'registers dashboard-heading-icons)) - :height 1.2 :v-adjust 0.0 :face 'dashboard-heading)) - ((string-equal heading "Projects:") - (all-the-icons-octicon (cdr (assoc 'projects dashboard-heading-icons)) - :height 1.2 :v-adjust 0.0 :face 'dashboard-heading)) - (t " "))) - (insert " ")) - - (insert (propertize heading 'face 'dashboard-heading)) - (if shortcut (insert (format " (%s)" shortcut)))) - -(defun dashboard-center-line (string) - "Center a STRING accoring to it's size." - (insert (make-string (max 0 (floor (/ (- dashboard-banner-length - (+ (length string) 1)) 2))) ?\ ))) - -;; -;; BANNER -;; -(defun dashboard-insert-ascii-banner-centered (file) - "Insert banner from FILE." - (let ((ascii-banner - (with-temp-buffer - (insert-file-contents file) - (let ((banner-width 0)) - (while (not (eobp)) - (let ((line-length (- (line-end-position) (line-beginning-position)))) - (if (< banner-width line-length) - (setq banner-width line-length))) - (forward-line 1)) - (goto-char 0) - (let ((margin - (max 0 (floor (/ (- dashboard-banner-length banner-width) 2))))) - (while (not (eobp)) - (insert (make-string margin ?\ )) - (forward-line 1)))) - (buffer-string)))) - (put-text-property 0 (length ascii-banner) 'face 'dashboard-text-banner ascii-banner) - (insert ascii-banner))) - -(defun dashboard-insert-image-banner (banner) - "Display an image BANNER." - (when (file-exists-p banner) - (let* ((title dashboard-banner-logo-title) - (spec - (if (image-type-available-p 'imagemagick) - (apply 'create-image banner 'imagemagick nil - (append (when (> dashboard-image-banner-max-width 0) - (list :max-width dashboard-image-banner-max-width)) - (when (> dashboard-image-banner-max-height 0) - (list :max-height dashboard-image-banner-max-height)))) - (create-image banner))) - (size (image-size spec)) - (width (car size)) - (left-margin (max 0 (floor (- dashboard-banner-length width) 2)))) - (goto-char (point-min)) - (insert "\n") - (insert (make-string left-margin ?\ )) - (insert-image spec) - (insert "\n\n") - (when title - (dashboard-center-line title) - (insert (format "%s\n\n" (propertize title 'face 'dashboard-banner-logo-title))))))) - -;; -;; INIT INFO -;; -(defun dashboard-insert-init-info () - "Insert init info when `dashboard-set-init-info' is t." - (when dashboard-set-init-info - (dashboard-center-line dashboard-init-info) - (insert - (propertize dashboard-init-info 'face 'font-lock-comment-face)))) - -(defun dashboard-get-banner-path (index) - "Return the full path to banner with index INDEX." - (concat dashboard-banners-directory (format "%d.txt" index))) - -(defun dashboard-choose-banner () - "Return the full path of a banner based on the dotfile value." - (when dashboard-startup-banner - (cond ((eq 'official dashboard-startup-banner) - (if (and (display-graphic-p) (image-type-available-p 'png)) - dashboard-banner-official-png - (dashboard-get-banner-path 1))) - ((eq 'logo dashboard-startup-banner) - (if (and (display-graphic-p) (image-type-available-p 'png)) - dashboard-banner-logo-png - (dashboard-get-banner-path 1))) - ((integerp dashboard-startup-banner) - (dashboard-get-banner-path dashboard-startup-banner)) - ((and dashboard-startup-banner - (image-type-available-p (intern (file-name-extension - dashboard-startup-banner))) - (display-graphic-p)) - (if (file-exists-p dashboard-startup-banner) - dashboard-startup-banner - (message (format "could not find banner %s" - dashboard-startup-banner)) - (dashboard-get-banner-path 1))) - (t (dashboard-get-banner-path 1))))) - -(defun dashboard-insert-banner () - "Insert Banner at the top of the dashboard." - (goto-char (point-max)) - (let ((banner (dashboard-choose-banner)) - (buffer-read-only nil)) - (progn - (when banner - (if (image-type-available-p (intern (file-name-extension banner))) - (dashboard-insert-image-banner banner) - (dashboard-insert-ascii-banner-centered banner)) - (dashboard-insert-navigator) - (dashboard-insert-init-info))))) - -(defun dashboard-insert-navigator () - "Insert Navigator of the dashboard." - (when (and dashboard-set-navigator dashboard-navigator-buttons) - (dolist (line dashboard-navigator-buttons) - (dolist (btn line) - (let* ((icon (car btn)) - (title (cadr btn)) - (help (or (cadr (cdr btn)) "")) - (action (or (cadr (cddr btn)) #'ignore)) - (face (or (cadr (cddr (cdr btn))) 'dashboard-navigator)) - (prefix (or (cadr (cddr (cddr btn))) (propertize "[" 'face face))) - (suffix (or (cadr (cddr (cddr (cdr btn)))) (propertize "]" 'face face)))) - (widget-create 'item - :tag (concat - (when icon - (propertize icon 'face `(:inherit - ,(get-text-property 0 'face icon) - :inherit - ,face))) - (when (and icon title - (not (string-equal icon "")) - (not (string-equal title ""))) - (propertize " " 'face 'variable-pitch)) - (when title (propertize title 'face face))) - :help-echo help - :action action - :button-face `(:underline nil) - :mouse-face 'highlight - :button-prefix prefix - :button-suffix suffix - :format "%[%t%]") - (insert " "))) - (let* ((width (current-column))) - (beginning-of-line) - (dashboard-center-line (make-string width ?\s)) - (end-of-line)) - (insert "\n")) - (insert "\n"))) - -(defmacro dashboard-insert-section (section-name list list-size shortcut action &rest widget-params) - "Add a section with SECTION-NAME and LIST of LIST-SIZE items to the dashboard. -SHORTCUT is the keyboard shortcut used to access the section. -ACTION is theaction taken when the user activates the widget button. -WIDGET-PARAMS are passed to the \"widget-create\" function." - `(progn - (dashboard-insert-heading ,section-name - (if (and ,list dashboard-show-shortcuts) ,shortcut)) - (if ,list - (when (dashboard-insert-section-list - ,section-name - (dashboard-subseq ,list 0 ,list-size) - ,action - ,@widget-params) - (dashboard-insert-shortcut ,shortcut ,section-name)) - (insert "\n --- No items ---")))) - -;; -;; Section list -;; -(defmacro dashboard-insert-section-list (section-name list action &rest rest) - "Insert into SECTION-NAME a LIST of items, expanding ACTION and passing REST to widget creation." - `(when (car ,list) - (mapc - (lambda (el) - (let ((tag ,@rest)) - (insert "\n ") - - (when (and (display-graphic-p) - dashboard-set-file-icons - (or (fboundp 'all-the-icons-icon-for-dir) - (require 'all-the-icons nil 'noerror))) - (let* ((path (car (last (split-string ,@rest " - ")))) - (icon (if (and (not (file-remote-p path)) - (file-directory-p path)) - (all-the-icons-icon-for-dir path nil "") - (cond - ((string-equal ,section-name "Agenda for today:") - (all-the-icons-octicon "primitive-dot" :height 1.0 :v-adjust 0.01)) - ((file-remote-p path) - (all-the-icons-octicon "radio-tower" :height 1.0 :v-adjust 0.01)) - (t (all-the-icons-icon-for-file (file-name-nondirectory path) - :v-adjust -0.05)))))) - (setq tag (concat icon " " ,@rest)))) - - (widget-create 'item - :tag tag - :action ,action - :button-face `(:underline nil) - :mouse-face 'highlight - :button-prefix "" - :button-suffix "" - :format "%[%t%]"))) - ,list))) - -;; Footer -(defun dashboard-random-footer () - "Return a random footer from `dashboard-footer-messages'." - (nth (random (length dashboard-footer-messages)) dashboard-footer-messages)) - -(defun dashboard-insert-footer () - "Insert footer of dashboard." - (let ((footer (and dashboard-set-footer (dashboard-random-footer)))) - (when footer - (insert "\n") - (dashboard-center-line footer) - (insert dashboard-footer-icon) - (insert " ") - (insert (propertize footer 'face 'dashboard-footer)) - (insert "\n")))) - -;; -;; Recentf -;; -(defun dashboard-insert-recents (list-size) - "Add the list of LIST-SIZE items from recently edited files." - (recentf-mode) - (dashboard-insert-section - "Recent Files:" - recentf-list - list-size - "r" - `(lambda (&rest ignore) (find-file-existing ,el)) - (abbreviate-file-name el))) - -;; -;; Bookmarks -;; -(defun dashboard-insert-bookmarks (list-size) - "Add the list of LIST-SIZE items of bookmarks." - (require 'bookmark) - (dashboard-insert-section - "Bookmarks:" - (dashboard-subseq (bookmark-all-names) - 0 list-size) - list-size - "m" - `(lambda (&rest ignore) (bookmark-jump ,el)) - (let ((file (bookmark-get-filename el))) - (if file - (format "%s - %s" el (abbreviate-file-name file)) - el)))) - -;; -;; Projectile -;; -(defun dashboard-insert-projects (list-size) - "Add the list of LIST-SIZE items of projects." - (require 'projectile) - (let ((inhibit-message t) (message-log-max nil)) - (projectile-cleanup-known-projects)) - (projectile-load-known-projects) - (dashboard-insert-section - "Projects:" - (dashboard-subseq (projectile-relevant-known-projects) - 0 list-size) - list-size - "p" - `(lambda (&rest ignore) (projectile-switch-project-by-name ,el)) - (abbreviate-file-name el))) - -;; -;; Org Agenda -;; -(defun dashboard-timestamp-to-gregorian-date (timestamp) - "Convert TIMESTAMP to a gregorian date. - -The result can be used with functions like -`calendar-date-compare'." - (let ((decoded-timestamp (decode-time timestamp))) - (list (nth 4 decoded-timestamp) - (nth 3 decoded-timestamp) - (nth 5 decoded-timestamp)))) - -(defun dashboard-date-due-p (timestamp &optional due-date) - "Check if TIMESTAMP is today or in the past. - -If DUE-DATE is nil, compare TIMESTAMP to today; otherwise, -compare to the date in DUE-DATE. - -The time part of both TIMESTAMP and DUE-DATE is ignored, only the -date part is considered." - (unless due-date - (setq due-date (current-time))) - (setq due-date (time-add due-date 86400)) - (let* ((gregorian-date (dashboard-timestamp-to-gregorian-date timestamp)) - (gregorian-due-date (dashboard-timestamp-to-gregorian-date due-date))) - (calendar-date-compare (list gregorian-date) - (list gregorian-due-date)))) - -(defun dashboard-get-agenda () - "Get agenda items for today or for a week from now." - (org-compile-prefix-format 'agenda) - (let ((due-date nil)) - (if (and (boundp 'show-week-agenda-p) show-week-agenda-p) - (setq due-date (time-add (current-time) (* 86400 7))) - (setq due-date nil) - ) - (let* ((filtered-entries nil)) - (org-map-entries - (lambda () - (let* ((schedule-time (org-get-scheduled-time (point))) - (deadline-time (org-get-deadline-time (point))) - (item (org-agenda-format-item - (format-time-string "%Y-%m-%d" schedule-time) - (org-get-heading t t) - (org-outline-level) - (org-get-category) - (org-get-tags) - t)) - (loc (point)) - (file (buffer-file-name))) - (if (or (equal dashboard-org-agenda-categories nil) - (member (org-get-category) dashboard-org-agenda-categories)) - (when (and (not (org-entry-is-done-p)) - (or (and schedule-time (dashboard-date-due-p schedule-time due-date)) - (and deadline-time (dashboard-date-due-p deadline-time due-date)))) - (setq filtered-entries - (append filtered-entries - (list (list item schedule-time deadline-time loc file)))))))) - nil - 'agenda) - filtered-entries))) - -(defun dashboard-insert-agenda (list-size) - "Add the list of LIST-SIZE items of agenda." - (require 'org-agenda) - (require 'calendar) - (let ((agenda (dashboard-get-agenda))) - (dashboard-insert-section - (or (and (boundp 'show-week-agenda-p) show-week-agenda-p "Agenda for the coming week:") - "Agenda for today:") - agenda - list-size - "a" - `(lambda (&rest ignore) - (let ((buffer (find-file-other-window (nth 4 ',el)))) - (with-current-buffer buffer - (goto-char (nth 3 ',el))) - (switch-to-buffer buffer))) - (format "%s" (nth 0 el))))) - -;; -;; Registers -;; -(defun dashboard-insert-registers (list-size) - "Add the list of LIST-SIZE items of registers." - (require 'register) - (dashboard-insert-section - "Registers:" - register-alist - list-size - "e" - (lambda (&rest _ignore) (jump-to-register (car el))) - (format "%c - %s" (car el) (register-describe-oneline (car el))))) - -(provide 'dashboard-widgets) -;;; dashboard-widgets.el ends here diff --git a/elpa/dashboard-20200306.1344/dashboard.el b/elpa/dashboard-20200306.1344/dashboard.el deleted file mode 100644 index 56b6418..0000000 --- a/elpa/dashboard-20200306.1344/dashboard.el +++ /dev/null @@ -1,258 +0,0 @@ -;;; dashboard.el --- A startup screen extracted from Spacemacs -*- lexical-binding: t -*- - -;; Copyright (c) 2016-2020 Rakan Al-Hneiti & Contributors -;; -;; Author: Rakan Al-Hneiti -;; URL: https://github.com/emacs-dashboard/emacs-dashboard -;; -;; This file is not part of GNU Emacs. -;; -;;; License: GPLv3 -;; -;; Created: October 05, 2016 -;; Package-Version: 1.8.0-SNAPSHOT -;; Keywords: startup, screen, tools, dashboard -;; Package-Requires: ((emacs "25.3") (page-break-lines "0.11")) -;;; Commentary: - -;; An extensible Emacs dashboard, with sections for -;; bookmarks, projectile projects, org-agenda and more. - -;;; Code: - -(require 'seq) -(require 'page-break-lines) -(require 'recentf) - -(require 'dashboard-widgets) - -;; Custom splash screen -(defvar dashboard-mode-map - (let ((map (make-sparse-keymap))) - (define-key map (kbd "C-p") 'dashboard-previous-line) - (define-key map (kbd "C-n") 'dashboard-next-line) - (define-key map (kbd "") 'dashboard-previous-line) - (define-key map (kbd "") 'dashboard-next-line) - (define-key map (kbd "k") 'dashboard-previous-line) - (define-key map (kbd "j") 'dashboard-next-line) - (define-key map [tab] 'widget-forward) - (define-key map (kbd "C-i") 'widget-forward) - (define-key map [backtab] 'widget-backward) - (define-key map (kbd "RET") 'dashboard-return) - (define-key map [down-mouse-1] 'widget-button-click) - (define-key map (kbd "g") #'dashboard-refresh-buffer) - (define-key map (kbd "}") #'dashboard-next-section) - (define-key map (kbd "{") #'dashboard-previous-section) - map) - "Keymap for dashboard mode.") - -(define-derived-mode dashboard-mode special-mode "Dashboard" - "Dashboard major mode for startup screen. -\\ -" - :group 'dashboard - :syntax-table nil - :abbrev-table nil - (buffer-disable-undo) - (whitespace-mode -1) - (linum-mode -1) - (when (>= emacs-major-version 26) - (display-line-numbers-mode -1)) - (page-break-lines-mode 1) - (setq inhibit-startup-screen t) - (setq buffer-read-only t - truncate-lines t)) - -(defgroup dashboard nil - "Extensible startup screen." - :group 'applications) - -(defcustom dashboard-center-content nil - "Whether to center content within the window." - :type 'boolean - :group 'dashboard) - -(defconst dashboard-buffer-name "*dashboard*" - "Dashboard's buffer name.") - -(defvar dashboard--section-starts nil - "List of section starting positions.") - -(defun dashboard-previous-section () - "Navigate back to previous section." - (interactive) - (let ((current-section-start nil) - (current-position (point)) - (previous-section-start nil)) - (dolist (elt dashboard--section-starts) - (when (and current-section-start - (not previous-section-start)) - (setq previous-section-start elt)) - (when (and (not current-section-start) - (< elt current-position)) - (setq current-section-start elt))) - (goto-char (if (eq current-position current-section-start) - previous-section-start - current-section-start)))) - -(defun dashboard-next-section () - "Navigate forward to next section." - (interactive) - (let ((current-position (point)) - (next-section-start nil) - (section-starts (reverse dashboard--section-starts))) - (dolist (elt section-starts) - (when (and (not next-section-start) - (> elt current-position)) - (setq next-section-start elt))) - (when next-section-start - (goto-char next-section-start)))) - -(defun dashboard-previous-line (arg) - "Move point up and position it at that line’s item. -Optional prefix ARG says how many lines to move; default is one line." - (interactive "^p") - (dashboard-next-line (- arg))) - -(defun dashboard-next-line (arg) - "Move point down and position it at that line’s item. -Optional prefix ARG says how many lines to move; default is one line." - ;; code heavily inspired by `dired-next-line' - (interactive "^p") - (let ((line-move-visual nil) - (goal-column nil)) - (line-move arg t)) - ;; We never want to move point into an invisible line. Dashboard doesn’t - ;; use invisible text currently but when it does we’re ready! - (while (and (invisible-p (point)) - (not (if (and arg (< arg 0)) (bobp) (eobp)))) - (forward-char (if (and arg (< arg 0)) -1 1))) - (beginning-of-line-text)) - -(defun dashboard-return () - "Hit return key in dashboard buffer." - (interactive) - (let ((start-ln (line-number-at-pos)) - (fd-cnt 0) - (diff-line nil) - (entry-pt nil)) - (save-excursion - (while (and (not diff-line) - (not (= (point) (point-min))) - (not (get-char-property (point) 'button)) - (not (= (point) (point-max)))) - (forward-char 1) - (setq fd-cnt (1+ fd-cnt)) - (unless (= start-ln (line-number-at-pos)) - (setq diff-line t))) - (unless (= (point) (point-max)) - (setq entry-pt (point)))) - (when (= fd-cnt 1) - (setq entry-pt (1- (point)))) - (if entry-pt - (widget-button-press entry-pt) - (call-interactively #'widget-button-press)))) - -(defun dashboard-maximum-section-length () - "For the just-inserted section, calculate the length of the longest line." - (let ((max-line-length 0)) - (save-excursion - (dashboard-previous-section) - (while (not (eobp)) - (setq max-line-length - (max max-line-length - (- (line-end-position) (line-beginning-position)))) - (forward-line))) - max-line-length)) - -(defun dashboard-insert-startupify-lists () - "Insert the list of widgets into the buffer." - (interactive) - (let ((buffer-exists (buffer-live-p (get-buffer dashboard-buffer-name))) - (recentf-is-on (recentf-enabled-p)) - (origial-recentf-list recentf-list) - (dashboard-num-recents (or (cdr (assoc 'recents dashboard-items)) 0)) - (max-line-length 0)) - ;; disable recentf mode, - ;; so we don't flood the recent files list with org mode files - ;; do this by making a copy of the part of the list we'll use - ;; let dashboard widgets change that - ;; then restore the orginal list afterwards - ;; (this avoids many saves/loads that would result from - ;; disabling/enabling recentf-mode) - (if recentf-is-on - (setq recentf-list (seq-take recentf-list dashboard-num-recents))) - (when (or (not (eq dashboard-buffer-last-width (window-width))) - (not buffer-exists)) - (setq dashboard-banner-length (window-width) - dashboard-buffer-last-width dashboard-banner-length) - (with-current-buffer (get-buffer-create dashboard-buffer-name) - (let ((buffer-read-only nil)) - (erase-buffer) - (dashboard-insert-banner) - (dashboard-insert-page-break) - (setq dashboard--section-starts nil) - (mapc (lambda (els) - (let* ((el (or (car-safe els) els)) - (list-size - (or (cdr-safe els) - dashboard-items-default-length)) - (item-generator - (cdr-safe (assoc el dashboard-item-generators)))) - (add-to-list 'dashboard--section-starts (point)) - (funcall item-generator list-size) - (setq max-line-length - (max max-line-length (dashboard-maximum-section-length))) - (dashboard-insert-page-break))) - dashboard-items) - (when dashboard-center-content - (when dashboard--section-starts - (goto-char (car (last dashboard--section-starts)))) - (let ((margin (floor (/ (max (- (window-width) max-line-length) 0) 2)))) - (while (not (eobp)) - (and (not (eq ? (char-after))) - (insert (make-string margin ?\ ))) - (forward-line 1)))) - (dashboard-insert-footer)) - (dashboard-mode) - (goto-char (point-min)))) - (if recentf-is-on - (setq recentf-list origial-recentf-list)))) - -(add-hook 'window-setup-hook - (lambda () - (add-hook 'window-size-change-functions 'dashboard-resize-on-hook) - (dashboard-resize-on-hook))) - -(defun dashboard-refresh-buffer () - "Refresh buffer." - (interactive) - (kill-buffer dashboard-buffer-name) - (dashboard-insert-startupify-lists) - (switch-to-buffer dashboard-buffer-name)) - -(defun dashboard-resize-on-hook (&optional _) - "Re-render dashboard on window size change." - (let ((space-win (get-buffer-window dashboard-buffer-name)) - (frame-win (frame-selected-window))) - (when (and space-win - (not (window-minibuffer-p frame-win))) - (with-selected-window space-win - (dashboard-insert-startupify-lists))))) - -;;;###autoload -(defun dashboard-setup-startup-hook () - "Setup post initialization hooks. -If a command line argument is provided, -assume a filename and skip displaying Dashboard." - (when (< (length command-line-args) 2 ) - (add-hook 'after-init-hook (lambda () - ;; Display useful lists of items - (dashboard-insert-startupify-lists))) - (add-hook 'emacs-startup-hook '(lambda () - (switch-to-buffer "*dashboard*") - (goto-char (point-min)) - (redisplay))))) - -(provide 'dashboard) -;;; dashboard.el ends here -- cgit v1.2.3