mirror of
https://github.com/larstvei/dot-emacs.git
synced 2024-11-26 07:28:31 +00:00
checks dependencies in package section.
This commit is contained in:
parent
6774efff6e
commit
0f18bb1fe6
90
init.el
90
init.el
@ -10,7 +10,6 @@ tangled, and the tangled file is compiled."
|
||||
(add-hook 'after-save-hook 'init-hook)
|
||||
|
||||
(require 'package)
|
||||
(package-initialize)
|
||||
|
||||
(add-to-list 'package-archives
|
||||
'("MELPA" . "http://melpa.milkbox.net/packages/") t)
|
||||
@ -36,6 +35,12 @@ PACKAGE is installed and the current version is deleted."
|
||||
(package-desc-vers (cdr pkg-desc)))))
|
||||
(package-install package))))
|
||||
|
||||
(defun dependencies (package)
|
||||
"Returns a list of dependencies from a given PACKAGE."
|
||||
(let* ((pkg-desc (assq package package-alist))
|
||||
(reqs (and pkg-desc (package-desc-reqs (cdr pkg-desc)))))
|
||||
(mapcar 'car reqs)))
|
||||
|
||||
(defvar days-between-updates 1)
|
||||
(defvar do-package-update-on-init t)
|
||||
(defvar package-last-update-file
|
||||
@ -69,36 +74,46 @@ PACKAGE is installed and the current version is deleted."
|
||||
(y-or-n-p "Update all packages?"))
|
||||
(package-refresh-contents)
|
||||
|
||||
(dolist (package
|
||||
'(ac-geiser ; Auto-complete backend for geiser
|
||||
ac-slime ; An auto-complete source using slime completions
|
||||
ace-jump-mode ; quick cursor location minor mode
|
||||
auto-compile ; automatically compile Emacs Lisp libraries
|
||||
auto-complete ; auto completion
|
||||
elscreen ; window session manager
|
||||
expand-region ; Increase selected region by semantic units
|
||||
flx-ido ; flx integration for ido
|
||||
ido-vertical-mode ; Makes ido-mode display vertically.
|
||||
geiser ; GNU Emacs and Scheme talk to each other
|
||||
haskell-mode ; A Haskell editing mode
|
||||
jedi ; Python auto-completion for Emacs
|
||||
magit ; control Git from Emacs
|
||||
markdown-mode ; Emacs Major mode for Markdown-formatted files.
|
||||
matlab-mode ; MATLAB integration with Emacs.
|
||||
monokai-theme ; A fruity color theme for Emacs.
|
||||
move-text ; Move current line or region with M-up or M-down
|
||||
multiple-cursors ; Multiple cursors for Emacs.
|
||||
org ; Outline-based notes management and organizer
|
||||
paredit ; minor mode for editing parentheses
|
||||
powerline ; Rewrite of Powerline
|
||||
pretty-lambdada ; the word `lambda' as the Greek letter.
|
||||
smex ; M-x interface with Ido-style fuzzy matching.
|
||||
undo-tree)) ; Treat undo history as a tree
|
||||
(upgrade-or-install-package package))
|
||||
(let* ((packages
|
||||
'(ac-geiser ; Auto-complete backend for geiser
|
||||
ac-slime ; An auto-complete source using slime completions
|
||||
ace-jump-mode ; quick cursor location minor mode
|
||||
auto-compile ; automatically compile Emacs Lisp libraries
|
||||
auto-complete ; auto completion
|
||||
elscreen ; window session manager
|
||||
expand-region ; Increase selected region by semantic units
|
||||
flx-ido ; flx integration for ido
|
||||
ido-vertical-mode ; Makes ido-mode display vertically.
|
||||
geiser ; GNU Emacs and Scheme talk to each other
|
||||
haskell-mode ; A Haskell editing mode
|
||||
jedi ; Python auto-completion for Emacs
|
||||
magit ; control Git from Emacs
|
||||
markdown-mode ; Emacs Major mode for Markdown-formatted files.
|
||||
matlab-mode ; MATLAB integration with Emacs.
|
||||
monokai-theme ; A fruity color theme for Emacs.
|
||||
move-text ; Move current line or region with M-up or M-down
|
||||
multiple-cursors ; Multiple cursors for Emacs.
|
||||
org ; Outline-based notes management and organizer
|
||||
paredit ; minor mode for editing parentheses
|
||||
powerline ; Rewrite of Powerline
|
||||
pretty-lambdada ; the word `lambda' as the Greek letter.
|
||||
smex ; M-x interface with Ido-style fuzzy matching.
|
||||
undo-tree)) ; Treat undo history as a tree
|
||||
;; Fetch dependencies from all packages.
|
||||
(reqs (mapcar 'dependencies packages))
|
||||
;; Append these to the original list, and remove any duplicates.
|
||||
(packages (delete-dups (apply 'append packages reqs))))
|
||||
|
||||
(dolist (package packages)
|
||||
(upgrade-or-install-package package)))
|
||||
|
||||
;; This package is only relevant for Mac OS X.
|
||||
(when (memq window-system '(mac ns))
|
||||
(upgrade-or-install-package 'exec-path-from-shell)))
|
||||
|
||||
(setq package-enable-at-startup nil)
|
||||
(package-initialize)
|
||||
|
||||
(when (memq window-system '(mac ns))
|
||||
(setq mac-option-modifier nil
|
||||
mac-command-modifier 'meta
|
||||
@ -115,6 +130,7 @@ PACKAGE is installed and the current version is deleted."
|
||||
ox-md ; Markdown exporter (from org)
|
||||
pretty-lambdada ; show 'lambda' as the greek letter.
|
||||
recentf ; recently opened files
|
||||
smex ; M-x interface Ido-style.
|
||||
tex-mode)) ; TeX, LaTeX, and SliTeX mode commands
|
||||
(require feature))
|
||||
|
||||
@ -283,17 +299,17 @@ PACKAGE is installed and the current version is deleted."
|
||||
(when (fboundp 'imagemagick-register-types)
|
||||
(imagemagick-register-types))
|
||||
|
||||
(defadvice mu4e (before show-mu4e (arg) activate)
|
||||
"Always show mu4e in fullscreen and remember window
|
||||
configuration."
|
||||
(unless arg
|
||||
(window-configuration-to-register :mu4e-fullscreen)
|
||||
(mu4e-update-mail-and-index t)
|
||||
(delete-other-windows)))
|
||||
;; (defadvice mu4e (before show-mu4e (arg) activate)
|
||||
;; "Always show mu4e in fullscreen and remember window
|
||||
;; configuration."
|
||||
;; (unless arg
|
||||
;; (window-configuration-to-register :mu4e-fullscreen)
|
||||
;; (mu4e-update-mail-and-index t)
|
||||
;; (delete-other-windows)))
|
||||
|
||||
(defadvice mu4e-quit (after restore-windows nil activate)
|
||||
"Restore window configuration."
|
||||
(jump-to-register :mu4e-fullscreen))
|
||||
;; (defadvice mu4e-quit (after restore-windows nil activate)
|
||||
;; "Restore window configuration."
|
||||
;; (jump-to-register :mu4e-fullscreen))
|
||||
|
||||
;; Overwrite the native 'compose-mail' binding to 'show-mu4e'.
|
||||
(global-set-key (kbd "C-x m") 'mu4e))
|
||||
|
108
init.org
108
init.org
@ -41,7 +41,6 @@
|
||||
|
||||
#+BEGIN_SRC emacs-lisp :tangle yes
|
||||
(require 'package)
|
||||
(package-initialize)
|
||||
#+END_SRC
|
||||
|
||||
Packages can be fetched from different mirrors, [[http://melpa.milkbox.net/#/][melpa]] is the largest
|
||||
@ -84,6 +83,16 @@
|
||||
(package-install package))))
|
||||
#+END_SRC
|
||||
|
||||
Also, we will need a function to find all dependencies from a given package.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp :tangle yes
|
||||
(defun dependencies (package)
|
||||
"Returns a list of dependencies from a given PACKAGE."
|
||||
(let* ((pkg-desc (assq package package-alist))
|
||||
(reqs (and pkg-desc (package-desc-reqs (cdr pkg-desc)))))
|
||||
(mapcar 'car reqs)))
|
||||
#+END_SRC
|
||||
|
||||
The =package-refresh-contents= function downloads archive descriptions,
|
||||
this is a major bottleneck in this configuration. To avoid this we can
|
||||
try to only check for updates once every day or so. Here are three
|
||||
@ -140,35 +149,45 @@
|
||||
(y-or-n-p "Update all packages?"))
|
||||
(package-refresh-contents)
|
||||
|
||||
(dolist (package
|
||||
'(ac-geiser ; Auto-complete backend for geiser
|
||||
ac-slime ; An auto-complete source using slime completions
|
||||
ace-jump-mode ; quick cursor location minor mode
|
||||
auto-compile ; automatically compile Emacs Lisp libraries
|
||||
auto-complete ; auto completion
|
||||
elscreen ; window session manager
|
||||
expand-region ; Increase selected region by semantic units
|
||||
flx-ido ; flx integration for ido
|
||||
ido-vertical-mode ; Makes ido-mode display vertically.
|
||||
geiser ; GNU Emacs and Scheme talk to each other
|
||||
haskell-mode ; A Haskell editing mode
|
||||
jedi ; Python auto-completion for Emacs
|
||||
magit ; control Git from Emacs
|
||||
markdown-mode ; Emacs Major mode for Markdown-formatted files.
|
||||
matlab-mode ; MATLAB integration with Emacs.
|
||||
monokai-theme ; A fruity color theme for Emacs.
|
||||
move-text ; Move current line or region with M-up or M-down
|
||||
multiple-cursors ; Multiple cursors for Emacs.
|
||||
org ; Outline-based notes management and organizer
|
||||
paredit ; minor mode for editing parentheses
|
||||
powerline ; Rewrite of Powerline
|
||||
pretty-lambdada ; the word `lambda' as the Greek letter.
|
||||
smex ; M-x interface with Ido-style fuzzy matching.
|
||||
undo-tree)) ; Treat undo history as a tree
|
||||
(upgrade-or-install-package package))
|
||||
(let* ((packages
|
||||
'(ac-geiser ; Auto-complete backend for geiser
|
||||
ac-slime ; An auto-complete source using slime completions
|
||||
ace-jump-mode ; quick cursor location minor mode
|
||||
auto-compile ; automatically compile Emacs Lisp libraries
|
||||
auto-complete ; auto completion
|
||||
elscreen ; window session manager
|
||||
expand-region ; Increase selected region by semantic units
|
||||
flx-ido ; flx integration for ido
|
||||
ido-vertical-mode ; Makes ido-mode display vertically.
|
||||
geiser ; GNU Emacs and Scheme talk to each other
|
||||
haskell-mode ; A Haskell editing mode
|
||||
jedi ; Python auto-completion for Emacs
|
||||
magit ; control Git from Emacs
|
||||
markdown-mode ; Emacs Major mode for Markdown-formatted files.
|
||||
matlab-mode ; MATLAB integration with Emacs.
|
||||
monokai-theme ; A fruity color theme for Emacs.
|
||||
move-text ; Move current line or region with M-up or M-down
|
||||
multiple-cursors ; Multiple cursors for Emacs.
|
||||
org ; Outline-based notes management and organizer
|
||||
paredit ; minor mode for editing parentheses
|
||||
powerline ; Rewrite of Powerline
|
||||
pretty-lambdada ; the word `lambda' as the Greek letter.
|
||||
smex ; M-x interface with Ido-style fuzzy matching.
|
||||
undo-tree)) ; Treat undo history as a tree
|
||||
;; Fetch dependencies from all packages.
|
||||
(reqs (mapcar 'dependencies packages))
|
||||
;; Append these to the original list, and remove any duplicates.
|
||||
(packages (delete-dups (apply 'append packages reqs))))
|
||||
|
||||
(dolist (package packages)
|
||||
(upgrade-or-install-package package)))
|
||||
|
||||
;; This package is only relevant for Mac OS X.
|
||||
(when (memq window-system '(mac ns))
|
||||
(upgrade-or-install-package 'exec-path-from-shell)))
|
||||
|
||||
(setq package-enable-at-startup nil)
|
||||
(package-initialize)
|
||||
#+END_SRC
|
||||
|
||||
** Mac OS X
|
||||
@ -204,6 +223,7 @@
|
||||
ox-md ; Markdown exporter (from org)
|
||||
pretty-lambdada ; show 'lambda' as the greek letter.
|
||||
recentf ; recently opened files
|
||||
smex ; M-x interface Ido-style.
|
||||
tex-mode)) ; TeX, LaTeX, and SliTeX mode commands
|
||||
(require feature))
|
||||
#+END_SRC
|
||||
@ -475,11 +495,11 @@
|
||||
|
||||
#+BEGIN_SRC emacs-lisp :tangle yes
|
||||
(defvar load-mail-setup nil)
|
||||
|
||||
|
||||
(when load-mail-setup
|
||||
;; We need mu4e
|
||||
(require 'mu4e)
|
||||
|
||||
|
||||
;; Some basic mu4e settings.
|
||||
(setq mu4e-maildir "~/.ifimail" ; top-level Maildir
|
||||
mu4e-sent-folder "/INBOX.Sent" ; folder for sent messages
|
||||
@ -493,7 +513,7 @@
|
||||
mu4e-view-show-images t ; view images
|
||||
mu4e-html2text-command
|
||||
"html2text -utf8") ; use utf-8
|
||||
|
||||
|
||||
;; Setup for sending mail.
|
||||
(setq user-full-name
|
||||
"Lars Tveito" ; Your full name
|
||||
@ -505,23 +525,23 @@
|
||||
smtpmail-stream-type 'ssl ; Protocol used for sending
|
||||
send-mail-function 'smtpmail-send-it ; Use smpt to send
|
||||
mail-user-agent 'mu4e-user-agent) ; Use mu4e!
|
||||
|
||||
|
||||
;; Register file types that can be handled by ImageMagick.
|
||||
(when (fboundp 'imagemagick-register-types)
|
||||
(imagemagick-register-types))
|
||||
|
||||
(defadvice mu4e (before show-mu4e (arg) activate)
|
||||
"Always show mu4e in fullscreen and remember window
|
||||
configuration."
|
||||
(unless arg
|
||||
(window-configuration-to-register :mu4e-fullscreen)
|
||||
(mu4e-update-mail-and-index t)
|
||||
(delete-other-windows)))
|
||||
|
||||
(defadvice mu4e-quit (after restore-windows nil activate)
|
||||
"Restore window configuration."
|
||||
(jump-to-register :mu4e-fullscreen))
|
||||
|
||||
|
||||
;; (defadvice mu4e (before show-mu4e (arg) activate)
|
||||
;; "Always show mu4e in fullscreen and remember window
|
||||
;; configuration."
|
||||
;; (unless arg
|
||||
;; (window-configuration-to-register :mu4e-fullscreen)
|
||||
;; (mu4e-update-mail-and-index t)
|
||||
;; (delete-other-windows)))
|
||||
|
||||
;; (defadvice mu4e-quit (after restore-windows nil activate)
|
||||
;; "Restore window configuration."
|
||||
;; (jump-to-register :mu4e-fullscreen))
|
||||
|
||||
;; Overwrite the native 'compose-mail' binding to 'show-mu4e'.
|
||||
(global-set-key (kbd "C-x m") 'mu4e))
|
||||
#+END_SRC
|
||||
|
BIN
powerline.png
BIN
powerline.png
Binary file not shown.
Before Width: | Height: | Size: 326 KiB After Width: | Height: | Size: 329 KiB |
Loading…
Reference in New Issue
Block a user