Added pinentry, vertico, dired stuff, savehist, consult, transparency,

vterm, eshell, etc.
This commit is contained in:
opal
2021-12-23 00:12:36 -08:00
parent b8c7f3389b
commit feb2a41a4a
3 changed files with 303 additions and 68 deletions

View File

@@ -32,8 +32,8 @@
(set-default 'truncate-lines nil) ;; Wrap lines at end of screen
(setq visible-bell t) ;; Visible flash to represent a bell
(setq x-select-enable-clipboard t) ;; Enable clipboard
(global-tab-line-mode 1) ;; Enable Tabs
(setq inhibit-startup-message t) ;; No startup message
(global-tab-line-mode 1)
(setq inhibit-startup-message t)
;; Disable line mode for specific major/minor modes.
(dolist (mode '(org-mode-hook))
@@ -42,6 +42,11 @@
'eshell-mode-hook
(add-hook mode (lambda () (display-line-numbers-mode 0))))
(set-frame-parameter (selected-frame) 'alpha '(90 . 90))
(add-to-list 'default-frame-alist '(alpha . (90 . 90)))
(set-frame-parameter (selected-frame) 'fullscreen 'maximized)
(add-to-list 'default-frame-alist '(fullscreen . maximized))
(use-package doom-modeline
:straight t
:init (doom-modeline-mode 1)
@@ -89,6 +94,12 @@
(setq global-auto-revert-non-file-buffers nil)
(global-auto-revert-mode -1)
(use-package pinentry :straight t)
(setq epa-pinentry-mode 'loopback)
(pinentry-start)
(setq tramp-default-method "ssh")
(use-package modus-themes
:straight t
:init
@@ -133,9 +144,9 @@
"u" #'universal-argument ;; Universal argument
"w" #'evil-window-map ;; Window functions
"." #'find-file ;; Find file (opens in mini-buffer)
"," #'persp-switch-to-buffer ;; Switch to perspective.el minibuffer
"," #'consult-buffer ;; Switch to buffer
"<" #'switch-to-buffer ;; Switch to non-perspective.el minibuffer
"s" #'swiper ;; Search in current buffer
"s" #'consult-line ;; Search in current buffer
;; Magit
"gg" #'magit-status
@@ -197,38 +208,75 @@
:config
(evil-collection-init))
(use-package ivy
:straight t
:diminish
:bind (("C-s" . 'swiper)
:map ivy-minibuffer-map
("TAB" . ivy-alt-done)
("C-l" . ivy-alt-done)
("C-j" . ivy-next-line)
("C-k" . ivy-previous-line)
:map ivy-switch-buffer-map
("C-k" . ivy-previous-line)
("C-l" . ivy-done)
("C-d" . ivy-reverse-i-search-kill))
:config
(ivy-mode 1))
(use-package ivy-rich
:straight t
:after ivy
:init (ivy-rich-mode 1))
(use-package counsel
;; Enable vertico
(use-package vertico
:straight t
:bind
(("C-M-j" . 'counsel-switch-buffer)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history))
(:map vertico-map
("C-j" . vertico-next)
("C-k" . vertico-previous))
:init
(vertico-mode)
(setq vertico-scroll-margin 0) ;; Scroll margin
(setq vertico-count 10) ;; Candidates
(setq vertico-cycle t)) ;; Enable cycling
:custom
(counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
;; (use-package ivy
;; :straight t
;; :bind (("C-s" . 'swiper)
;; :map ivy-minibuffer-map
;; ("TAB" . ivy-alt-done)
;; ("C-l" . ivy-alt-done)
;; ("C-j" . ivy-next-line)
;; ("C-k" . ivy-previous-line)
;; :map ivy-switch-buffer-map
;; ("C-k" . ivy-previous-line)
;; ("C-l" . ivy-done)
;; ("C-d" . ivy-reverse-i-search-kill))
;; :config
;; (ivy-mode 1))
;; (use-package ivy-rich
;; :straight t
;; :after ivy
;; :init (ivy-rich-mode 1))
(use-package orderless
:straight t
:init
(setq completion-styles '(orderless)
completion-category-defaults nil
completion-category-overrides '((file (styles partial-completion)))))
(use-package savehist
:straight t
:init
(savehist-mode))
(use-package consult
:straight t
:defer t
:bind
(("C-s" . consult-line))
:config
(counsel-mode 1))
(setq
consult-narrow-key "<"
consult-line-numbers-widen t
consult-async-min-input 2
consult-async-refresh-delay 0.15
consult-async-input-throttle 0.2
consult-async-input-debounce 0.1))
;; (use-package counsel
;; :straight t
;; :bind
;; (("C-M-j" . 'counsel-switch-buffer)
;; :map minibuffer-local-map
;; ("C-r" . 'counsel-minibuffer-history))
;; :custom
;; (counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
;; :config
;; (counsel-mode 1))
;; Set org agenda dir
(setq org-directory "~/Org/")
@@ -395,6 +443,13 @@
(use-package flycheck :straight t)
(setq-default tab-width 2) ;; Set tab indent to 2
(setq-default evil-shift-width tab-width) ;; Ensure evil matches tab-width
(setq-default indent-tabs-mode nil) ;; Use spaces instead of tabs
;; Clean up whitespace
(use-package ws-butler :straight t)
(use-package rainbow-delimiters
:straight t
:init
@@ -466,3 +521,15 @@
;; erc-interpret-mirc-color t
;; erc-rename-buffers t
;; erc-track-exclude-server-buffer t))
(use-package openwith
:straight t
:config
(setq openwith-associations
(list
(openwith-make-extension-regexp
'("pdf"))
"zathura"
'(file))))

View File

@@ -12,4 +12,5 @@ export XDG_DATA_HOME=~/.local/share
export XDG_STATE_HOME=~/.config/zsh
export EDITOR=nvim
export VISUAL=nvim
export GUIX_PROFILE="$HOME/.config/guix/current" . "$GUIX_PROFILE/etc/profile"
export GUIX_PROFILE="$HOME/.config/guix/current"
. "$GUIX_PROFILE/etc/profile"

237
Emacs.org
View File

@@ -58,6 +58,13 @@ I use [[https://github.com/raxod502/straight.el][straight.el]] for managing pack
'eshell-mode-hook
(add-hook mode (lambda () (display-line-numbers-mode 0))))
#+end_src
*** Transparency
#+begin_src emacs-lisp
(set-frame-parameter (selected-frame) 'alpha '(90 . 90))
(add-to-list 'default-frame-alist '(alpha . (90 . 90)))
(set-frame-parameter (selected-frame) 'fullscreen 'maximized)
(add-to-list 'default-frame-alist '(fullscreen . maximized))
#+end_src
*** Modeline
Doom's modeline is excellent, and much less cluttered than the default Emacs modeline.
@@ -128,6 +135,16 @@ Helpful.el is a package that reformats the describe-X functions to be much more
(setq global-auto-revert-non-file-buffers nil)
(global-auto-revert-mode -1)
#+end_src
*** Pinentry
#+begin_src emacs-lisp
(use-package pinentry :straight t)
(setq epa-pinentry-mode 'loopback)
(pinentry-start)
#+end_src
*** Tramp
#+begin_src emacs-lisp
(setq tramp-default-method "ssh")
#+end_src
** Theme
I really enjoy [[https://protesilaos.com/emacs/modus-themes][Modus Themes]] by Protesilaos Stavrou. They are minimal, high contrast, and easy on the eyes.
#+begin_src emacs-lisp
@@ -188,9 +205,9 @@ I really enjoy having a leader key and eschewing the Control and Alt keys entire
"u" #'universal-argument ;; Universal argument
"w" #'evil-window-map ;; Window functions
"." #'find-file ;; Find file (opens in mini-buffer)
"," #'persp-switch-to-buffer ;; Switch to perspective.el minibuffer
"," #'consult-buffer ;; Switch to buffer
"<" #'switch-to-buffer ;; Switch to non-perspective.el minibuffer
"s" #'swiper ;; Search in current buffer
"s" #'consult-line ;; Search in current buffer
;; Magit
"gg" #'magit-status
@@ -201,7 +218,7 @@ I really enjoy having a leader key and eschewing the Control and Alt keys entire
"bd" #'kill-buffer
;; Terminal/Shell
"tt" #'term
"tt" #'vterm
"te" #'eshell
;; Org
@@ -224,8 +241,11 @@ I really enjoy having a leader key and eschewing the Control and Alt keys entire
"dv" #'describe-variable
"ds" #'describe-symbol
"dk" #'describe-key
"dp" #'describe-package))
"dp" #'describe-package
;; Windows
"wu" #'winner-undo
"wr" #'winner-redo))
#+end_src
*** Evil
@@ -258,46 +278,145 @@ I really enjoy having a leader key and eschewing the Control and Alt keys entire
#+end_src
** Completion Frameworks
At the moment, I'm trying out Ivy and counsel but I've used Vertico and liked it as well.
*** Ivy
*** Vertico
#+begin_src emacs-lisp
(use-package ivy
;; Enable vertico
(use-package vertico
:straight t
:diminish
:bind (("C-s" . 'swiper)
:map ivy-minibuffer-map
("TAB" . ivy-alt-done)
("C-l" . ivy-alt-done)
("C-j" . ivy-next-line)
("C-k" . ivy-previous-line)
:map ivy-switch-buffer-map
("C-k" . ivy-previous-line)
("C-l" . ivy-done)
("C-d" . ivy-reverse-i-search-kill))
:config
(ivy-mode 1))
:bind
(:map vertico-map
("C-j" . vertico-next)
("C-k" . vertico-previous))
:init
(vertico-mode)
(setq vertico-scroll-margin 0) ;; Scroll margin
(setq vertico-count 10) ;; Candidates
(setq vertico-cycle t)) ;; Enable cycling
(use-package ivy-rich
;; (use-package ivy
;; :straight t
;; :bind (("C-s" . 'swiper)
;; :map ivy-minibuffer-map
;; ("TAB" . ivy-alt-done)
;; ("C-l" . ivy-alt-done)
;; ("C-j" . ivy-next-line)
;; ("C-k" . ivy-previous-line)
;; :map ivy-switch-buffer-map
;; ("C-k" . ivy-previous-line)
;; ("C-l" . ivy-done)
;; ("C-d" . ivy-reverse-i-search-kill))
;; :config
;; (ivy-mode 1))
;; (use-package ivy-rich
;; :straight t
;; :after ivy
;; :init (ivy-rich-mode 1))
#+end_src
*** Orderless
Completion style
#+begin_src emacs-lisp
(use-package orderless
:straight t
:after ivy
:init (ivy-rich-mode 1))
:init
(setq completion-styles '(orderless)
completion-category-defaults nil
completion-category-overrides '((file (styles partial-completion)))))
#+end_src
*** History
Persistent history
#+begin_src emacs-lisp
(use-package savehist
:straight t
:init
(savehist-mode))
#+end_src
*** Counsel
#+begin_src emacs-lisp
(use-package counsel
(use-package consult
:straight t
:bind
(("C-M-j" . 'counsel-switch-buffer)
:map minibuffer-local-map
("C-r" . 'counsel-minibuffer-history))
:custom
(counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
:defer t
:config
(counsel-mode 1))
(setq
consult-narrow-key "<"
consult-line-numbers-widen t
consult-async-min-input 2
consult-async-refresh-delay 0.15
consult-async-input-throttle 0.2
consult-async-input-debounce 0.1))
;; (use-package counsel
;; :straight t
;; :bind
;; (("C-M-j" . 'counsel-switch-buffer)
;; :map minibuffer-local-map
;; ("C-r" . 'counsel-minibuffer-history))
;; :custom
;; (counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only)
;; :config
;; (counsel-mode 1))
#+end_src
*** Marginalia
Marginalia provides annotations next to minibuffer items.
#+begin_src emacs-lisp
(use-package marginalia
:straight t
:bind (("M-A" . marginalia-cycle)
:map minibuffer-local-map
("M-A" . marginalia-cycle))
:init
(marginalia-mode))
#+end_src
** Buffer & Workspaces
*** Bufler
Helps organize buffers in groups.
#+begin_src emacs-lisp
(use-package bufler :straight t)
#+end_src
*** Winner
Allows window undo
#+begin_src emacs-lisp
(use-package winner
:straight t)
#+end_src
** File Browser
I don't even think I've heard of an alternative to Dired...
#+begin_src emacs-lisp
(use-package all-the-icons-dired :straight t)
(use-package dired-single :straight t)
(use-package dired-collapse :straight t)
;; Make pretty colors!
(use-package dired-rainbow
:straight t
:after dired
:config
(dired-rainbow-define-chmod directory "#6cb2eb" "d.*")
(dired-rainbow-define html "#eb5286" ("css" "less" "sass" "scss" "htm" "html" "jhtm" "mht" "eml" "mustache" "xhtml"))
(dired-rainbow-define xml "#f2d024" ("xml" "xsd" "xsl" "xslt" "wsdl" "bib" "json" "msg" "pgn" "rss" "yaml" "yml" "rdata"))
(dired-rainbow-define document "#9561e2" ("docm" "doc" "docx" "odb" "odt" "pdb" "pdf" "ps" "rtf" "djvu" "epub" "odp" "ppt" "pptx"))
(dired-rainbow-define markdown "#ffed4a" ("org" "etx" "info" "markdown" "md" "mkd" "nfo" "pod" "rst" "tex" "textfile" "txt"))
(dired-rainbow-define database "#6574cd" ("xlsx" "xls" "csv" "accdb" "db" "mdb" "sqlite" "nc"))
(dired-rainbow-define media "#de751f" ("mp3" "mp4" "mkv" "MP3" "MP4" "avi" "mpeg" "mpg" "flv" "ogg" "mov" "mid" "midi" "wav" "aiff" "flac"))
(dired-rainbow-define image "#f66d9b" ("tiff" "tif" "cdr" "gif" "ico" "jpeg" "jpg" "png" "psd" "eps" "svg"))
(dired-rainbow-define log "#c17d11" ("log"))
(dired-rainbow-define shell "#f6993f" ("awk" "bash" "bat" "sed" "sh" "zsh" "vim"))
(dired-rainbow-define interpreted "#38c172" ("py" "ipynb" "rb" "pl" "t" "msql" "mysql" "pgsql" "sql" "r" "clj" "cljs" "scala" "js"))
(dired-rainbow-define compiled "#4dc0b5" ("asm" "cl" "lisp" "el" "c" "h" "c++" "h++" "hpp" "hxx" "m" "cc" "cs" "cp" "cpp" "go" "f" "for" "ftn" "f90" "f95" "f03" "f08" "s" "rs" "hi" "hs" "pyc" ".java"))
(dired-rainbow-define executable "#8cc4ff" ("exe" "msi"))
(dired-rainbow-define compressed "#51d88a" ("7z" "zip" "bz2" "tgz" "txz" "gz" "xz" "z" "Z" "jar" "war" "ear" "rar" "sar" "xpi" "apk" "xz" "tar"))
(dired-rainbow-define packaged "#faad63" ("deb" "rpm" "apk" "jad" "jar" "cab" "pak" "pk3" "vdf" "vpk" "bsp"))
(dired-rainbow-define encrypted "#ffed4a" ("gpg" "pgp" "asc" "bfe" "enc" "signature" "sig" "p12" "pem"))
(dired-rainbow-define fonts "#6cb2eb" ("afm" "fon" "fnt" "pfb" "pfm" "ttf" "otf"))
(dired-rainbow-define partition "#e3342f" ("dmg" "iso" "bin" "nrg" "qcow" "toast" "vcd" "vmdk" "bak"))
(dired-rainbow-define vc "#0074d9" ("git" "gitignore" "gitattributes" "gitmodules"))
(dired-rainbow-define-chmod executable-unix "#38c172" "-.*x.*"))
#+end_src
** Org
*** General Configuration
#+begin_src emacs-lisp
@@ -483,6 +602,15 @@ Creates margins in Org mode to make it more pleasant to look at.
#+begin_src emacs-lisp
(use-package flycheck :straight t)
#+end_src
**** Tabs/Spaces
#+begin_src emacs-lisp
(setq-default tab-width 2) ;; Set tab indent to 2
(setq-default evil-shift-width tab-width) ;; Ensure evil matches tab-width
(setq-default indent-tabs-mode nil) ;; Use spaces instead of tabs
;; Clean up whitespace
(use-package ws-butler :straight t)
#+end_src
**** Rainbow Delimiters
#+begin_src emacs-lisp
(use-package rainbow-delimiters
@@ -512,11 +640,51 @@ Sets HTML strings to have the background of the color they represent.
#+begin_src emacs-lisp
(use-package sly :straight t)
#+end_src
* Tools
** Magit
#+begin_src emacs-lisp
(use-package magit
:straight t)
#+end_src
** Eshell
#+begin_src emacs-lisp
(use-package eshell-git-prompt :straight t)
(use-package eshell
:hook (eshell-first-time-mode . eshell-config)
:config
;; Save command history when commands are entered
(add-hook 'eshell-pre-command-hook 'eshell-save-some-history)
;; Truncate buffer for performance
(add-to-list 'eshell-output-filter-functions 'eshell-truncate-buffer)
;; Evil keybinds
(evil-define-key '(normal insert visual) eshell-mode-map (kbd "C-r") 'counsel-esh-history)
(evil-define-key '(normal insert visual) eshell-mode-map (kbd "<home>") 'eshell-bol)
(evil-normalize-keymaps)
(setq eshell-history-size 10000
eshell-buffer-maximum-lines 10000
eshell-hist-ignoredups t
eshell-scroll-to-bottom-on-input t)
(with-eval-after-load 'esh-opt
(setq eshell-destroy-buffer-when-process-dies t)
(setq eshell-visual-commands '("htop" "zsh" "vim")))
(eshell-git-prompt-use-theme 'powerline))
#+end_src
** Vterm
#+begin_src emacs-lisp
(use-package vterm
:straight t
:commands vterm
:config
(setq term-prompt-regexp "^[^#$%>\n]*[#$%>] *") ;; Terminal prompt
(setq vterm-shell "zsh")
(setq vterm-max-scrollback 10000))
#+end_src
** E-Mail
I've been using IceDove/Thunderbird for e-mail until I get around to making this a comparable solutions.
@@ -573,8 +741,7 @@ Right now I'm pretty happy with Matrix bridging into IRC rooms so this will stay
;; erc-interpret-mirc-color t
;; erc-rename-buffers t
;; erc-track-exclude-server-buffer t))
#+end_src
#+end_src
* EXWM Configuration
I basically live in Emacs so might as well let it handle my browsers.