(set-face-attribute 'default nil :height 80)

(setq custom-file "~/.emacs.d/custom.el")
(load custom-file 'noerror)

(defun load-identica-mode ()
  (when (require 'netrc nil t)
    (autoload 'identica-mode "identica-mode" nil t)
    (let ((identica (netrc-machine (netrc-parse "~/.netrc") "identi.ca" t)))
      (setq identica-password (netrc-get identica "password"))
      (setq identica-username (netrc-get identica "login"))
    )
  )
)

(setq package-archives '(("ELPA" . "http://tromey.com/elpa/")
                         ("marmalade" . "http://marmalade-repo.org/packages/")
                         ("gnu" . "http://elpa.gnu.org/packages/")))


(add-to-list 'load-path "~/.emacs.d/")
(add-to-list 'load-path "~/.emacs.d/el-get/el-get")
(unless (require 'el-get nil t)
  (url-retrieve
   "https://github.com/dimitri/el-get/raw/master/el-get-install.el"
   (lambda (s)
     (end-of-buffer)
     (eval-print-last-sexp))))

(setq el-get-sources
      '(el-get
        package
        rainbow-delimiters
        php-mode-improved
        mmm-mode
        dtrt-indent
        magit
        coffee-mode
        folding
        apel flim semi wanderlust
        (:name scss-mode
               :url "git://github.com/antonj/scss-mode.git"
               :after (lambda ()
                        (setq scss-compile-at-save nil)))
        (:name color-theme
               :after (lambda ()
                        (color-theme-tty-dark)))
        (:name color-theme-solarized
               :url "https://LukeShu@github.com/LukeShu/emacs-color-theme-solarized.git"
               :after (lambda ()
                        (add-hook 'after-make-frame-functions
                                  (lambda (frame)
                                    (set-variable 'color-theme-is-global nil)
                                    (select-frame frame)
                                    (if window-system
                                        (color-theme-solarized-dark)
                                        (color-theme-tty-dark))))))
        (:name org-mode
               :url "git://orgmode.org/org-mode.git"
               :features org-install
               :after (lambda ()
                        (require 'org-checklist)
                        (setq org-hide-leading-stars t)
                        (setq org-log-done 'time)))
        (:name identica-mode
               :type http-tar
               :options ("xzf")
               :url "http://git.savannah.gnu.org/cgit/identica-mode.git/snapshot/identica-mode-1.1.tar.gz"
               :load "identica-mode.el"
               :after (lambda ()
                        (load-identica-mode)))
        (:name smarttabs
               :url "git://gist.github.com/896190.git")
        (:name autopair
               :after (lambda ()
                        (autopair-global-mode 1)
                        (setq autopair-autowrap t)))
        ))
(when (require 'el-get nil t)
  (el-get 'sync))

(add-hook 'text-mode-hook 'turn-on-auto-fill)
(add-hook 'after-make-frame-functions
          (lambda (frame)
            (set-variable 'term-default-fg-color
                          (face-foreground 'default))
            (set-variable 'term-default-bg-color
                          (face-background 'default)))
          t)

(load "emacsutils")

(tool-bar-mode -1)
(ido-mode t)
(show-paren-mode 1)

(defun toggle-fullscreen (&optional f)
  (interactive)
  (let ((current-value (frame-parameter nil 'fullscreen)))
    (set-frame-parameter nil 'fullscreen
                         (if (equal 'fullboth current-value)
                             (if (boundp 'old-fullscreen) old-fullscreen nil)
                           (progn (setq old-fullscreen current-value)
                                  'fullboth)))))
(global-set-key [f11] 'toggle-fullscreen)

(load "whitespace")
(global-set-key "\C-cw" 'global-whitespace-mode)
(setq whitespace-style '(
;  face
;  tabs
  tab-mark
;  spaces
  space-mark
;  newline
  newline-mark
  empty
))

;; These are my preferred settings; we let dtrt-indent detect when we play with other's files
(setq-default tab-width 8)
(setq-default c-basic-offset 8)
(setq-default indent-tabs-mode t)


(setq
 backup-by-copying	t ;; don't clobber symlinks
 backup-directory-alist	'(("." . "~/.saves")) ;; don't litter my fs tree
 delete-old-versions	t
 kept-new-versions	6
 kept-old-versions	2
 version-control	t ;; use versioned backups
)

(setq column-number-mode t
      inhibit-startup-screen t
      line-number-mode t
      server-use-tcp t
      server-mode t
      show-paren-mode t)

(setq browse-url-generic-program (executable-find "v-www-browser")
      browse-url-browser-function 'browse-url-generic)

(add-hook 'lisp-mode-hook
          '(lambda ()
             (set (make-local-variable 'indent-tabs-mode) nil)
             ))

(add-hook 'emacs-lisp-mode-hook
          '(lambda ()
             (set (make-local-variable 'indent-tabs-mode) nil)
             ))

(add-hook 'coffee-mode-hook
          '(lambda ()
             (set (make-local-variable 'tab-width) 2)
             ))

(add-hook 'term-mode-hook
          '(lambda ()
             (setq term-prompt-regexp "^[^#$%>\n]*[#$%>] *")
             (make-local-variable 'mouse-yank-at-point)
             ;(make-local-variable 'transient-mark-mode)
             (setq mouse-yank-at-point t)
             ;(setq transient-mark-mode nil)
             (auto-fill-mode -1)
             (setq tab-width 8 )
             (setq autopair-dont-activate t) ;; Don't let autopair break ansi-term
             ))

;(require 'flymake)
;(add-hook 'php-mode-hook (lambda() (flymake-mode 1)))
;(define-key php-mode-map '[M-S-up] 'flymake-goto-prev-error)
;(define-key php-mode-map '[M-S-down] 'flymake-goto-next-error)

;(setq tramp-debug-buffer t) 
;(setq tramp-verbose 10)