From 8d71e5544f11b151395227ede5c44645f36ae19d Mon Sep 17 00:00:00 2001 From: Tristan Hume Date: Fri, 12 Dec 2014 19:59:26 -0500 Subject: [PATCH 01/16] Fancy spacemacs mode buttons --- core/spacemacs-mode.el | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/core/spacemacs-mode.el b/core/spacemacs-mode.el index 6dd19e011cd3..c88f26e2057d 100644 --- a/core/spacemacs-mode.el +++ b/core/spacemacs-mode.el @@ -71,7 +71,7 @@ (require 'solarized) (deftheme solarized-dark "The dark variant of the Solarized colour theme") (deftheme solarized-light "The light variant of the Solarized colour theme")) - (t + (t ;; other themes ;; we assume that the package name is suffixed with `-theme' ;; if not we will handle the special themes as we get issues in the tracker. @@ -96,7 +96,8 @@ ;; banner (switch-to-buffer (get-buffer-create "*spacemacs*")) (let ((buffer-read-only nil)) - (insert-file-contents (concat spacemacs-core-directory "banner.txt"))) + (insert-file-contents (concat spacemacs-core-directory "banner.txt")) + (spacemacs/insert-buttons)) ;; evil and evil-leader must be installed at the beginning of the boot sequence (spacemacs/load-or-install-package 'evil t) (spacemacs/load-or-install-package 'evil-leader t) @@ -142,8 +143,8 @@ If LOG is non-nil a message is displayed in spacemacs-mode buffer." (defun spacemacs/set-font (font size &optional options) (let* ((fontstr (if options - (format "%s-%s:%s" font size options) - (format "%s-%s" font size)))) + (format "%s-%s:%s" font size options) + (format "%s-%s" font size)))) (spacemacs/message (format "Set default font: %s" fontstr)) (add-to-list 'default-frame-alist (cons 'font fontstr)) (set-default-font fontstr))) @@ -177,7 +178,7 @@ SPACEMACS-TITLE-LENGTH. New loading title is displayed by chunk of size LOADING-DOTS-CHUNK-THRESHOLD." (setq spacemacs-loading-counter (1+ spacemacs-loading-counter)) (if (>= spacemacs-loading-counter spacemacs-loading-dots-chunk-threshold) - (progn + (progn (setq spacemacs-loading-counter 0) (let ((i 0)) (while (< i spacemacs-loading-dots-chunk-size) @@ -185,3 +186,22 @@ of size LOADING-DOTS-CHUNK-THRESHOLD." (setq i (1+ i)))) (spacemacs/replace-last-line-of-buffer spacemacs-loading-text) (redisplay)))) + +(defun spacemacs/insert-buttons () + (goto-char (point-max)) + (insert-button "Homepage" 'action + (lambda (b) (browse-url "https://github.com/syl20bnr/spacemacs")) + 'follow-link t) + (insert " ") + (insert-button "Documentation" 'action + (lambda (b) (browse-url "https://github.com/syl20bnr/spacemacs/blob/master/doc/DOCUMENTATION.md")) + 'follow-link t) + (insert " ") + (insert-button "Gitter Chat" 'action + (lambda (b) (browse-url "https://gitter.im/syl20bnr/spacemacs")) + 'follow-link t) + (insert " ") + (insert-button "Messages Buffer" 'action (lambda (b) (switch-to-buffer "*Messages*")) 'follow-link t) + (insert " ") + (insert-button "Spacemacs Folder" 'action (lambda (b) (find-file user-emacs-directory)) 'follow-link t) + (insert "\n\n")) From f7b8bdfe7d165300bd90e53091adf413c892352a Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Fri, 12 Dec 2014 20:58:01 -0500 Subject: [PATCH 02/16] Ignore games/ directory --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index eec059893f50..80bd4b0ff713 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ python-*-docs-html # Private directory private/* !private/README.md +/games/ From 91b900c4376a5cfc275019269a15c641df82cb53 Mon Sep 17 00:00:00 2001 From: Evan Dale Aromin Date: Sat, 13 Dec 2014 01:31:55 +0800 Subject: [PATCH 03/16] OSX contribution layer --- contrib/osx/README.md | 40 ++++++++++++++++++++++++++++++++++++++ contrib/osx/keybindings.el | 17 ++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 contrib/osx/README.md create mode 100644 contrib/osx/keybindings.el diff --git a/contrib/osx/README.md b/contrib/osx/README.md new file mode 100644 index 000000000000..c2b3b336a15b --- /dev/null +++ b/contrib/osx/README.md @@ -0,0 +1,40 @@ +# OSX contribution layer for Spacemacs + +## Description + +Spacemacs is not just emacs+vim. It can have OSX keybindings too! +This layer globally defines common OSX keybindings. ⌘ is set to +`super` and ⌥ is set to `meta`. Aside from that, there's nothing +much, really. + +## Philosophy + +While this layer enables common OSX bindings, it does not implement +OSX navigation keybindings. Spacemacs is meant to be used with evil, +and we encourage you to do so :) + +## Install + +To use this configuration layer, add it to your `~/.spacemacs` + +``` +(setq-default dotspacemacs-configuration-layers '(osx) + "List of contribution to load." +) +``` + +## Key Bindings + +- ⌘ q: Quit +- ⌘ v: Paste +- ⌘ c: Copy +- ⌘ x: Cut +- ⌘ w: Close window +- ⌘ z: Undo +- ⌘ Z: Redo +- ⌃ ⌘ f: Toggle fullscreen + +## Future Work + +- Allow user to choose from either `hyper` or `super` as ⌘. This is an option that is supported cross-platform. +- Configurable option to keep the OSX and spacemacs clipboards separate diff --git a/contrib/osx/keybindings.el b/contrib/osx/keybindings.el new file mode 100644 index 000000000000..7c4388e9e77a --- /dev/null +++ b/contrib/osx/keybindings.el @@ -0,0 +1,17 @@ +(when (equal system-type 'darwin) + ;; Treat option as meta and command as super + (setq mac-option-key-is-meta t) + (setq mac-command-key-is-meta nil) + (setq mac-command-modifier 'super) + (setq mac-option-modifier 'meta) + + ;; Keybindings + (global-set-key (kbd "s-q") 'save-buffers-kill-terminal) + (global-set-key (kbd "s-v") 'yank) + (global-set-key (kbd "s-c") 'kill-ring-save) + (global-set-key (kbd "s-x") 'kill-region) + (global-set-key (kbd "s-w") 'kill-this-buffer) + (global-set-key (kbd "s-z") 'undo-tree-undo) + (global-set-key (kbd "s-s") 'save-buffer) + (global-set-key (kbd "s-Z") 'undo-tree-redo) + (global-set-key (kbd "C-s-f") 'toggle-frame-fullscreen)) From 28a96d90143119a6cc7a08d1a131301ab9a42f70 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Fri, 12 Dec 2014 21:04:33 -0500 Subject: [PATCH 04/16] Center links in spacemacs buffer --- core/spacemacs-mode.el | 1 + 1 file changed, 1 insertion(+) diff --git a/core/spacemacs-mode.el b/core/spacemacs-mode.el index c88f26e2057d..c2653f001d8b 100644 --- a/core/spacemacs-mode.el +++ b/core/spacemacs-mode.el @@ -189,6 +189,7 @@ of size LOADING-DOTS-CHUNK-THRESHOLD." (defun spacemacs/insert-buttons () (goto-char (point-max)) + (insert " ") (insert-button "Homepage" 'action (lambda (b) (browse-url "https://github.com/syl20bnr/spacemacs")) 'follow-link t) From 2e5f635d5bb60178b29a702a6687e2c5497bb019 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Fri, 12 Dec 2014 21:57:44 -0500 Subject: [PATCH 05/16] Refactor OS X layer README and add logos --- contrib/osx/README.md | 32 ++++++++++++++++++++++++-------- contrib/osx/apple.png | Bin 0 -> 27104 bytes contrib/osx/osx.png | Bin 0 -> 17126 bytes 3 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 contrib/osx/apple.png create mode 100644 contrib/osx/osx.png diff --git a/contrib/osx/README.md b/contrib/osx/README.md index c2b3b336a15b..db774f136771 100644 --- a/contrib/osx/README.md +++ b/contrib/osx/README.md @@ -1,5 +1,19 @@ # OSX contribution layer for Spacemacs +![applogo](apple.png)![osxlogo](osx.png) + + +**Table of Contents** + +- [OSX contribution layer for Spacemacs](#osx-contribution-layer-for-spacemacs) + - [Description](#description) + - [Philosophy](#philosophy) + - [Install](#install) + - [Key Bindings](#key-bindings) + - [Future Work](#future-work) + + + ## Description Spacemacs is not just emacs+vim. It can have OSX keybindings too! @@ -25,14 +39,16 @@ To use this configuration layer, add it to your `~/.spacemacs` ## Key Bindings -- ⌘ q: Quit -- ⌘ v: Paste -- ⌘ c: Copy -- ⌘ x: Cut -- ⌘ w: Close window -- ⌘ z: Undo -- ⌘ Z: Redo -- ⌃ ⌘ f: Toggle fullscreen + Key Binding | Description +------------------|------------------------------------------------------------ +⌘ q | Quit +⌘ v | Paste +⌘ c | Copy +⌘ x | Cut +⌘ w | Close window +⌘ z | Undo +⌘ Z | Redo +⌃ ⌘ f | Toggle fullscreen ## Future Work diff --git a/contrib/osx/apple.png b/contrib/osx/apple.png new file mode 100644 index 0000000000000000000000000000000000000000..4fdfe4455d42cc19fcf2563adcf01416268ecddd GIT binary patch literal 27104 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%0D`CHZnBK=o{y} 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 wh)Ce+oETdPlc Date: Fri, 12 Dec 2014 22:09:40 -0500 Subject: [PATCH 06/16] Refactor AutoHotKey layer and add logo --- contrib/lang/autohotkey/README.md | 51 ++++++++++++++++++++++-------- contrib/lang/autohotkey/ahk.png | Bin 0 -> 15564 bytes 2 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 contrib/lang/autohotkey/ahk.png diff --git a/contrib/lang/autohotkey/README.md b/contrib/lang/autohotkey/README.md index f5f63c538405..20b4d5f190ea 100644 --- a/contrib/lang/autohotkey/README.md +++ b/contrib/lang/autohotkey/README.md @@ -1,30 +1,55 @@ -# Autohotkey contribution layer for Spacemacs # +# Autohotkey contribution layer for Spacemacs -Syntax highlighting and Emacs functions for use with [AutoHotkey][www.autohotkey.com] or [AutoHotkey_L][ahkscript.org]. Using a combined implementation of ahk-mode from Xah Lee's `xahk-mode` and Robert Widhopf-Fenk's `autohotkey-mode`. Updated with the latest ahk and ahk_l commands found in the latest revision of [SciTE4AutoHotkey[http://fincs.ahk4.net/scite4ahk/]. +![logo](ahk.png) -Contributed and maintained by [Rich Alesi][https://www.github.com/ralesi]. + +**Table of Contents** -## Features ## +- [Autohotkey contribution layer for Spacemacs](#autohotkey-contribution-layer-for-spacemacs) + - [Description](#description) + - [Features](#features) + - [Install](#install) + - [Key Bindings](#key-bindings) -- **Auto-completion** -- **Documentation Lookup** -- **Execute Code Snippets -- **Correct Indentation and Commenting** + + +## Description + +Syntax highlighting and Emacs functions for use with [AutoHotkey][] or +[AutoHotkey_L][]. + +Using a combined implementation of ahk-mode from Xah Lee's `xahk-mode` +and Robert Widhopf-Fenk's `autohotkey-mode`. Updated with the latest +ahk and ahk_l commands found in the latest revision of +[SciTE4AutoHotkey][]. + +Contributed and maintained by [Rich Alesi][]. + +## Features + +- Auto-completion +- Documentation Lookup +- Execute Code Snippets +- Correct Indentation and Commenting ## Install To use this contribution add it to your `~/.spacemacs` ```elisp -(defvar dotspacemacs-configuration-layers '(autohotkey) +(setq-default dotspacemacs-configuration-layers '(autohotkey) "List of contribution to load." ) ``` ## Key Bindings - Key Binding | Description -------------------|------------------------------------------------------------ -` m D` | open documentation in `browser` -` m E` | execute file with `autohtokey.exe` + Key Binding | Description +--------------------|------------------------------------------------------------ +SPC m D | open documentation in `browser` +SPC m E | execute file with `autohtokey.exe` +[AutoHotkey]: http://www.autohotkey.com +[AutoHotkey_L]: http://ahkscript.org +[SciTE4AutoHotkey]: http://fincs.ahk4.net/scite4ahk/ +[Rich Alesi]: https://www.github.com/ralesi diff --git a/contrib/lang/autohotkey/ahk.png b/contrib/lang/autohotkey/ahk.png new file mode 100644 index 0000000000000000000000000000000000000000..d50e7765d96cf89073e1269f966251e919dd9e72 GIT binary patch literal 15564 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 a3ormM50NV-wMSV10000 Date: Fri, 12 Dec 2014 22:22:33 -0500 Subject: [PATCH 07/16] Documentation for `dotspacemacs-command-key` --- doc/DOCUMENTATION.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/doc/DOCUMENTATION.md b/doc/DOCUMENTATION.md index 0b437a8abd31..9eeb106570d8 100644 --- a/doc/DOCUMENTATION.md +++ b/doc/DOCUMENTATION.md @@ -841,11 +841,16 @@ Example to set it to `jn` (it is important to put it in `dotspacemacs/init`): ## Executing Vim, Emacs and shell commands -Command | Key Binding -:----------:|------------------------------------------------------------------ -Vim | `:` -Emacs | SPC : -Shell | SPC ! + Command | Key Binding +:---------------:|------------------------------------------------------------------ +Vim (ex-command) | `:` +Emacs (M-x) | SPC : +Shell | SPC ! or just ! + +The command key `:` can be easily changed with the variable +`dotspacemacs-command-key` of your `~/.spacemacs`. Note that is will change both +`:` and `SPC :` bindings to keep the symmetry between Vim and Emacs. A good +key can be `,` for example. ## Navigating From d13868cb413c0564dca46f75cc99a6df23d52455 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Fri, 12 Dec 2014 22:22:55 -0500 Subject: [PATCH 08/16] Documentation for `dotspacemacs-smartparens-strict-mode` --- doc/DOCUMENTATION.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/DOCUMENTATION.md b/doc/DOCUMENTATION.md index 9eeb106570d8..d793f754de22 100644 --- a/doc/DOCUMENTATION.md +++ b/doc/DOCUMENTATION.md @@ -1267,6 +1267,21 @@ Text related commands (start with `x`): SPC x w c | count the number of words in the selection region SPC x w C | count the number of occurrences per word in the select region +### Smartparens Strict mode + +[Smartparens][sp] comes with a strict mode which prevents deletion of +parenthesis if the result is unbalanced. + +This mode can be frustrating for novices, this is why it is not enabled by +default. + +It is possible to enable it easily for _all programming modes_ with the +variable `dotspacemacs-smartparens-strict-mode` of you `~/.spacemacs`. + +```elisp +(setq-default dotspacemacs-smartparens-strict-mode t) +``` + ### Change font size The font size of the current buffer can be adjusted with the commands: From f5a200e66ae4501587b80ffc7e751728c621e398 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Fri, 12 Dec 2014 23:47:38 -0500 Subject: [PATCH 09/16] Remove unneeded package powershell-mode.el It overlaps powershell.el --- spacemacs/packages.el | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/spacemacs/packages.el b/spacemacs/packages.el index b28cfc6208f0..70b79ff9b5a6 100644 --- a/spacemacs/packages.el +++ b/spacemacs/packages.el @@ -92,7 +92,6 @@ popwin powerline powershell - powershell-mode projectile puppet-mode ;; not working well for now @@ -1842,12 +1841,7 @@ determine the state to enable when escaping from the insert state.") (defun spacemacs/init-powershell () (use-package powershell - :commands powershell)) - -(defun spacemacs/init-powershell-mode () - (use-package powershell-mode - :defer t - :mode ("\\.ps1\\'" . powershell-mode))) + :defer t)) (defun spacemacs/init-projectile () (use-package projectile From e2634674a997fcc790a3a80649489953e4c8c59a Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Sat, 13 Dec 2014 00:31:01 -0500 Subject: [PATCH 10/16] Add windows-scripts layer for poweshell and dos --- contrib/lang/windows-scripts/README.md | 55 ++++++++++++++++++ contrib/lang/windows-scripts/extensions.el | 28 +++++++++ .../windows-scripts}/extensions/dos/dos.el | 0 contrib/lang/windows-scripts/packages.el | 10 ++++ contrib/lang/windows-scripts/ps.png | Bin 0 -> 88597 bytes spacemacs/extensions.el | 5 -- spacemacs/packages.el | 5 -- 7 files changed, 93 insertions(+), 10 deletions(-) create mode 100644 contrib/lang/windows-scripts/README.md create mode 100644 contrib/lang/windows-scripts/extensions.el rename {spacemacs => contrib/lang/windows-scripts}/extensions/dos/dos.el (100%) create mode 100644 contrib/lang/windows-scripts/packages.el create mode 100644 contrib/lang/windows-scripts/ps.png diff --git a/contrib/lang/windows-scripts/README.md b/contrib/lang/windows-scripts/README.md new file mode 100644 index 000000000000..3fa81976a140 --- /dev/null +++ b/contrib/lang/windows-scripts/README.md @@ -0,0 +1,55 @@ +# Windows Scripting contribution layer for Spacemacs + +![logo](ps.png) + + +**Table of Contents** + +- [Windows Scripting contribution layer for Spacemacs](#windows-scripting-contribution-layer-for-spacemacs) + - [Description](#description) + - [Install](#install) + - [Key Bindings](#key-bindings) + - [Powershell](#powershell) + - [Batch (dos.el)](#batch-dosel) + + + +## Description + +This simple layer adds support for the Powershell scripting language as well +as support for batch files. + +Incuded packages for extensions: +- `.ps1`: [powershell][] +- `.bat`: [dos.el][] + +## Install + +To use this contribution add it to your `~/.spacemacs` + +```elisp +(setq-default dotspacemacs-configuration-layers '(windows-scripts) + "List of contribution to load." +) +``` + +## Key Bindings + +### Powershell + +No useful bindings. + +### Batch (dos.el) + + Key Binding | Description +----------------------|------------------------------------------------------------ +SPC m D | ask for a command and display help +SPC m e b | evaluate buffer +SPC m e B | evaluate buffer with args +SPC m s | insert separator ` & ` +SPC m t | mini snippet to start a batch script +SPC m T | big snippet to start a batch script +SPC m z | toggle outline + +[powershell]: https://github.com/jschaf/powershell.el +[dos.el]: http://www.emacswiki.org/emacs/dos.el diff --git a/contrib/lang/windows-scripts/extensions.el b/contrib/lang/windows-scripts/extensions.el new file mode 100644 index 000000000000..9570a2804553 --- /dev/null +++ b/contrib/lang/windows-scripts/extensions.el @@ -0,0 +1,28 @@ +;; Post extensions are loaded *after* the packages +(defvar windows-scripts-post-extensions '(dos)) + +;; Initialize the extensions + +(defun windows-scripts/init-dos () + (use-package dos + :commands dos-mode + :mode ("\\.bat$" . dos-mode) + :init + (progn + (defun windows-scripts/dos-outline-hook () + (local-set-key (kbd "SPC m z") 'dos-mode) + (defun outline-mouse-select () + "Select position and return to `dos-mode'." + (interactive) + (dos-mode) + (beginning-of-line))) + (add-hook 'outline-mode-hook 'windows-scripts/dos-outline-hook)) + :config + (evil-leader/set-key-for-mode 'dos-mode + "mD" 'dos-help-cmd + "meb" 'dos-run + "meB" 'dos-run-args + "ms" 'dos-sep + "mt" 'dos-template-mini + "mT" 'dos-template + "mz" 'dos-outline))) diff --git a/spacemacs/extensions/dos/dos.el b/contrib/lang/windows-scripts/extensions/dos/dos.el similarity index 100% rename from spacemacs/extensions/dos/dos.el rename to contrib/lang/windows-scripts/extensions/dos/dos.el diff --git a/contrib/lang/windows-scripts/packages.el b/contrib/lang/windows-scripts/packages.el new file mode 100644 index 000000000000..b405281506de --- /dev/null +++ b/contrib/lang/windows-scripts/packages.el @@ -0,0 +1,10 @@ +(defvar windows-scripts-packages + '( + powershell + ) + "List of all packages to install and/or initialize. Built-in packages +which require an initialization must be listed explicitly in the list.") + +(defun windows-scripts/init-powershell () + (use-package powershell + :defer t)) diff --git a/contrib/lang/windows-scripts/ps.png b/contrib/lang/windows-scripts/ps.png new file mode 100644 index 0000000000000000000000000000000000000000..7fcf3db94a7199dc3fdd67026b03ee94092d86be GIT binary patch literal 88597 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

r#9R|PgJi~}q^l>?6+3muMK8snME_tZBks>45p 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 Date: Fri, 12 Dec 2014 21:54:36 -0700 Subject: [PATCH 11/16] Fixed undo-tree-auto-save-history Previous commit with auto-save did not create the directory so it broke undo. --- spacemacs/packages.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spacemacs/packages.el b/spacemacs/packages.el index fc77e0f13ec5..32706045bf87 100644 --- a/spacemacs/packages.el +++ b/spacemacs/packages.el @@ -2079,8 +2079,11 @@ determine the state to enable when escaping from the insert state.") :idle (global-undo-tree-mode) :defer t :init - (setq undo-tree-history-directory-alist + (setq undo-tree-auto-save-history t + undo-tree-history-directory-alist `(("." . ,(concat spacemacs-cache-directory "undo")))) + (unless (file-exists-p (concat spacemacs-cache-directory "undo")) + (make-directory (concat spacemacs-cache-directory "undo"))) (setq undo-tree-visualizer-timestamps t) (setq undo-tree-visualizer-diff t) :config From 9d44a195410be003ff326fd4151d945028a20487 Mon Sep 17 00:00:00 2001 From: ralesi Date: Fri, 12 Dec 2014 15:59:49 -0700 Subject: [PATCH 12/16] Added dotspacemacs persistent-server setting to always keep server open --- core/dotspacemacs.el | 3 +++ core/templates/.spacemacs.template | 2 ++ spacemacs/funcs.el | 33 ++++++++++++++++++++++++++++++ spacemacs/keybindings.el | 4 ++++ 4 files changed, 42 insertions(+) diff --git a/core/dotspacemacs.el b/core/dotspacemacs.el index 30476bc0dee2..b7770803596e 100644 --- a/core/dotspacemacs.el +++ b/core/dotspacemacs.el @@ -33,6 +33,9 @@ it reaches the top or bottom of the screen.") "If non nil pressing 'jk' in insert state, ido or helm will activate the evil leader.") +(defvar dotspacemacs-persistent-server nil + "If non nil advises quit functions to keep server open when quitting.") + (defvar dotspacemacs-smartparens-strict-mode nil "If non-nil smartparens-strict-mode will be enabled in programming modes.") diff --git a/core/templates/.spacemacs.template b/core/templates/.spacemacs.template index f29c73e1d97b..b8c2ec523076 100644 --- a/core/templates/.spacemacs.template +++ b/core/templates/.spacemacs.template @@ -42,6 +42,8 @@ dotspacemacs-feature-toggle-leader-on-jk nil ;; If non-nil smartparens-strict-mode will be enabled in programming modes. dotspacemacs-smartparens-strict-mode nil + ;; If non nil advises quit functions to keep server open when quitting. + dotspacemacs-persistent-server nil ;; The default package repository used if no explicit repository has been ;; specified with an installed package. ;; Not used for now. diff --git a/spacemacs/funcs.el b/spacemacs/funcs.el index f094e15ad0a4..985bda871b43 100644 --- a/spacemacs/funcs.el +++ b/spacemacs/funcs.el @@ -583,6 +583,39 @@ kill internal buffers too." (string-match regexp name)) (kill-buffer buffer))))) +;; advise to prevent server from closing + +(defvar spacemacs-really-kill-emacs nil + "prevent window manager close from closing instance.") + +(defadvice kill-emacs (around spacemacs-really-exit activate) + "Only kill emacs if a prefix is set" + (if (or spacemacs-really-kill-emacs (not dotspacemacs-persistent-server)) + ad-do-it) + (spacemacs/frame-killer)) + +(defadvice save-buffers-kill-emacs (around spacemacs-really-exit activate) + "Only kill emacs if a prefix is set" + (if (or spacemacs-really-kill-emacs (not dotspacemacs-persistent-server)) + ad-do-it) + (spacemacs/frame-killer)) + +(defun spacemacs/save-buffers-kill-emacs () + (interactive) + (setq spacemacs-really-kill-emacs t) + (save-buffers-kill-emacs)) + +(defun spacemacs/kill-emacs () + (interactive) + (setq spacemacs-really-kill-emacs t) + (kill-emacs)) + +(defun spacemacs/frame-killer () + "Exit server buffers and hide the main Emacs window" + (interactive) + (server-edit) + (make-frame-invisible nil 1)) + ;; A small minor mode to use a big fringe ;; from http://bzg.fr/emacs-strip-tease.html (defvar bzg-big-fringe-mode nil) diff --git a/spacemacs/keybindings.el b/spacemacs/keybindings.el index 631897fa8cd8..948b03fc4ab4 100644 --- a/spacemacs/keybindings.el +++ b/spacemacs/keybindings.el @@ -120,6 +120,10 @@ "tL" 'visual-line-mode "tM" 'toggle-frame-maximized "tn" 'global-linum-mode) +;; quit ----------------------------------------------------------------------- +(evil-leader/set-key + "q s" 'spacemacs-save-buffers-kill-emacs + "q q" 'spacemacs-kill-emacs) ;; window --------------------------------------------------------------------- ;; (evil-leader/set-key "wb" 'evenly-split-window-right) (evil-leader/set-key From e8f3a42de7453a23507c493b2b39771247ea541c Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Sat, 13 Dec 2014 00:50:25 -0500 Subject: [PATCH 13/16] Documentation for `dotspacemacs-persistent-server` --- doc/DOCUMENTATION.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/doc/DOCUMENTATION.md b/doc/DOCUMENTATION.md index d793f754de22..e01f98dfa8f1 100644 --- a/doc/DOCUMENTATION.md +++ b/doc/DOCUMENTATION.md @@ -83,6 +83,7 @@ - [Helm-swoop](#helm-swoop) - [Editing](#editing) - [Text manipulation commands](#text-manipulation-commands) + - [Smartparens Strict mode](#smartparens-strict-mode) - [Change font size](#change-font-size) - [Increase/Decrease numbers](#increasedecrease-numbers) - [Spell checking](#spell-checking) @@ -113,6 +114,9 @@ - [Python](#python) - [JavaScript](#javascript) - [rcirc](#rcirc) +- [Emacs Server](#emacs-server) + - [Connecting to the Emacs server](#connecting-to-the-emacs-server) + - [Keeping the server alive](#keeping-the-server-alive) - [Tips](#tips) - [Updating Spacemacs](#updating-spacemacs) - [Tips for Emacs users](#tips-for-emacs-users) @@ -1826,6 +1830,32 @@ More featured JavaScript support is provided by the javascript contribution. Ple CTRL+j | next item in command history CTRL+k | previous item in command history +# Emacs Server + +`Spacemacs` starts a server at launch. This server is killed whenever you close +your Emacs windows. + +## Connecting to the Emacs server + +TODO + +## Keeping the server alive + +It is possible to keep the server alive when you close Emacs by setting the +variable `dotspacemacs-persistent-server` to `t` in your `~./spacemacs`. + +```elisp +(setq-default dotspacemacs-persistent-server t) +``` + +When this variable is set to `t`, the only way to quit Emacs _and_ kill the +server is to use the following bindings: + + Key Binding | Description +-------------------|------------------------------------------------------------ +SPC q q | Quit Emacs and kill the server +SPC q s | Save the buffers, quit Emacs and kill the server + # Tips ## Updating Spacemacs From ea77bc76c9b905319bdf9b2fbcb4f719409f0811 Mon Sep 17 00:00:00 2001 From: ralesi Date: Thu, 11 Dec 2014 10:13:17 -0700 Subject: [PATCH 14/16] Added frame size adjustment to scaling microstate --- spacemacs/keybindings.el | 6 ++--- spacemacs/packages.el | 55 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 3 deletions(-) diff --git a/spacemacs/keybindings.el b/spacemacs/keybindings.el index 948b03fc4ab4..302df2b8f502 100644 --- a/spacemacs/keybindings.el +++ b/spacemacs/keybindings.el @@ -154,9 +154,9 @@ "ww" 'other-window) ;; text ----------------------------------------------------------------------- (evil-leader/set-key - "x=" 'spacemacs/reset-font-size - "x+" 'spacemacs/scale-up-font - "x-" 'spacemacs/scale-down-font + "zx=" 'spacemacs/reset-font-size + "zx+" 'spacemacs/scale-up-font + "zx-" 'spacemacs/scale-down-font "xdw" 'delete-trailing-whitespace "xtc" 'transpose-chars "xtl" 'transpose-lines diff --git a/spacemacs/packages.el b/spacemacs/packages.el index 32706045bf87..8e0380cf23e2 100644 --- a/spacemacs/packages.el +++ b/spacemacs/packages.el @@ -126,6 +126,7 @@ window-numbering yasnippet zenburn-theme + zoom-frm ) "List of all packages to install and/or initialize. Built-in packages which require an initialization must be listed explicitly in the list.") @@ -2161,3 +2162,57 @@ determine the state to enable when escaping from the insert state.") (defun spacemacs/init-zenburn-theme () (use-package zenburn-theme :defer t)) + +(defun spacemacs/init-zoom-frm () + (use-package zoom-frm + :config + (progn + (defun spacemacs/zoom-frame-overlay-map () + "Set a temporary overlay map to easily change the font size." + (set-temporary-overlay-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "+") 'spacemacs/zoom-in-frame) + (define-key map (kbd "-") 'spacemacs/zoom-out-frame) + (define-key map (kbd "=") 'spacemacs/reset-zoom) + map) t)) + + (defun spacemacs/zoom-frame-micro-state-doc () + "Display a short documentation in the mini buffer." + (echo "Zoom Frame micro-state + + to zoom frame in + - to zoom frame out + = to reset zoom +Press any other key to exit.")) + + (defun spacemacs/zoom-in-frame () + "Zoom in frame." + (interactive) + (spacemacs/zoom-in-or-out 1)) + + (defun spacemacs/zoom-out-frame () + "Zoom out frame." + (interactive) + (spacemacs/zoom-in-or-out -1)) + + (defun spacemacs/reset-zoom () + "Reset the zoom." + (interactive) + (spacemacs/zoom-in-or-out 0)) + + (defun spacemacs/zoom-in-or-out (direction) + "Zoom the buffer in/out. If DIRECTION is positive or zero the frame text is enlarged, +otherwise it is reduced." + (interactive) + (if (eq direction 0) + (zoom-frm-unzoom) + (if (< direction 0) + (zoom-frm-out) + (zoom-frm-in))) + (spacemacs/zoom-frame-overlay-map) + (spacemacs/zoom-frame-micro-state-doc)) + (evil-leader/set-key + "zf+" 'spacemacs/zoom-in-frame + "zf-" 'spacemacs/zoom-out-frame + "zf=" 'spacemacs/reset-zoom) + ) + )) From e62ce8915b4f07c11b6719ef19f8dfb5de9b6022 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Sat, 13 Dec 2014 01:04:28 -0500 Subject: [PATCH 15/16] Add :defer and move :config to :init for zoom-frm init --- spacemacs/packages.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spacemacs/packages.el b/spacemacs/packages.el index 8e0380cf23e2..4f694a8e479d 100644 --- a/spacemacs/packages.el +++ b/spacemacs/packages.el @@ -2165,7 +2165,8 @@ determine the state to enable when escaping from the insert state.") (defun spacemacs/init-zoom-frm () (use-package zoom-frm - :config + :defer t + :init (progn (defun spacemacs/zoom-frame-overlay-map () "Set a temporary overlay map to easily change the font size." From 7300ceb608de5f0b491128a798a055e0fae995d1 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Sat, 13 Dec 2014 01:05:09 -0500 Subject: [PATCH 16/16] Documentation for zoom-frm --- doc/DOCUMENTATION.md | 44 +++++++++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/doc/DOCUMENTATION.md b/doc/DOCUMENTATION.md index e01f98dfa8f1..e7efd6d09d0e 100644 --- a/doc/DOCUMENTATION.md +++ b/doc/DOCUMENTATION.md @@ -84,7 +84,9 @@ - [Editing](#editing) - [Text manipulation commands](#text-manipulation-commands) - [Smartparens Strict mode](#smartparens-strict-mode) - - [Change font size](#change-font-size) + - [Zooming](#zooming) + - [Text](#text) + - [Frame](#frame) - [Increase/Decrease numbers](#increasedecrease-numbers) - [Spell checking](#spell-checking) - [Region selection](#region-selection) @@ -1286,19 +1288,39 @@ variable `dotspacemacs-smartparens-strict-mode` of you `~/.spacemacs`. (setq-default dotspacemacs-smartparens-strict-mode t) ``` -### Change font size +### Zooming + +#### Text The font size of the current buffer can be adjusted with the commands: -Key Binding | Description ----------------------|------------------------------------------------------------ -SPC x + | scale up the font and initiate the font scaling micro-state -SPC x - | scale down the font and initiate the font scaling micro-state -SPC x = | reset the font size (no scaling) and initiate the font scaling micro-state -+ | increase the font size -- | decrease the font size -= | reset the font size -Any other key | leave the font scaling micro-state +Key Binding | Description +-----------------------|------------------------------------------------------------ +SPC z x + | scale up the font and initiate the font scaling micro-state +SPC z x - | scale down the font and initiate the font scaling micro-state +SPC z x = | reset the font size (no scaling) and initiate the font scaling micro-state ++ | increase the font size +- | decrease the font size += | reset the font size +Any other key | leave the font scaling micro-state + +Note that _only_ the text of the current buffer is scaled, the other buffers, +the mode-line and the minibuffer are not affected. To zoom the whole content of +a frame use the `zoom frame` bindings (see next section). + +#### Frame + +You can zoom in and out the whole content of the frame with the commands: + +Key Binding | Description +-----------------------|------------------------------------------------------------ +SPC z f + | zoom in the frame content +SPC z f - | zoom out the frame content +SPC z f = | reset the frame content size ++ | zoom in +- | zoom out += | reset zoom +Any other key | leave the zoom frame micro-state ### Increase/Decrease numbers