aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emacs/custom.el3
-rw-r--r--emacs/init.html141
-rw-r--r--emacs/init.org101
3 files changed, 158 insertions, 87 deletions
diff --git a/emacs/custom.el b/emacs/custom.el
index 432ab18..af4867b 100644
--- a/emacs/custom.el
+++ b/emacs/custom.el
@@ -7,8 +7,9 @@
["#1c1c1c" "#d78787" "#b9dc92" "#ffffaf" "#87afd7" "#875f87" "#dfafdf" "#d0d0d0"])
'(custom-safe-themes
(quote
- ("8e6f5b61626315a98a6b38acfe966800777bf6a1841aa2b812b471772cc17114" "5869e98ef7446c9e2283e5788c0f6e2790676bdb52e9e1e112bb74e2415733c4" "5a3f33eefbcf2a3098bafd22d7ad44358e66c3e844797e7bf9ef552a08dfeb6f" default)))
+ ("7e69e41a60afea0bea1e5f7a89416466db331ec45cbafe47ebec694411c997b8" "3762f105d8ea307cec0ee7cc36dcbce1ab0009ca1ae448fd07e8e8e65647431f" "75080b8936556e23444bd76fcfc042e484a50a403ccb7f36fd190c21f7bf8941" "e2669e7d32201debd97395277167b6a1d93606b9445ebce01b9f878eb980e200" "92eb47cefb2f03abaaaa52c60a0b89845361577c2201d3399d19b944828505f4" "62c1fac02f61eaad07bf39fd461f5c78ee3424ba87a1f5fe91b1bea25475f327" "62f08bc59e1ac24e6df5b5b01fea2da24f2fec201b285ccda9991b7052a3a46a" "ce1c38b72f45eed22f3dfaf7f3f0df4b0b6ed975cc5d2012fb1aad13e8055840" "e8b0224a3bd5da096120bf19c976a29cfe67af41bfe73171348bfe99ee0da62d" "ad1c0d9498ad9344082d47e3a1bb6b75f0d004e0ae8361613b0c9963b23fbb4d" "8e6f5b61626315a98a6b38acfe966800777bf6a1841aa2b812b471772cc17114" "5869e98ef7446c9e2283e5788c0f6e2790676bdb52e9e1e112bb74e2415733c4" "5a3f33eefbcf2a3098bafd22d7ad44358e66c3e844797e7bf9ef552a08dfeb6f" default)))
'(delete-selection-mode nil)
+ '(electric-indent-mode t)
'(magit-commit-arguments (quote ("--all" "--verbose" "--signoff")))
'(magit-log-arguments (quote ("--graph" "--color" "--decorate" "-n256")))
'(markdown-command "/usr/bin/markdown-calibre")
diff --git a/emacs/init.html b/emacs/init.html
index 10cfed1..ee04228 100644
--- a/emacs/init.html
+++ b/emacs/init.html
@@ -4,7 +4,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>mssola's GNU Emacs configuration</title>
-<!-- 2017-01-30 Mon 10:37 -->
+<!-- 2017-02-02 Thu 15:56 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Miquel Sabaté Solà" />
@@ -183,9 +183,10 @@ for the JavaScript code in this tag.
</li>
<li><a href="#sec-14">IRC</a></li>
<li><a href="#sec-15">Languages</a></li>
-<li><a href="#sec-16">Misc</a></li>
-<li><a href="#sec-17">Credits</a></li>
-<li><a href="#sec-18">License</a></li>
+<li><a href="#sec-16">WoMan</a></li>
+<li><a href="#sec-17">Misc</a></li>
+<li><a href="#sec-18">Credits</a></li>
+<li><a href="#sec-19">License</a></li>
</ul>
</div>
</div>
@@ -821,22 +822,21 @@ buffers.
<div class="org-src-container">
-<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">erc-helm-buffer-list</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-erc-helm-buffer-list</span> <span class="org-rainbow-delimiters-depth-2">()</span>
<span class="org-doc">"Returns a list with the ERC buffers."</span>
<span class="org-rainbow-delimiters-depth-2">(</span>mapcar 'buffer-name <span class="org-rainbow-delimiters-depth-3">(</span>erc-buffer-list<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> helm-source-erc-channel-list
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> mssola-helm-source-erc-channel-list
'<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span>name . <span class="org-string">"ERC Channels"</span><span class="org-rainbow-delimiters-depth-3">)</span>
- <span class="org-rainbow-delimiters-depth-3">(</span>candidates . erc-helm-buffer-list<span class="org-rainbow-delimiters-depth-3">)</span>
- <span class="org-rainbow-delimiters-depth-3">(</span>action . helm-switch-to-buffer<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>candidates . mssola-erc-helm-buffer-list<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>action . switch-to-buffer<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">erc-helm-switch-buffer</span> <span class="org-rainbow-delimiters-depth-2">()</span>
- <span class="org-doc">"Use helm to select an active ERC buffer. Replaces erc-iswitchb, which</span>
-<span class="org-doc">doesn't work for me."</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-erc-helm-switch-buffer</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"Use helm to select an active ERC buffer."</span>
<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-2">)</span>
- <span class="org-rainbow-delimiters-depth-2">(</span>helm <span class="org-builtin">:sources</span> '<span class="org-rainbow-delimiters-depth-3">(</span>helm-source-erc-channel-list<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>helm <span class="org-builtin">:sources</span> '<span class="org-rainbow-delimiters-depth-3">(</span>mssola-helm-source-erc-channel-list<span class="org-rainbow-delimiters-depth-3">)</span>
<span class="org-builtin">:buffer</span> <span class="org-string">"*helm-erc-channels*"</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">mssola-find-file</span> <span class="org-rainbow-delimiters-depth-2">()</span>
@@ -845,7 +845,7 @@ buffers.
<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-2">)</span>
<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-3">(</span>string= major-mode <span class="org-string">"erc-mode"</span><span class="org-rainbow-delimiters-depth-3">)</span>
- <span class="org-rainbow-delimiters-depth-3">(</span>erc-helm-switch-buffer<span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-3">(</span>mssola-erc-helm-switch-buffer<span class="org-rainbow-delimiters-depth-3">)</span>
<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">condition-case</span> nil
<span class="org-rainbow-delimiters-depth-4">(</span>helm-projectile-find-file<span class="org-rainbow-delimiters-depth-4">)</span>
<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-warning">error</span>
@@ -2041,71 +2041,67 @@ I'm giving ERC a chance. First of all, I'm setting up basic stuff.
<span class="org-rainbow-delimiters-depth-2">(</span>erc-track-mode t<span class="org-rainbow-delimiters-depth-2">)</span>
- <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> erc-hide-list '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"PART"</span> <span class="org-string">"QUIT"</span> <span class="org-string">"JOIN"</span><span class="org-rainbow-delimiters-depth-3">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> erc-hide-list '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"PART"</span><span class="org-rainbow-delimiters-depth-3">)</span>
erc-prompt <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-4">()</span> <span class="org-rainbow-delimiters-depth-4">(</span>concat <span class="org-rainbow-delimiters-depth-5">(</span>buffer-name<span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-string">"&gt;"</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
erc-track-exclude-types '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"JOIN"</span> <span class="org-string">"NICK"</span> <span class="org-string">"PART"</span> <span class="org-string">"QUIT"</span> <span class="org-string">"MODE"</span><span class="org-rainbow-delimiters-depth-3">)</span>
erc-server-coding-system '<span class="org-rainbow-delimiters-depth-3">(</span>utf-8 . utf-8<span class="org-rainbow-delimiters-depth-3">)</span>
erc-kill-buffer-on-part t
erc-kill-queries-on-quit t
erc-kill-server-buffer-on-quit t
- erc-fill-column 130
+ erc-fill-column 100
+ erc-fill-prefix <span class="org-string">""</span>
erc-log-channels t
erc-log-write-after-insert t
erc-log-insert-log-on-open nil
- erc-timestamp-format <span class="org-string">"%s "</span>
- erc-hide-timestamps t
+ erc-log-channels-directory <span class="org-string">"~/.emacs.d/erc/"</span>
+ erc-timestamp-format <span class="org-string">"[%H:%M] "</span>
erc-insert-timestamp-function 'erc-insert-timestamp-left
erc-insert-away-timestamp-function 'erc-insert-timestamp-left
+ erc-hide-timestamps nil
erc-whowas-on-nosuchnick t
erc-public-away-p nil
erc-echo-notice-always-hook '<span class="org-rainbow-delimiters-depth-3">(</span>erc-echo-notice-in-minibuffer<span class="org-rainbow-delimiters-depth-3">)</span>
erc-auto-set-away nil
erc-autoaway-message <span class="org-string">"%i seconds out..."</span>
erc-away-nickname <span class="org-string">"msabate"</span>
- erc-log-channels-directory <span class="org-string">"~/.emacs.d/erc/"</span>
erc-enable-logging t
erc-query-on-unjoined-chan-privmsg t<span class="org-rainbow-delimiters-depth-2">)</span>
<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> erc-autojoin-channels-alist
- '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"*.freenode.net"</span> <span class="org-string">"#gnu"</span> <span class="org-string">"#emacs"</span><span class="org-rainbow-delimiters-depth-4">)</span>
- <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"*.suse.de"</span> <span class="org-string">"#suse"</span> <span class="org-string">"#docker"</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"irc.freenode.net"</span> <span class="org-string">"#gnu"</span> <span class="org-string">"#emacs"</span><span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"irc.suse.de"</span> <span class="org-string">"#suse"</span> <span class="org-string">"#docker"</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
</pre>
</div>
<p>
-I want to have a desktop notification whenever someone mentions my name.
+Use the <code>erc-hl-nicks</code> package, so highlight support for nicknames is better.
</p>
<div class="org-src-container">
-<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">require</span> '<span class="org-constant">notifications</span><span class="org-rainbow-delimiters-depth-1">)</span>
-
-<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">erc-global-notify</span> <span class="org-rainbow-delimiters-depth-2">(</span>match-type nick message<span class="org-rainbow-delimiters-depth-2">)</span>
- <span class="org-doc">"Notify when a message is recieved."</span>
-
- <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-3">(</span>eq match-type 'current-nick<span class="org-rainbow-delimiters-depth-3">)</span>
- <span class="org-rainbow-delimiters-depth-3">(</span>notifications-notify
- <span class="org-builtin">:title</span> nick
- <span class="org-builtin">:body</span> message
- <span class="org-builtin">:app-icon</span> <span class="org-rainbow-delimiters-depth-4">(</span>concat
- <span class="org-string">"/usr/share/emacs/"</span>
- <span class="org-rainbow-delimiters-depth-5">(</span>format <span class="org-string">"%s.%s"</span> emacs-major-version emacs-minor-version<span class="org-rainbow-delimiters-depth-5">)</span>
- <span class="org-string">"/etc/images/icons/hicolor/24x24/apps/emacs.png"</span><span class="org-rainbow-delimiters-depth-4">)</span>
- <span class="org-builtin">:urgency</span> 'low<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
-
-<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-2">(</span>boundp 'dbus-compiled-version<span class="org-rainbow-delimiters-depth-2">)</span>
- <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'erc-text-matched-hook 'erc-global-notify<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">erc-hl-nicks</span>
+ <span class="org-builtin">:ensure</span> t
+ <span class="org-builtin">:init</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">with-eval-after-load</span> 'erc
+ <span class="org-rainbow-delimiters-depth-3">(</span>add-to-list 'erc-modules 'hl-nicks<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
<p>
-Use the <code>erc-hl-nicks</code> package, so highlight support for nicknames is better.
+I want to have a desktop notification whenever someone mentions my name. For
+this, I'm using the <code>erc-notifications</code> package which is built in ERC since
+GNU Emacs 24.3.
</p>
<div class="org-src-container">
-<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">erc-hl-nicks</span>
- <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">with-eval-after-load</span> 'erc
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> erc-notifications-icon
+ <span class="org-rainbow-delimiters-depth-3">(</span>concat
+ <span class="org-string">"/usr/share/emacs/"</span>
+ <span class="org-rainbow-delimiters-depth-4">(</span>format <span class="org-string">"%s.%s"</span> emacs-major-version emacs-minor-version<span class="org-rainbow-delimiters-depth-4">)</span>
+ <span class="org-string">"/etc/images/icons/hicolor/24x24/apps/emacs.png"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'erc-modules 'notifications<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@@ -2141,6 +2137,18 @@ At this point, we can safely update all the loaded ERC modules.
</div>
<p>
+According to the <a href="https://www.emacswiki.org/emacs/ErcFilling">wiki</a>, <code>auto-fill-mode</code> should be disabled if I'm using
+<code>erc-fill-mode</code>.
+</p>
+
+<div class="org-src-container">
+
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'erc-mode-hook
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span> <span class="org-rainbow-delimiters-depth-3">(</span>auto-fill-mode 0<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
And now define a function to connect to both IRC servers.
</p>
@@ -2449,9 +2457,44 @@ criteria really).
</div>
<div id="outline-container-sec-16" class="outline-2">
-<h2 id="sec-16">Misc</h2>
+<h2 id="sec-16">WoMan</h2>
<div class="outline-text-2" id="text-16">
<p>
+<code>WoMan</code> is a package that is included inside of GNU Emacs by default, and that
+takes care of visualizing man pages. Let's properly setup Evil mode for this:
+</p>
+
+<div class="org-src-container">
+
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">with-eval-after-load</span> <span class="org-string">"evil"</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>evil-set-initial-state 'woman-mode 'normal<span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">evil-define-key</span> 'normal woman-mode-map
+ <span class="org-string">"J"</span> 'Man-next-section
+ <span class="org-string">"K"</span> 'Man-previous-section
+ <span class="org-string">"\C-h"</span> 'evil-window-left
+ <span class="org-string">"\C-l"</span> 'evil-window-right
+ <span class="org-string">"\C-j"</span> 'evil-window-down
+ <span class="org-string">"\C-k"</span> 'evil-window-up
+ <span class="org-string">"\C-u"</span> 'evil-scroll-up<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+Finally, I want man pages to fill all the frame:
+</p>
+
+<div class="org-src-container">
+
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> woman-fill-frame t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-sec-17" class="outline-2">
+<h2 id="sec-17">Misc</h2>
+<div class="outline-text-2" id="text-17">
+<p>
Install a set of useful functions from <a href="https://github.com/bbatsov">@bbatsov</a>. The bindings are following
Emacs style instead of being more Vim-like on purpose (I don't want to put
too many things into my leader and these shortcuts look sensible to me).
@@ -2468,9 +2511,9 @@ too many things into my leader and these shortcuts look sensible to me).
</div>
</div>
</div>
-<div id="outline-container-sec-17" class="outline-2">
-<h2 id="sec-17">Credits</h2>
-<div class="outline-text-2" id="text-17">
+<div id="outline-container-sec-18" class="outline-2">
+<h2 id="sec-18">Credits</h2>
+<div class="outline-text-2" id="text-18">
<p>
I've built this file by simply scavenging from other people's emacs.d/dotfiles
repositories. I have taken lots of pieces from here and there, but most notably:
@@ -2495,9 +2538,9 @@ repositories. I have taken lots of pieces from here and there, but most notably:
</div>
</div>
-<div id="outline-container-sec-18" class="outline-2">
-<h2 id="sec-18">License</h2>
-<div class="outline-text-2" id="text-18">
+<div id="outline-container-sec-19" class="outline-2">
+<h2 id="sec-19">License</h2>
+<div class="outline-text-2" id="text-19">
<div class="org-src-container">
<pre class="src src-text">Copyright (C) 2014-2017 Miquel Sabat&#233; Sol&#224; <a href="mailto:mikisabate%40gmail.com">&lt;mikisabate@gmail.com&gt;</a>
@@ -2521,7 +2564,7 @@ along with this program. If not, see <a href="http://www.gnu.org/licenses/">&lt
</div>
<div id="postamble" class="status">
<p class="author">Author: Miquel Sabaté Solà</p>
-<p class="date">Created: 2017-01-30 Mon 10:37</p>
+<p class="date">Created: 2017-02-02 Thu 15:56</p>
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 25.1.1 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
diff --git a/emacs/init.org b/emacs/init.org
index 10c8f52..8a9feb9 100644
--- a/emacs/init.org
+++ b/emacs/init.org
@@ -484,22 +484,21 @@ function. As a final touch, this binding also works for listing channels in ERC
buffers.
#+BEGIN_SRC elisp
-(defun erc-helm-buffer-list ()
+(defun mssola-erc-helm-buffer-list ()
"Returns a list with the ERC buffers."
(mapcar 'buffer-name (erc-buffer-list)))
-(setq helm-source-erc-channel-list
+(setq mssola-helm-source-erc-channel-list
'((name . "ERC Channels")
- (candidates . erc-helm-buffer-list)
- (action . helm-switch-to-buffer)))
+ (candidates . mssola-erc-helm-buffer-list)
+ (action . switch-to-buffer)))
-(defun erc-helm-switch-buffer ()
- "Use helm to select an active ERC buffer. Replaces erc-iswitchb, which
-doesn't work for me."
+(defun mssola-erc-helm-switch-buffer ()
+ "Use helm to select an active ERC buffer."
(interactive)
- (helm :sources '(helm-source-erc-channel-list)
+ (helm :sources '(mssola-helm-source-erc-channel-list)
:buffer "*helm-erc-channels*"))
(defun mssola-find-file ()
@@ -508,7 +507,7 @@ doesn't work for me."
(interactive)
(if (string= major-mode "erc-mode")
- (erc-helm-switch-buffer)
+ (mssola-erc-helm-switch-buffer)
(condition-case nil
(helm-projectile-find-file)
(error
@@ -1460,63 +1459,59 @@ I'm giving ERC a chance. First of all, I'm setting up basic stuff.
(erc-track-mode t)
- (setq erc-hide-list '("PART" "QUIT" "JOIN")
+ (setq erc-hide-list '("PART")
erc-prompt (lambda () (concat (buffer-name) ">"))
erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE")
erc-server-coding-system '(utf-8 . utf-8)
erc-kill-buffer-on-part t
erc-kill-queries-on-quit t
erc-kill-server-buffer-on-quit t
- erc-fill-column 130
+ erc-fill-column 100
+ erc-fill-prefix ""
erc-log-channels t
erc-log-write-after-insert t
erc-log-insert-log-on-open nil
- erc-timestamp-format "%s "
- erc-hide-timestamps t
+ erc-log-channels-directory "~/.emacs.d/erc/"
+ erc-timestamp-format "[%H:%M] "
erc-insert-timestamp-function 'erc-insert-timestamp-left
erc-insert-away-timestamp-function 'erc-insert-timestamp-left
+ erc-hide-timestamps nil
erc-whowas-on-nosuchnick t
erc-public-away-p nil
erc-echo-notice-always-hook '(erc-echo-notice-in-minibuffer)
erc-auto-set-away nil
erc-autoaway-message "%i seconds out..."
erc-away-nickname "msabate"
- erc-log-channels-directory "~/.emacs.d/erc/"
erc-enable-logging t
erc-query-on-unjoined-chan-privmsg t)
(setq erc-autojoin-channels-alist
- '(("*.freenode.net" "#gnu" "#emacs")
- ("*.suse.de" "#suse" "#docker")))
+ '(("irc.freenode.net" "#gnu" "#emacs")
+ ("irc.suse.de" "#suse" "#docker")))
#+END_SRC
-I want to have a desktop notification whenever someone mentions my name.
+Use the =erc-hl-nicks= package, so highlight support for nicknames is better.
#+BEGIN_SRC elisp
- (require 'notifications)
-
- (defun erc-global-notify (match-type nick message)
- "Notify when a message is recieved."
-
- (when (eq match-type 'current-nick)
- (notifications-notify
- :title nick
- :body message
- :app-icon (concat
- "/usr/share/emacs/"
- (format "%s.%s" emacs-major-version emacs-minor-version)
- "/etc/images/icons/hicolor/24x24/apps/emacs.png")
- :urgency 'low)))
-
- (when (boundp 'dbus-compiled-version)
- (add-hook 'erc-text-matched-hook 'erc-global-notify))
+(use-package erc-hl-nicks
+ :ensure t
+ :init
+ (with-eval-after-load 'erc
+ (add-to-list 'erc-modules 'hl-nicks)))
#+END_SRC
-Use the =erc-hl-nicks= package, so highlight support for nicknames is better.
+I want to have a desktop notification whenever someone mentions my name. For
+this, I'm using the =erc-notifications= package which is built in ERC since
+GNU Emacs 24.3.
#+BEGIN_SRC elisp
- (use-package erc-hl-nicks
- :ensure t)
+(with-eval-after-load 'erc
+ (setq erc-notifications-icon
+ (concat
+ "/usr/share/emacs/"
+ (format "%s.%s" emacs-major-version emacs-minor-version)
+ "/etc/images/icons/hicolor/24x24/apps/emacs.png"))
+ (add-to-list 'erc-modules 'notifications))
#+END_SRC
Some extra cookies: allow ERC to display images and Youtube thumbnails.
@@ -1542,6 +1537,14 @@ At this point, we can safely update all the loaded ERC modules.
(lambda (x) (erc-update-modules)))
#+END_SRC
+According to the [[https://www.emacswiki.org/emacs/ErcFilling][wiki]], =auto-fill-mode= should be disabled if I'm using
+=erc-fill-mode=.
+
+#+BEGIN_SRC elisp
+(add-hook 'erc-mode-hook
+ (lambda () (auto-fill-mode 0)))
+#+END_SRC
+
And now define a function to connect to both IRC servers.
#+BEGIN_SRC elisp
@@ -1793,6 +1796,30 @@ criteria really).
(add-hook lang-hook 'soria-purple-identifiers))
#+END_SRC
+* WoMan
+
+=WoMan= is a package that is included inside of GNU Emacs by default, and that
+takes care of visualizing man pages. Let's properly setup Evil mode for this:
+
+#+BEGIN_SRC elisp
+(with-eval-after-load "evil"
+ (evil-set-initial-state 'woman-mode 'normal)
+ (evil-define-key 'normal woman-mode-map
+ "J" 'Man-next-section
+ "K" 'Man-previous-section
+ "\C-h" 'evil-window-left
+ "\C-l" 'evil-window-right
+ "\C-j" 'evil-window-down
+ "\C-k" 'evil-window-up
+ "\C-u" 'evil-scroll-up))
+#+END_SRC
+
+Finally, I want man pages to fill all the frame:
+
+#+BEGIN_SRC elisp
+(setq woman-fill-frame t)
+#+END_SRC
+
* Misc
Install a set of useful functions from [[https://github.com/bbatsov][@bbatsov]]. The bindings are following