mirror of
https://gitlab.com/dwt1/dotfiles.git
synced 2026-04-24 03:50:24 +10:00
220 lines
8.1 KiB
Org Mode
220 lines
8.1 KiB
Org Mode
#+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' -- standard monospace font that is used for most things in Emacs.
|
|
+ `doom-variable-pitch-font' -- variable font which is useful in some Emacs plugins.
|
|
+ `doom-big-font' -- used in `doom-big-font-mode'; useful for presentations.
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq doom-font (font-spec :family "SauceCodePro Nerd Font" :size 15)
|
|
doom-variable-pitch-font (font-spec :family "SauceCodePro Nerd Font" :size 15)
|
|
doom-big-font (font-spec :family "SauceCodePro Nerd Font" :size 24))
|
|
#+END_SRC
|
|
|
|
* DOOM THEME
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq doom-theme 'doom-one)
|
|
(map! :leader
|
|
:desc "Load new theme"
|
|
"h t" #'counsel-load-theme)
|
|
#+END_SRC
|
|
|
|
* ORG MODE
|
|
Note that I wrapped everything in (after! org). Without this, my settings might be evaluated too early, which will result in my settings being overwritten by Doom's defaults.
|
|
#+BEGIN_SRC emacs-lisp
|
|
(after! org
|
|
(setq org-directory "~/Org/"
|
|
org-agenda-files '("~/Org/agenda.org")
|
|
org-log-done 'time
|
|
;; ex. of org-link-abbrev-alist in action
|
|
;; [[arch-wiki:Name_of_Page][Description]]
|
|
org-link-abbrev-alist
|
|
'(("google" . "http://www.google.com/search?q=")
|
|
("arch-wiki" . "https://wiki.archlinux.org/index.php/")
|
|
("ddg" . "https://duckduckgo.com/?q=")
|
|
("wiki" . "https://en.wikipedia.org/wiki/"))
|
|
org-todo-keywords '((sequence "TODO(t)" "PROJ(p)" "VIDEO(v)" "WAIT(w)" "|" "DONE(d)" "CANCELLED(c)" )))
|
|
;; Nicer bullets in org-mode
|
|
(require 'org-bullets)
|
|
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
|
|
#+END_SRC
|
|
|
|
* LINE SETTINGS
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq display-line-numbers-type t)
|
|
(map! :leader
|
|
:desc "Toggle truncate lines"
|
|
"l 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
|
|
|
|
* MANPAGES
|
|
#+BEGIN_SRC emacs-lisp
|
|
(require 'ox-groff)
|
|
#+END_SRC
|
|
|
|
* BROWSER (eww)
|
|
Set urls to open in a specific browser. I set this to use Emacs' own browser (eww).
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq browse-url-browser-function 'eww-browse-url)
|
|
#+END_SRC
|
|
|
|
* SHELLS
|
|
The =inferior shell= is what you get when you run M-x shell. It is a wrapper around your default shell. It is governed by explicit-shell-file-name, the ESHELL environment variable or shell-file-name, in that order. Below, I demonstrate how to change shell to use fish even though the default shell may be something else. This will also make M-x term and M-x ansi-term default to fish, though it asks you to confirm before it launches.
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq shell-file-name "/bin/fish")
|
|
#+END_SRC
|
|
|
|
Sets the file for where I place my eshell aliases.
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq eshell-aliases-file "~/.doom.d/aliases")
|
|
#+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
|
|
|
|
* TABS (centaur-tabs)
|
|
To use tabs in Doom Emacs, be sure to uncomment "tabs" in Doom's init.el. Displays tabs at the top of the window similar to tabbed web browsers such as Firefox. I don't actually use tabs in Emacs. I placed this in my config to help others who may want tabs. In the default configuration of Doom Emacs, there are just a few keybindings that use SPC-t, so it wasn't too difficult to find appropriate keybindings using that prefix for "tabs".
|
|
#+BEGIN_SRC emacs-lisp
|
|
(setq centaur-tabs-set-bar 'over
|
|
centaur-tabs-set-icons t
|
|
centaur-tabs-gray-out-icons 'buffer
|
|
centaur-tabs-height 24
|
|
centaur-tabs-set-modified-marker t
|
|
centaur-tabs-style "bar"
|
|
centaur-tabs-modified-marker "•")
|
|
(map! :leader
|
|
:desc "Toggle tabs on/off"
|
|
"t o" #'centaur-tabs-local-mode
|
|
:leader
|
|
:desc "Switch tab groups"
|
|
"t s" #'centaur-tabs-counsel-switch-group
|
|
:leader
|
|
:desc "Toggle tab groups"
|
|
"t t" #'centaur-tabs-toggle-groups
|
|
:leader
|
|
:desc "Kill all buffers in group"
|
|
"t k" #'centaur-tabs-kill-all-buffer-in-current-group
|
|
:leader
|
|
:desc "Next tab"
|
|
"t n" #'centaur-tabs-forward
|
|
:leader
|
|
:desc "Previous tab"
|
|
"t p" #'centaur-tabs-backward)
|
|
#+END_SRC
|
|
|
|
* FILE MANAGER (dired)
|
|
Image previews in dired
|
|
#+BEGIN_SRC emacs-lisp
|
|
(map!
|
|
(:after dired
|
|
(:map dired-mode-map
|
|
:leader
|
|
"l 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)
|
|
Note that I wrapped my settings with (after! mastodon). Without this, my settings will be overwritten by the default settings for this module, which is "mastodon.social".
|
|
#+BEGIN_SRC emacs-lisp
|
|
(after! mastodon
|
|
(setq mastodon-instance-url "https://mastodon.technology/"))
|
|
#+END_SRC
|
|
|
|
* REDDIT CLIENT (md4rd)
|
|
#+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
|
|
|
|
* RSS READER (elfeed)
|
|
#+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)))))
|
|
#+END_SRC
|