Added pinentry, vertico, dired stuff, savehist, consult, transparency,
vterm, eshell, etc.
This commit is contained in:
@@ -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))))
|
||||
|
||||
|
||||
|
||||
@@ -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
237
Emacs.org
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user