]> git.rkrishnan.org Git - .emacs.d.git/blobdiff - init.el
remove tuareg mode initializations
[.emacs.d.git] / init.el
diff --git a/init.el b/init.el
index b8abb87e6fc49f300ac628ffdcf79c71e078b695..cb5f497ffc9df7fc19fc0169e2e0e73ea67e4202 100644 (file)
--- a/init.el
+++ b/init.el
-(tool-bar-mode 0)
-(menu-bar-mode 0)
+;; Prevent the cursor from blinking
+(blink-cursor-mode 0)
+(show-paren-mode 1)
+;; y-or-n instead of yes-or-no
+(defalias 'yes-or-no-p 'y-or-n-p)
+
+;; Don't use messages that you don't rea
+(setq make-backup-files nil)
+(setq initial-scratch-message "")
+(setq inhibit-startup-message t)
+
+;; column number
+(column-number-mode 1)
+
+;; Don't let Emacs hurt your ears
+(setq visible-bell t)
+
+;; This is bound to f11 in Emacs 24.4
+;; (toggle-frame-fullscreen)
+(custom-set-variables
+ '(initial-frame-alist (quote ((fullscreen . maximized)))))
+;; Who use the bar to scroll?
+(when (display-graphic-p)
+  (progn
+    (scroll-bar-mode 0)
+
+    (tool-bar-mode 0)
+    (menu-bar-mode 0)))
+
+; my-packages.el
+(require 'package)
+(add-to-list 'package-archives
+             '("melpa" . "http://melpa.milkbox.net/packages/") t)
+(add-to-list 'package-archives
+             '("marmalade" . "http://marmalade-repo.org/packages/") t)
+(package-initialize)
 
-(setq load-path (cons "~/.emacs.d/emacs" load-path))
+; fetch the list of packages available
+(unless package-archive-contents
+  (package-refresh-contents))
 
-;; color themes
-(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
-;(load-theme 'zenburn t)
+;; make sure my list of packages are installed
+(setq package-list '(rust-mode haskell-mode monokai-theme ghc))
 
-(require 'package)
-(add-to-list 'package-archives 
-    '("marmalade" .
-      "http://marmalade-repo.org/packages/"))
-(package-initialize)
+; install the missing packages
+(dolist (package package-list)
+  (unless (package-installed-p package)
+    (package-install package)))
 
-(load "my-c-mode.el")
-(load "my-generic-stuff.el")
-(load "my-search.el")
-(load "my-erc.el")
-;; (load "my-org-mode.el")
-;; (load "my-slime.el")
-;; (load "my-twitter.el")
-;; (load "my-python.el")
-;; (load "my-haskell.el")
-;; (load "my-swank-js.el")
-
-(defun match-paren (arg)
-  "Go to the matching paren if on a paren; otherwise insert %."
-  (interactive "p")
-  (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1))
-       ((looking-at "\\s\)") (forward-char 1) (backward-list 1))
-       (t (self-insert-command (or arg 1)))))
-
-;; highlight parentheses mode
-(require 'highlight-parentheses)
-
-
-;; paredit
-(autoload 'paredit-mode "paredit"
-  "Minor mode for pseudo-structurally editing Lisp code." t)
-
-(dolist (hook '(emacs-lisp-mode-hook
-                lisp-mode-hook
-                lisp-interaction-mode-hook
-                clojure-mode-hook
-                scheme-mode-hook))
-  (add-hook hook #'(lambda ()
-                     (highlight-parentheses-mode t)
-                     (paredit-mode +1))))
-
-;; flyspell
-(autoload 'flyspell-mode "flyspell" "On-the-fly spelling checker." t)
-
-;; handle trailing whitespaces
-;(add-hook 'before-save-hook 'delete-trailing-whitespace)
-
-;; update copyright years before saving.
-;(add-hook 'before-save-hook 'copyright-update)
-
-;; sending email
-(setq message-send-mail-function 'message-send-mail-with-sendmail
-      mail-specify-envelope-from t      ; Settings to work with msmtp
-      message-sendmail-f-is-evil nil  
-      mail-envelope-from 'header
-      message-sendmail-envelope-from 'header
-      sendmail-program "/usr/bin/msmtp"
-      user-full-name "Ramakrishnan Muthukrishnan")
-
-(setq message-kill-buffer-on-exit t) ; kill buffer after sending mail)
-
-;; notmuch
-(setq gnus-inhibit-images nil)
-(add-to-list 'load-path "~/.emacs.d/emacs/notmuch")
-(setq notmuch-command "~/bin/remote-notmuch.sh")
-(require 'notmuch)
-(when (memq window-system '(mac ns))
-  (exec-path-from-shell-initialize)
-  (setq starttls-use-gnutls t)
-  (setq starttls-gnutls-program "gnutls-cli")
-  (setq starttls-extra-arguments nil)
-  )
-(setq smtpmail-starttls-credentials '(("rkrishnan.org" 587 nil nil))
-      smtpmail-auth-credentials (expand-file-name "~/.authinfo")
-      smtpmail-default-smtp-server "rkrishnan.org"
-      smtpmail-smtp-server "rkrishnan.org"
-      smtpmail-smtp-service 587)
-
-(setq notmuch-fcc-dirs nil)
-(add-hook 'message-header-setup-hook
-    (lambda () (insert (format "Bcc: %s <%s>\n"
-                (notmuch-user-name)
-                (notmuch-user-primary-email)))))
-
-;; addressbook
-(require 'notmuch-address)
-(setq notmuch-address-command "~/bin/addrlookup")
-(notmuch-address-message-insinuate)
-
-(require 'smtpmail)
-(setq message-send-mail-function 'smtpmail-send-it)
-(require 'starttls)
-
-;; sign all emails
-(add-hook 'message-setup-hook 'mml-secure-message-sign-pgp)
-
-(set-default-font "Inconsolata-11")
-
-;; spell check
-(setq ispell-program-name "aspell"
-  ispell-extra-args '("--sug-mode=ultra"))
-
-(setq ispell-list-command "--list")
-
-(dolist (hook '(text-mode-hook))
-  (add-hook hook (lambda () (flyspell-mode 1))))
-(dolist (hook '(change-log-mode-hook log-edit-mode-hook))
-  (add-hook hook (lambda () (flyspell-mode -1))))
-
-;; new wonderful theme monokai
+;; monokai
 (load-theme 'monokai t)
 
+;; erc
+(require 'erc)
+(require 'tls)
+(setq tls-program '("openssl s_client -connect %h:%p -no_ssl2 -ign_eof"))
+
+(erc-autojoin-mode t)
+(setq erc-autojoin-channels-alist
+  '((".*\\.freenode.net" "#haskell-beginners")
+    (".*\\.oftc.net" "#LeastAuthority")
+    (".*\\.saju.net.in" "#cs")))
+
+;; check channels
+(erc-track-mode t)
+(setq erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE"
+
+                                 "324" "329" "332" "333" "353" "477"))
+;; don't show any of this
+(setq erc-hide-list '("JOIN" "PART" "QUIT" "NICK"))
+
+(defun start-erc ()
+  "Connect to IRC."
+  (interactive)
+  (when (y-or-n-p "Do you want to start IRC? ")
+    (erc-tls :server "irc.freenode.net" :port 6697 :nick "rkrishnan" :full-name "Ramakrishnan Muthukrishnan")
+    (erc-tls :server "irc.oftc.net" :port 6697 :nick "rkrishnan" :full-name "Ramakrishnan Muthukrishnan")
+    (erc-tls :server "saju.net.in" :port 6697 :nick "ramki" :full-name "Ramakrishnan Muthukrishnan")))
+
+;; switch to ERC with Ctrl+c e
+(global-set-key (kbd "C-c e") 'start-erc) ;; ERC
+
+;; haskell mode
+(setenv "PATH" (concat "~/.cabal/bin:" (getenv "PATH")))
+(add-to-list 'exec-path "~/.cabal/bin")
+(add-hook 'haskell-mode-hook 'haskell-indent-mode)
+;; (add-hook 'haskell-mode-hook 'interactive-haskell-mode)
+;; (add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
+;; (add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
+
+;; ghc-mod
+(autoload 'ghc-init "ghc" nil t)
+(autoload 'ghc-debug "ghc" nil t)
+(add-hook 'haskell-mode-hook (lambda () (ghc-init)))
+
+;; ido
+(setq ido-enable-flex-matching t)
+(setq ido-everywhere t)
+(ido-mode 1)
+
+;; disable tabs for indentation
+(setq-default indent-tabs-mode nil)
+
+(require 'whitespace)
+(setq whitespace-style '(face lines-tail))
+(setq whitespace-line-column 80)
+(global-whitespace-mode t)
+
+;; show trailing whitespaces
+(setq-default show-trailing-whitespace t)
+(setq-default indicate-empty-lines t)