Minor edits.

This commit is contained in:
Derek Taylor
2020-07-11 11:37:20 -05:00
parent 06924eaefe
commit 4680c2e1ec
8 changed files with 427 additions and 767 deletions

View File

@@ -1,233 +1,37 @@
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
;; Place your private configuration here! Remember, you do not need to run 'doom
;; sync' after modifying this file!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; START OF EXWM CONFIG ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Disable menu-bar, tool-bar and scroll-bar to increase the usable space.
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
;; Also shrink fringes to 1 pixel.
(fringe-mode 1)
;; Turn on `display-time-mode' if you don't use an external bar.
(setq display-time-default-load-average nil)
(display-time-mode t)
;; You are strongly encouraged to enable something like `ido-mode' to alter
;; the default behavior of 'C-x b', or you will take great pains to switch
;; to or back from a floating frame (remember 'C-x 5 o' if you refuse this
;; proposal however).
;; You may also want to call `exwm-config-ido' later (see below).
(ido-mode 1)
;; Emacs server is not required to run EXWM but it has some interesting uses
;; (see next section).
(server-start)
;;;; Below are configurations for EXWM.
;; Add paths (not required if EXWM is installed from GNU ELPA).
;(add-to-list 'load-path "/path/to/xelb/")
;(add-to-list 'load-path "/path/to/exwm/")
;; Load EXWM.
(require 'exwm)
;; Fix problems with Ido (if you use it).
(require 'exwm-config)
(exwm-config-ido)
;; Set the initial number of workspaces (they can also be created later).
(setq exwm-workspace-number 10)
(require 'exwm-randr)
(setq exwm-randr-workspace-monitor-plist '(0 "DisplayPort-0" 1 "DisplayPort-1" 2 "HDMI-A-0"))
(add-hook 'exwm-randr-screen-change-hook
(lambda ()
(start-process-shell-command
"xrandr" nil "xrandr --output DisplayPort-0 --mode 1920x1080 --pos 0x0 --rotate normal --output DisplayPort-1 --primary --mode 1920x1080 --pos 1920x0 --rotate normal --output HDMI-A-0 --mode 1920x1080 --pos 3840x0 --rotate normal")))
(exwm-randr-enable)
(require 'exwm-systemtray)
(exwm-systemtray-enable)
;; All buffers created in EXWM mode are named "*EXWM*". You may want to
;; change it in `exwm-update-class-hook' and `exwm-update-title-hook', which
;; are run when a new X window class name or title is available. Here's
;; some advice on this topic:
;; + Always use `exwm-workspace-rename-buffer` to avoid naming conflict.
;; + For applications with multiple windows (e.g. GIMP), the class names of
; all windows are probably the same. Using window titles for them makes
;; more sense.
;; In the following example, we use class names for all windows except for
;; Java applications and GIMP.
(add-hook 'exwm-update-class-hook
(lambda ()
(unless (or (string-prefix-p "sun-awt-X11-" exwm-instance-name)
(string= "gimp" exwm-instance-name))
(exwm-workspace-rename-buffer exwm-class-name))))
(add-hook 'exwm-update-title-hook
(lambda ()
(when (or (not exwm-instance-name)
(string-prefix-p "sun-awt-X11-" exwm-instance-name)
(string= "gimp" exwm-instance-name))
(exwm-workspace-rename-buffer exwm-title))))
;; Global keybindings can be defined with `exwm-input-global-keys'.
;; Here are a few examples:
(setq exwm-input-global-keys
`(
;; Bind "s-r" to exit char-mode and fullscreen mode.
([?\s-r] . exwm-reset)
;; Bind "s-w" to switch workspace interactively.
([?\s-w] . exwm-workspace-switch)
;; Bind "s-0" to "s-9" to switch to a workspace by its index.
,@(mapcar (lambda (i)
`(,(kbd (format "s-%d" i)) .
(lambda ()
(interactive)
(exwm-workspace-switch-create ,i))))
(number-sequence 0 9))
;; Bind "s-&" to launch applications ('M-&' also works if the output
;; buffer does not bother you).
([?\s-&] . (lambda (command)
(interactive (list (read-shell-command "$ ")))
(start-process-shell-command command nil command)))
([s-return] . (lambda ()
(interactive)
(start-process "" nil "alacritty")))
([?\s-p] . (lambda ()
(interactive)
(start-process "" nil "dmenu_run")))
([?\s-f] . (lambda ()
(interactive)
(start-process "" nil "firefox")))
([s-f2] . (lambda ()
(interactive)
(start-process "" nil "/usr/bin/slock")))))
;; To add a key binding only available in line-mode, simply define it in
;; `exwm-mode-map'. The following example shortens 'C-c q' to 'C-q'.
(define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key)
;; The following example demonstrates how to use simulation keys to mimic
;; the behavior of Emacs. The value of `exwm-input-simulation-keys` is a
;; list of cons cells (SRC . DEST), where SRC is the key sequence you press
;; and DEST is what EXWM actually sends to application. Note that both SRC
;; and DEST should be key sequences (vector or string).
(setq exwm-input-simulation-keys
'(
;; movement
([?\C-b] . [left])
([?\M-b] . [C-left])
([?\C-f] . [right])
([?\M-f] . [C-right])
([?\C-p] . [up])
([?\C-n] . [down])
([?\C-a] . [home])
([?\C-e] . [end])
([?\M-v] . [prior])
([?\C-v] . [next])
([?\C-d] . [delete])
([?\C-k] . [S-end delete])
;; cut/paste.
([?\C-w] . [?\C-x])
([?\M-w] . [?\C-c])
([?\C-y] . [?\C-v])
;; search
([?\C-s] . [?\C-f])))
;; You can hide the minibuffer and echo area when they're not used, by
;; uncommenting the following line.
;(setq exwm-workspace-minibuffer-position 'bottom)
;; Do not forget to enable EXWM. It will start by itself when things are
;; ready. You can put it _anywhere_ in your configuration.
(exwm-enable)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; END OF EXWM CONFIG ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 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:
(setq doom-font (font-spec :family "Mononoki Nerd Font" :size 15)
doom-variable-pitch-font (font-spec :family "Mononoki Nerd Font" :size 15))
;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the
;; `load-theme' function. This is the default:
(setq doom-theme 'doom-palenight)
;; If you use `org' and don't want your org files in the default location below,
;; change `org-directory'. It must be set before org loads!
(setq org-directory "~/Documents/org/")
;; This determines the style of line numbers in effect. If set to `nil', line
;; numbers are disabled. For relative line numbers, set this to `relative'.
(setq display-line-numbers-type t)
;; Setting the neotree width to be adjustable.
(setq neo-window-fixed-size nil)
;; Sets binding to toggle line wrap on/off.
(global-set-key "\C-x\ t" 'toggle-truncate-lines)
;; Sets binding to launch elfeed
(global-set-key (kbd "s-a") 'emms)
(global-set-key (kbd "s-b") 'ibuffer)
(global-set-key (kbd "s-d") 'dired)
(global-set-key (kbd "s-m") 'mu4e)
(global-set-key (kbd "s-n") 'elfeed)
(global-set-key (kbd "s-s") 'eshell)
(setq neo-window-fixed-size nil)
;; Set browser to eww
(setq browse-url-browser-function 'eww-browse-url)
;; Force splits to open on the right
(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)
;; Image previews in dired
(global-set-key (kbd "C-x i") 'peep-dired)
(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)
;; Sets transparency for focuses and unfocused frames.
;; (set-frame-parameter (selected-frame) 'alpha '(95 . 80))
;; (add-to-list 'default-frame-alist '(alpha . (95 . 80)))
;; Setting the indent guides to show a pipe character.
;; (def-package! highlight-indent-guides
;; :commands highlight-indent-guides-mode
;; :hook (prog-mode . highlight-indent-guides-mode)
;; :config
;; (setq highlight-indent-guides-method 'character
;; highlight-indent-guides-character ?\|
;; highlight-indent-guides-delay 0.01
;; highlight-indent-guides-responsive 'top
;; highlight-indent-guides-auto-enabled nil))
(use-package emms
:ensure t
:config
(require 'emms-setup)
(require 'emms-info)
(require 'emms-cue) ;; Required for processing flacs.
(require 'emms-cue)
(require 'emms-mode-line)
(require 'emms-playing-time)
(setq emms-source-file-default-directory "~/Music/Non-Classical/70s-80s/")
@@ -241,20 +45,10 @@
(emms-mode-line 1)
(emms-playing-time 1))
;; 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.
;; Adding path to mu4e
(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)
;; Fields that are auto-filled in email such as the full name of the
;; sender, the salutation and signature.
(setq
user-mail-address "derek@distrotube.com"
user-full-name "Derek Taylor"
@@ -262,10 +56,6 @@
(concat
"Derek Taylor\n"
"http://www.youtube.com/DistroTube\n"))
;; 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.
(require 'smtpmail)
(setq message-send-mail-function 'smtpmail-send-it
starttls-use-gnutls t
@@ -276,37 +66,29 @@
smtpmail-smtp-server "smtp.1and1.com"
smtpmail-smtp-service 587)
;; Here are some additional functions/macros that could help you configure Doom:
;;
;; - `load!' for loading external *.el files relative to this one
;; - `use-package!' for configuring packages
;; - `after!' for running code after a package has loaded
;; - `add-load-path!' for adding directories to the `load-path', relative to
;; this file. Emacs searches the `load-path' when you load packages with
;; `require' or `use-package'.
;; - `map!' for binding new keys
;;
;; To get information about any of these functions/macros, move the cursor over
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
;; This will open documentation for it, including demos of how they are used.
;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
(setq mastodon-instance-url "https://mastodon.technology")
(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.
'(elfeed-feeds
(quote
("https://www.gamingonlinux.com/article_rss.php" "https://hackaday.com/blog/feed/" "https://opensource.com/feed" "https://linux.softpedia.com/backend.xml" "https://itsfoss.com/feed/" "https://www.zdnet.com/topic/linux/rss.xml" "https://www.phoronix.com/rss.php" "http://feeds.feedburner.com/d0od" "https://www.computerworld.com/index.rss" "https://www.networkworld.com/category/linux/index.rss" "https://www.techrepublic.com/rssfeeds/topic/open-source/" "https://betanews.com/feed" "http://lxer.com/module/newswire/headlines.rss" "https://distrowatch.com/news/dwd.xml")))
'(package-selected-packages (quote (exwm peep-dired nav-flash evil-mu4e emms elfeed))))
(("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))))
(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.
)

158
.doom.d/config.org Normal file
View File

@@ -0,0 +1,158 @@
#+TITLE: DT's Doom Emacs Config
#+AUTHOR: Derek Taylor (DT)
** 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
(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

View File

@@ -178,5 +178,5 @@
;;twitter ; twitter client https://twitter.com/vnought
:config
;;literate
literate
(default +bindings +smartparens))

View File

@@ -49,6 +49,7 @@
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t)
(package! exwm)
(package! mastodon)
(package! emms)
(package! emojify)
(package! elfeed)