forked from syl20bnr/spacemacs
/
zemacs.el
119 lines (109 loc) · 6.24 KB
/
zemacs.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
;;; zemacs.el --- Spacemacs 2016 April Fools File
;;
;; Copyright (c) 2012-2016 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(setq spacemacs-buffer-name "*zemacs*")
(setq spacemacs-buffer-logo-title "[Z E M A C S]")
(setq spacemacs-buffer-version-info "af-1.01")
(define-minor-mode zemacs-buffer-mode
"Zemacs major mode for startup screen."
:lighter "ToTheMAX"
(if zemacs-buffer-mode
(progn
(spacemacs/set-leader-keys-for-major-mode 'spacemacs-buffer-mode
(kbd "aprilfool") 'next-next-NEXT-millennium)
(zemacs//insert-links))
;; restore the true one
(ad-disable-advice 'configuration-layer/initialize
'before 'zemacs/initialize)
(ad-activate 'configuration-layer/initialize)
(ad-disable-advice 'spacemacs-buffer//inject-version
'around 'zemacs/inject-version)
(ad-activate 'spacemacs-buffer//inject-version)
(ad-disable-advice 'spacemacs-buffer/insert-banner-and-buttons
'after 'zemacs/insert-banner-and-buttons)
(ad-activate 'spacemacs-buffer/insert-banner-and-buttons)
(load-file (concat spacemacs-start-directory "core/core-spacemacs-buffer.el"))
(setq dotspacemacs-startup-banner 'official)
(kill-buffer)
(insert "
───█──█─█▀▀█─█▀▀█─█▀▀█─█──█───
───█▀▀█─█▄▄█─█▀▀▀─█▀▀▀─▀▀▀█───
───█──█─█──█─█────█────█▄▄█───
──────────────────────────────
───█▀▀█─█▀▀█─█▀▀█─▀▀█▀▀─█─────
───█▄▄█─█▀▀▀─█▀▀▄───█───█─────
───█──█─█────█──█─▄▄█▄▄─█▄▄───
──────────────────────────────
──█▀▀▀─▄▀▀▀▄─▄▀▀▀▄─█────▄▀▀▀──
──█▀▀▀─█───█─█───█─█────▀▀▀▄──
──█────▀▄▄▄▀─▀▄▄▄▀─█▄▄▄─▄▄▄▀──
──────────────────────────────
──────────▄▄███████▄▄─────────
───────▄███████████████▄──────
────▄██████▀────────▀█████▄───
──▄█████▀──────────────▀████▄─
▄████▀────▄██▄────▄██▄───▀████
██▀───────████────████─────▀██
██────────████────████──────██
██────────▀██▀────▀██▀──────██
██──────────────────────────██
██──█▄──────────────────▄█──██
██──█▀██▄──────────────▄██──██
██──█──▀██▄──────────▄▄█─█──██
██──█────▀████████████▀──█──██
██──█─────█────█────█────█──██
██──█─────█────█────█────█──██
██──██▄───█────█────█──▄██──██
██──██████████████████████──██
██──█─────█────█────█────█──██
██──█─────█────█────█────█──██
██──██────█────█────█───█▀──██
██───▀██████████████████▀───██
██▄───────────────────────▄███
█████▄──────────────────▄█████
─▀███████▄───────────▄██████▀─
────▀█████████████████████▀─── ")
(spacemacs-buffer/goto-buffer)
(spacemacs-buffer//remove-existing-widget-if-exist)))
(defun next-next-NEXT-millennium ()
"Time to rock on!"
(interactive)
(zemacs-buffer-mode -1))
(defvar zemacs--links '(("this one" "http://neovim.io")
("link" "http://cdn.meme.am/instances/500x/67641307.jpg")
("Atom" "http://atom.io/")
("implementation tricks" "http://emacshorrors.com/")))
(defun zemacs//insert-links ()
"Replace bracketed texts by their link counterparts."
(with-current-buffer spacemacs-buffer-name
(save-excursion
(dolist (l zemacs--links)
(re-search-backward (format "\\(\\[%s\\]\\)" (car l)) nil t)
(make-text-button
(match-beginning 1)
(match-end 1)
'type 'help-url
'help-args (cdr l))))))
(defadvice configuration-layer/initialize (before zemacs/initialize activate)
(setq dotspacemacs-startup-banner "~/.emacs.d/core/banners/img/zemacs.png"))
(defadvice spacemacs-buffer//inject-version
(around zemacs/inject-version activate)
(let ((emacs-version "99.9999999")
(dotspacemacs-distribution "zemacs")
(spacemacs-version "af-1.01"))
ad-do-it))
(defadvice spacemacs-buffer/insert-banner-and-buttons
(after zemacs/insert-banner-and-buttons activate)
;; always display the release note
(spacemacs-buffer//insert-release-note-widget
(concat spacemacs-release-notes-directory
spacemacs-buffer-version-info ".txt")))
(add-hook 'emacs-startup-hook 'zemacs-buffer-mode t)
(provide 'zemacs)