#+TITLE: DT's Doom Emacs Config
#+AUTHOR: Derek Taylor (DT)
#+STARTUP: showeverything

** FONTS
Doom exposes five (optional) variables for controlling fonts in Doom. Here
are the three important ones:

+ `doom-font'
+ `doom-variable-pitch-font'
+ `doom-big-font' -- used for `doom-big-font-mode'; use this for
  presentations or streaming.

They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
font string. You generally only need these two:

#+BEGIN_SRC emacs-lisp
(setq doom-font (font-spec :family "Mononoki Nerd Font" :size 15)
       doom-variable-pitch-font (font-spec :family "Mononoki Nerd Font" :size 15))
#+END_SRC

** DOOM THEME
#+BEGIN_SRC emacs-lisp
(setq doom-theme 'doom-palenight)
#+END_SRC

** ORG MODE
#+BEGIN_SRC emacs-lisp
(setq org-directory "~/Documents/org/")
#+END_SRC

** LINE SETTINGS
 #+BEGIN_SRC emacs-lisp
(setq display-line-numbers-type t)
(global-set-key "\C-x\ t" 'toggle-truncate-lines)
#+END_SRC

** NEOTREE
Setting the neotree width to be adjustable.
#+BEGIN_SRC emacs-lisp
(setq neo-window-fixed-size nil)
#+END_SRC

** BROWSER (eww)
Set urls to open in a specific browser.
#+BEGIN_SRC emacs-lisp
(setq browse-url-browser-function 'eww-browse-url)
#+END_SRC

** SPLITS
Force splits to open on the right
#+BEGIN_SRC emacs-lisp
(defun prefer-horizontal-split ()
  (set-variable 'split-height-threshold nil t)
  (set-variable 'split-width-threshold 40 t)) ; make this as low as needed
(add-hook 'markdown-mode-hook 'prefer-horizontal-split)
#+END_SRC

** FILE MANAGER (dired)
Image previews in dired
#+BEGIN_SRC emacs-lisp
(map!
  (:after dired
    (:map dired-mode-map
     "C-x i" #'peep-dired
     )))
(evil-define-key 'normal peep-dired-mode-map (kbd "j") 'peep-dired-next-file
                                             (kbd "k") 'peep-dired-prev-file)
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
#+END_SRC

** AUDIO PLAYER (emms)
#+BEGIN_SRC emacs-lisp
(use-package emms
  :ensure t
  :config
  (require 'emms-setup)
  (require 'emms-info)
  (require 'emms-cue)
  (require 'emms-mode-line)
  (require 'emms-playing-time)
  (setq emms-source-file-default-directory "~/Music/Non-Classical/70s-80s/")
  (setq emms-playlist-buffer-name "*Music*")
  (setq emms-info-asynchronously t)
  (unless (eq system-type 'windows-nt)
    (setq emms-source-file-directory-tree-function
          'emms-source-file-directory-tree-find))
  (emms-all)
  (emms-default-players)
  (emms-mode-line 1)
  (emms-playing-time 1))
#+END_SRC

** EMAIL CLIENT (mu4e)
 Setting up mu4e which is an email client that works within emacs.
 You must install mu4e and mbsync through your Linux distribution's
 package manager. Setting up smtp for sending mail. Make sure the gnutls command
 line utils are installed. Package 'gnutls-bin' in Debian/Ubuntu,
 and 'gnutls' in Arch.
 #+BEGIN_SRC emacs-lisp
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu4e")
(require 'mu4e)
(setq mu4e-get-mail-command "mbsync -c ~/.emacs.d/mu4e/.mbsyncrc -a"
      mu4e-update-interval  300)
(setq
   user-mail-address "derek@distrotube.com"
   user-full-name  "Derek Taylor"
   mu4e-compose-signature
    (concat
      "Derek Taylor\n"
      "http://www.youtube.com/DistroTube\n"))
(require 'smtpmail)
(setq message-send-mail-function 'smtpmail-send-it
   starttls-use-gnutls t
   smtpmail-starttls-credentials '(("smtp.1and1.com" 587 nil nil))
   smtpmail-auth-credentials
     '(("smtp.1and1.com" 587 "derek@distrotube.com" nil))
   smtpmail-default-smtp-server "smtp.1and1.com"
   smtpmail-smtp-server "smtp.1and1.com"
   smtpmail-smtp-service 587)
#+END_SRC

** MASTODON CLIENT (mastodon)
#+BEGIN_SRC emacs-lisp
(setq mastodon-instance-url "https://mastodon.technology")
#+END_SRC

#+BEGIN_SRC emacs-lisp
(setq md4rd-subs-active '(archlinux commandline DistroTube DoomEmacs emacs freesoftware lbry linux linux4noobs linuxmasterrace linnuxquestions orgmode qutebrowser suckless Ubuntu unixporn UsabilityPorn vim xmonad))
#+END_SRC

#+BEGIN_SRC emacs-lisp
(custom-set-variables
 '(elfeed-feeds
   (quote
    (("https://www.reddit.com/r/linux.rss" reddit linux)
     ("https://www.gamingonlinux.com/article_rss.php" gaming linux)
     ("https://hackaday.com/blog/feed/" hackaday linux)
     ("https://opensource.com/feed" opensource linux)
     ("https://linux.softpedia.com/backend.xml" softpedia linux)
     ("https://itsfoss.com/feed/" itsfoss linux)
     ("https://www.zdnet.com/topic/linux/rss.xml" zdnet linux)
     ("https://www.phoronix.com/rss.php" phoronix linux)
     ("http://feeds.feedburner.com/d0od" omgubuntu linux)
     ("https://www.computerworld.com/index.rss" computerworld linux)
     ("https://www.networkworld.com/category/linux/index.rss" networkworld linux)
     ("https://www.techrepublic.com/rssfeeds/topic/open-source/" techrepublic linux)
     ("https://betanews.com/feed" betanews linux)
     ("http://lxer.com/module/newswire/headlines.rss" lxer linux)
     ("https://distrowatch.com/news/dwd.xml" distrowatch linux))))
 '(package-selected-packages
   (quote
    (mastodon exwm peep-dired nav-flash evil-mu4e emms elfeed))))
#+END_SRC

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.
#+BEGIN_SRC emacs-lisp
(custom-set-faces
 )
#+END_SRC
