aboutsummaryrefslogtreecommitdiff
path: root/emacs
diff options
context:
space:
mode:
Diffstat (limited to 'emacs')
-rw-r--r--emacs/custom.el4
-rw-r--r--emacs/init.html150
-rw-r--r--emacs/init.org98
3 files changed, 234 insertions, 18 deletions
diff --git a/emacs/custom.el b/emacs/custom.el
index 7c0e1ce..8eed56f 100644
--- a/emacs/custom.el
+++ b/emacs/custom.el
@@ -7,14 +7,14 @@
["#1c1c1c" "#d78787" "#b9dc92" "#ffffaf" "#87afd7" "#875f87" "#dfafdf" "#d0d0d0"])
'(custom-safe-themes
(quote
- ("5a3f33eefbcf2a3098bafd22d7ad44358e66c3e844797e7bf9ef552a08dfeb6f" default)))
+ ("5869e98ef7446c9e2283e5788c0f6e2790676bdb52e9e1e112bb74e2415733c4" "5a3f33eefbcf2a3098bafd22d7ad44358e66c3e844797e7bf9ef552a08dfeb6f" default)))
'(delete-selection-mode nil)
'(magit-commit-arguments (quote ("--all" "--verbose" "--signoff")))
'(magit-log-arguments (quote ("--graph" "--color" "--decorate" "-n256")))
'(markdown-command "/usr/bin/markdown-calibre")
'(package-selected-packages
(quote
- (htmlize cmake-mode websocket markdown-mode go-mode magit evil-leader evil helm projectile writeroom-mode org-eldoc evil-commentary circe yasnippet yaml-mode which-key web-mode wc-mode use-package terraform-mode smart-tabs-mode slim-mode scss-mode rainbow-delimiters php-mode org-evil olivetti mu4e-alert mmm-jinja2 markdown-preview-mode helm-projectile helm-ag go-eldoc go-add-tags flycheck expand-region evil-surround evil-org evil-numbers evil-mu4e evil-magit evil-args dockerfile-mode disable-mouse default-text-scale crux cmake-font-lock ag))))
+ (erc-image erc-yt erc-hl-nicks emoji-cheat-sheet-plus helm-circe htmlize cmake-mode websocket markdown-mode go-mode magit evil-leader evil helm projectile writeroom-mode org-eldoc evil-commentary circe yasnippet yaml-mode which-key web-mode wc-mode use-package terraform-mode smart-tabs-mode slim-mode scss-mode rainbow-delimiters php-mode org-evil olivetti mu4e-alert mmm-jinja2 markdown-preview-mode helm-projectile helm-ag go-eldoc go-add-tags flycheck expand-region evil-surround evil-org evil-numbers evil-mu4e evil-magit evil-args dockerfile-mode disable-mouse default-text-scale crux cmake-font-lock ag))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
diff --git a/emacs/init.html b/emacs/init.html
index 0112304..7ebb0a7 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-28 Sat 12:45 -->
+<!-- 2017-01-28 Sat 16:35 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Miquel Sabaté Solà" />
@@ -181,10 +181,11 @@ for the JavaScript code in this tag.
<li><a href="#sec-13-8"><span class="todo TODO">TODO</span> shortcuts for stuff like: create something urgent for today</a></li>
</ul>
</li>
-<li><a href="#sec-14">Languages</a></li>
-<li><a href="#sec-15">Misc</a></li>
-<li><a href="#sec-16">Credits</a></li>
-<li><a href="#sec-17">License</a></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>
</ul>
</div>
</div>
@@ -1924,9 +1925,126 @@ Insert a &lt;kbd&gt;&lt;/kbd&gt; value in org mode. See this <a href="http://ema
</div>
<div id="outline-container-sec-14" class="outline-2">
-<h2 id="sec-14">Languages</h2>
+<h2 id="sec-14">IRC</h2>
<div class="outline-text-2" id="text-14">
<p>
+I'm giving ERC a chance. First of all, I'm setting up basic stuff.
+</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> erc
+ <span class="org-builtin">:config</span>
+
+ <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>
+ 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-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-insert-timestamp-function 'erc-insert-timestamp-left
+ erc-insert-away-timestamp-function 'erc-insert-timestamp-left
+ 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>
+</pre>
+</div>
+
+<p>
+Setup desktop notifications.
+</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>
+</div>
+
+<p>
+Add some helper packages and update the loaded ERC modules.
+</p>
+
+<div class="org-src-container">
+
+<pre class="src src-elisp"><span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'erc-connect-pre-hook
+ <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">(</span>x<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-3">(</span>erc-update-modules<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">use-package</span> erc-hl-nicks
+ <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> erc-yt
+ <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 'youtube<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">use-package</span> erc-image
+ <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 'image<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>
+
+<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">mssola-erc</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+ <span class="org-doc">"Join pre-speciifed servers and channels."</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>erc <span class="org-builtin">:server</span> <span class="org-string">"irc.freenode.net"</span> <span class="org-builtin">:port</span> 6667 <span class="org-builtin">:nick</span> <span class="org-string">"mssola"</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ <span class="org-rainbow-delimiters-depth-2">(</span>erc-tls <span class="org-builtin">:server</span> <span class="org-string">"irc.suse.de"</span> <span class="org-builtin">:port</span> 6697 <span class="org-builtin">:nick</span> <span class="org-string">"mssola"</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>global-set-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"C-c i"</span><span class="org-rainbow-delimiters-depth-2">)</span> 'mssola-erc<span class="org-rainbow-delimiters-depth-1">)</span><span class="org-rainbow-delimiters-unmatched">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-sec-15" class="outline-2">
+<h2 id="sec-15">Languages</h2>
+<div class="outline-text-2" id="text-15">
+<p>
First of all, define a function that identifies some warning keywords
(e.g. TODO). This function can then be applied to the proper mode.
</p>
@@ -2211,9 +2329,9 @@ criteria really).
</div>
</div>
-<div id="outline-container-sec-15" class="outline-2">
-<h2 id="sec-15">Misc</h2>
-<div class="outline-text-2" id="text-15">
+<div id="outline-container-sec-16" class="outline-2">
+<h2 id="sec-16">Misc</h2>
+<div class="outline-text-2" id="text-16">
<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
@@ -2231,9 +2349,9 @@ too many things into my leader and these shortcuts look sensible to me).
</div>
</div>
</div>
-<div id="outline-container-sec-16" class="outline-2">
-<h2 id="sec-16">Credits</h2>
-<div class="outline-text-2" id="text-16">
+<div id="outline-container-sec-17" class="outline-2">
+<h2 id="sec-17">Credits</h2>
+<div class="outline-text-2" id="text-17">
<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:
@@ -2258,9 +2376,9 @@ repositories. I have taken lots of pieces from here and there, but most notably:
</div>
</div>
-<div id="outline-container-sec-17" class="outline-2">
-<h2 id="sec-17">License</h2>
-<div class="outline-text-2" id="text-17">
+<div id="outline-container-sec-18" class="outline-2">
+<h2 id="sec-18">License</h2>
+<div class="outline-text-2" id="text-18">
<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>
@@ -2284,7 +2402,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-28 Sat 12:45</p>
+<p class="date">Created: 2017-01-28 Sat 16:35</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 a7a874d..8e70291 100644
--- a/emacs/init.org
+++ b/emacs/init.org
@@ -1377,6 +1377,104 @@ Will work on both org-mode and any mode that accepts plain html."
** TODO shortcuts for stuff like: create something urgent for today
+* IRC
+
+I'm giving ERC a chance. First of all, I'm setting up basic stuff.
+
+#+BEGIN_SRC elisp
+(use-package erc
+ :config
+
+ (erc-track-mode t)
+
+ (setq erc-hide-list '("PART" "QUIT" "JOIN")
+ 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-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-insert-timestamp-function 'erc-insert-timestamp-left
+ erc-insert-away-timestamp-function 'erc-insert-timestamp-left
+ 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")))
+#+END_SRC
+
+Setup desktop notifications.
+
+#+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))
+#+END_SRC
+
+Add some helper packages and update the loaded ERC modules.
+
+#+BEGIN_SRC elisp
+ (add-hook 'erc-connect-pre-hook
+ (lambda (x) (erc-update-modules)))
+
+ (use-package erc-hl-nicks
+ :ensure t)
+
+ (use-package erc-yt
+ :ensure t
+ :init
+ (with-eval-after-load 'erc
+ (add-to-list 'erc-modules 'youtube)))
+
+ (use-package erc-image
+ :ensure t
+ :init
+ (with-eval-after-load 'erc
+ (add-to-list 'erc-modules 'image)))
+#+END_SRC
+
+And now define a function to connect to both IRC servers.
+
+#+BEGIN_SRC elisp
+ (defun mssola-erc ()
+ "Join pre-speciifed servers and channels."
+
+ (interactive)
+
+ (erc :server "irc.freenode.net" :port 6667 :nick "mssola")
+ (erc-tls :server "irc.suse.de" :port 6697 :nick "mssola"))
+
+ (global-set-key (kbd "C-c i") 'mssola-erc))
+#+END_SRC
+
* Languages
First of all, define a function that identifies some warning keywords