#+TITLE: GNU Emacs configuration #+AUTHOR: Miquel Sabaté Solà #+EMAIL: mikisabate@gmail.com * About this I'm following a literate programming approach for my GNU Emacs configuration. The basic workflow is that on the first run the =init.el= file will replace itself with a tangled (=org-babel=) version of itself. Therefore, all changes should go into the =init.org= file. Moreover, I've added a function that is executed on save which generates and compiles new versions of the =init.el= file. I run GNU Emacs in daemon mode, but I don't use systemd for that. Instead, in I'm using the =-a= argument of =emacsclient= with an empty string. This instructs =emacsclient= to spawn a new server if there isn't one already. This means that the first time around it will take some time, but in the next time everything will be alright. =Supported versions=: GNU Emacs 25.3 and 26.x. * Dependencies First of all, install the [[https://github.com/mssola/soria][soria]] color theme. This should already be handled by the install script. Then make sure to install the following: - =calibre=: a markdown to HTML converter. - =spell= for spell checking. - A LaTeX to PDF converter for exporting org files to PDF. In openSUSE this is fixed by installing the =texlive-pdftex= package. - =mu= and =mu4e= for email. In openSUSE it can be installed from [[https://build.opensuse.org/package/show/server:mail/maildir-utils][obs://server:mail/maildir-utils]]. ** Go In order to get a proper Go environment, you need to perform the following commands: #+BEGIN_SRC sh $ go get -u golang.org/x/tools/cmd/goimports $ go get -u github.com/dougm/goflymake $ go get -u github.com/rogpeppe/godef $ go get -u github.com/nsf/gocode #+END_SRC * Developing I've added a git =pre-push= hook which syncs the =init.html= and the =org.css= files into my personal server. * Installing The installation process of my GNU Emacs configuration should already be handled by the =install.sh= script that can be found in the root of this project. If you want to do it manually: - Create the =~/.emacs.d= directory if it has not been created yet. - Copy the =init.el= into the =~/.emacs.d= directory. This is the only file that should be copied instead of linked because it will get replaced on the first run by =org-babel=. - Link the =init.org=, =custom.el= and =gtkrc= files into the =~/.emacs.d= directory. - Create the =~/.emacs.d/lisp= subdirectory and link the =lisp/g.el= file there. - Clone the [[https://github.com/mssola/soria][soria]] project and link the =soria-theme.el= file into the =~/.emacs.d= directory. * Credits 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: - [[https://github.com/ereslibre/dotfiles][@ereslibre]] - [[https://github.com/dmacvicar/dotfiles][@dmacvicar]] - [[https://github.com/bbatsov/emacs.d][@bbatsov]] - [[https://github.com/aaronbieber/dotfiles][@aaronbieber]] - [[https://github.com/purcell/emacs.d][@purcell]] - [[https://github.com/sachac/emacs.d][@sachac]] ([[http://pages.sachachua.com/.emacs.d/Sacha.html][HTML version]]) - [[https://github.com/larstvei/dot-emacs][@larstvei]] * License #+BEGIN_SRC text Copyright (C) 2014-2019 Miquel Sabaté Solà This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . #+END_SRC