 
 (package-initialize)
 
+(unless package-archive-contents
+  (package-refresh-contents))
+
+;; use-package allows for cleaner configuration of packages
+(unless (package-installed-p 'use-package)
+  (package-install 'use-package))
+
+(require 'use-package)
+
+;; Causes use-package function to install packages not yet installed. Useful
+;; when running this init.el on a system for the first time.
+(setq use-package-always-ensure t)
+
 ;;; -----------
 ;;; Look & feel
 ;;; -----------
 
 (setq inhibit-startup-message t)
-(setq visual-bell t)
+(setq visible-bell t)
 
 (scroll-bar-mode -1) ; Disable visible scrollbar
 (tool-bar-mode -1) ; Disable the toolbar


(load-theme 'leuven t)

; disable arrow keys so I am forced to learn navigating using C-p C-n C-f and
; C-b
(global-unset-key (kbd "<left>"))
(global-unset-key (kbd "<right>"))
(global-unset-key (kbd "<up>"))
(global-unset-key (kbd "<down>"))

;;; --------
;;; Org-mode


;; Currently commented out as I rebuild my configuration.

;;; ---------- 
;;; Exeriments
;;; ---------- 

;; Elements I am still test driving or am unsure where they will end up.

; (require 'org)
; (define-key global-map "\C-cl" 'org-store-link)
; (define-key global-map "\C-ca" 'org-agenda)
; (setq org-log-done t)
; (setq org-agenda-files (list "~/memex/OrgTutorial.org"))
(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(package-selected-packages '(evil use-package)))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 )
