Removed vertico, improved dashboard
This commit is contained in:
parent
198d057f26
commit
8be34ee76b
1 changed files with 127 additions and 85 deletions
212
config.org
212
config.org
|
|
@ -7,6 +7,7 @@
|
||||||
- [[#important-programs-to-load-first][IMPORTANT PROGRAMS TO LOAD FIRST]]
|
- [[#important-programs-to-load-first][IMPORTANT PROGRAMS TO LOAD FIRST]]
|
||||||
- [[#recent-files][Recent Files]]
|
- [[#recent-files][Recent Files]]
|
||||||
- [[#keybindings][Keybindings]]
|
- [[#keybindings][Keybindings]]
|
||||||
|
- [[#focus-new-windows][Focus new windows]]
|
||||||
- [[#support-functions][Support functions]]
|
- [[#support-functions][Support functions]]
|
||||||
- [[#emacs-function-launcher][Emacs function launcher]]
|
- [[#emacs-function-launcher][Emacs function launcher]]
|
||||||
- [[#copy-to-clipboard][Copy to clipboard]]
|
- [[#copy-to-clipboard][Copy to clipboard]]
|
||||||
|
|
@ -55,7 +56,7 @@
|
||||||
- [[#nerd-icons-completion][Nerd Icons Completion]]
|
- [[#nerd-icons-completion][Nerd Icons Completion]]
|
||||||
- [[#buffer-move][Buffer Move]]
|
- [[#buffer-move][Buffer Move]]
|
||||||
- [[#completions][Completions]]
|
- [[#completions][Completions]]
|
||||||
- [[#vertico][Vertico]]
|
- [[#orderless][Orderless]]
|
||||||
- [[#fido-mode][Fido-mode]]
|
- [[#fido-mode][Fido-mode]]
|
||||||
- [[#descriptions][Descriptions]]
|
- [[#descriptions][Descriptions]]
|
||||||
- [[#communication][Communication]]
|
- [[#communication][Communication]]
|
||||||
|
|
@ -79,6 +80,39 @@
|
||||||
(global-set-key (kbd "M-o") 'other-window)
|
(global-set-key (kbd "M-o") 'other-window)
|
||||||
;;(windmove-default-keybindings) ;; move between windows with S-<left>, S-<right>, S-<up>, S-<down>
|
;;(windmove-default-keybindings) ;; move between windows with S-<left>, S-<right>, S-<up>, S-<down>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
** Focus new windows
|
||||||
|
Found this [[https://emacs.stackexchange.com/questions/21770/automatically-switch-focus-to-new-window][here]] and [[https://github.com/snackon/Witchmacs#creating-a-new-window-switches-your-cursor-to-it][here]]
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defun split-and-follow-horizontally ()
|
||||||
|
(interactive)
|
||||||
|
(split-window-below)
|
||||||
|
(balance-windows)
|
||||||
|
(other-window 1))
|
||||||
|
|
||||||
|
(defun split-and-follow-vertically ()
|
||||||
|
(interactive)
|
||||||
|
(split-window-right)
|
||||||
|
(balance-windows)
|
||||||
|
(other-window 1))
|
||||||
|
|
||||||
|
(use-package emacs
|
||||||
|
:bind (:map ctl-x-map
|
||||||
|
("2" . split-and-follow-horizontally)
|
||||||
|
("3" . split-and-follow-vertically))
|
||||||
|
:custom
|
||||||
|
(info-lookup-other-window-flag t)
|
||||||
|
(help-window-select t "Switch to help buffers automatically"))
|
||||||
|
;; Auto-select new Info buffer window when it’s created.
|
||||||
|
(advice-add 'info-lookup :after
|
||||||
|
(lambda (&rest _)
|
||||||
|
(when-let (window (get-buffer-window "*info*"))
|
||||||
|
(select-window window))))
|
||||||
|
|
||||||
|
;; Auto-select new window after splitting. Splitting commands almost
|
||||||
|
;;,all use `split-window’, so advice the function for auto selection.
|
||||||
|
(advice-add 'split-window :after
|
||||||
|
(lambda (&rest _) (select-window (get-lru-window))))
|
||||||
|
#+end_src
|
||||||
* Support functions
|
* Support functions
|
||||||
** Emacs function launcher
|
** Emacs function launcher
|
||||||
Launches emacs function as a window
|
Launches emacs function as a window
|
||||||
|
|
@ -354,26 +388,73 @@ By default, Emacs creates automatic backups of files in their original directori
|
||||||
* Dashboard
|
* Dashboard
|
||||||
Emacs Dashboard is an extensible startup screen showing you recent files, bookmarks, agenda items and an Emacs banner.
|
Emacs Dashboard is an extensible startup screen showing you recent files, bookmarks, agenda items and an Emacs banner.
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package dashboard
|
(use-package dashboard
|
||||||
:ensure t
|
:ensure t
|
||||||
:init
|
:after nerd-icons
|
||||||
(setq initial-buffer-choice 'dashboard-open)
|
:init
|
||||||
(setq dashboard-set-heading-icons t)
|
(setq initial-buffer-choice (lambda () (get-buffer-create dashboard-buffer-name)))
|
||||||
(setq dashboard-set-file-icons t)
|
(setq dashboard-week-agenda t)
|
||||||
(setq dashboard-banner-logo-title "Emacs Is More Than A Text Editor!")
|
;;(setq dashboard-filter-agenda-entry 'dashboard-no-filter-agenda)
|
||||||
;;(setq dashboard-startup-banner 'logo) ;; use standard emacs logo as banner
|
(setq dashboard-display-icons-p t) ; display icons on both GUI and terminal
|
||||||
;;(setq dashboard-startup-banner "/home/dt/.config/emacs/images/emacs-dash.png") ;; use custom image as banner
|
(setq dashboard-icon-type 'nerd-icons) ; use `nerd-icons' package
|
||||||
(setq dashboard-center-content nil) ;; set to 't' for centered content
|
(setq dashboard-set-heading-icons t)
|
||||||
(setq dashboard-items '((recents . 5)
|
(setq dashboard-projects-backend 'project-el)
|
||||||
(agenda . 5 )
|
(setq dashboard-set-file-icons t)
|
||||||
(bookmarks . 3)
|
(setq dashboard-banner-logo-title "Emacs Is More Than A Text Editor!")
|
||||||
(projects . 3)
|
(setq dashboard-startup-banner 'logo) ;; use standard emacs logo as banner
|
||||||
(registers . 3)))
|
;;(setq dashboard-startup-banner "/home/dt/.config/emacs/images/emacs-dash.png") ;; use custom image as banner
|
||||||
:custom
|
(setq dashboard-center-content nil) ;; set to 't' for centered content
|
||||||
(dashboard-modify-heading-icons '((recents . "file-text")
|
(setq dashboard-items '((recents . 5)
|
||||||
(bookmarks . "book")))
|
(agenda . 5 )
|
||||||
:config
|
(bookmarks . 3)
|
||||||
(dashboard-setup-startup-hook))
|
(projects . 3)
|
||||||
|
(registers . 3)))
|
||||||
|
(setq dashboard-startupify-list '(dashboard-insert-banner
|
||||||
|
dashboard-insert-newline
|
||||||
|
dashboard-insert-banner-title
|
||||||
|
dashboard-insert-newline
|
||||||
|
dashboard-insert-navigator
|
||||||
|
dashboard-insert-newline
|
||||||
|
dashboard-insert-init-info
|
||||||
|
dashboard-insert-items
|
||||||
|
dashboard-insert-newline
|
||||||
|
dashboard-insert-footer))
|
||||||
|
(setq dashboard-navigator-buttons
|
||||||
|
`(;; Line 1
|
||||||
|
((,(nerd-icons-mdicon "nf-md-inbox" :height 1.1 :v-adjust 0.0)
|
||||||
|
"To Inbox"
|
||||||
|
"Capture to inbox"
|
||||||
|
(lambda (&rest _) (kylekrein/org-roam-capture-inbox)))
|
||||||
|
|
||||||
|
(,(nerd-icons-mdicon "nf-md-calendar" :height 1.1 :v-adjust 0.0)
|
||||||
|
"Agenda"
|
||||||
|
"View agenda"
|
||||||
|
(lambda (&rest _) (org-agenda)))
|
||||||
|
|
||||||
|
(,(nerd-icons-mdicon "nf-md-note" :height 1.1 :v-adjust 0.0)
|
||||||
|
"Note"
|
||||||
|
"Find a note"
|
||||||
|
(lambda (&rest _) (org-roam-node-find))))
|
||||||
|
|
||||||
|
;; Line 2
|
||||||
|
((,(nerd-icons-mdicon "nf-md-sync" :height 1.1 :v-adjust 0.0)
|
||||||
|
"Sync"
|
||||||
|
"Sync org-roam and agenda"
|
||||||
|
(lambda (&rest _)
|
||||||
|
(org-roam-db-sync)
|
||||||
|
(org-agenda-redo)
|
||||||
|
(message "Org-Roam and Agenda synced!")))
|
||||||
|
|
||||||
|
(,(nerd-icons-mdicon "nf-md-calendar_today" :height 1.1 :v-adjust 0.0)
|
||||||
|
"Today"
|
||||||
|
"View today's tasks"
|
||||||
|
(lambda (&rest _) (org-agenda nil "a"))))))
|
||||||
|
|
||||||
|
:custom
|
||||||
|
(dashboard-modify-heading-icons '((recents . "nf-oct-file_text")
|
||||||
|
(bookmarks . "nf-oct-book")))
|
||||||
|
:config
|
||||||
|
(dashboard-setup-startup-hook))
|
||||||
#+end_src
|
#+end_src
|
||||||
* Diminish
|
* Diminish
|
||||||
This package implements hiding or abbreviation of the modeline displays (lighters) of minor-modes. With this package installed, you can add ‘:diminish’ to any use-package block to hide that particular mode in the modeline.
|
This package implements hiding or abbreviation of the modeline displays (lighters) of minor-modes. With this package installed, you can add ‘:diminish’ to any use-package block to hide that particular mode in the modeline.
|
||||||
|
|
@ -965,77 +1046,38 @@ one, an error is signaled."
|
||||||
(select-window other-win))))
|
(select-window other-win))))
|
||||||
#+end_src
|
#+end_src
|
||||||
* Completions
|
* Completions
|
||||||
** Vertico
|
** Orderless
|
||||||
[[https://github.com/minad/vertico][Vertico]] provides a performant and minimalistic vertical completion UI based on the default completion system.
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
;; Enable vertico
|
|
||||||
(use-package vertico
|
|
||||||
:ensure t
|
|
||||||
:custom
|
|
||||||
;; (vertico-scroll-margin 0) ;; Different scroll margin
|
|
||||||
;; (vertico-count 20) ;; Show more candidates
|
|
||||||
;; (vertico-resize t) ;; Grow and shrink the Vertico minibuffer
|
|
||||||
(vertico-cycle t) ;; Enable cycling for `vertico-next/previous'
|
|
||||||
:bind (:map vertico-map
|
|
||||||
("C-j" . vertico-next)
|
|
||||||
("C-k" . vertico-previous)
|
|
||||||
:map minibuffer-local-map
|
|
||||||
("C-h" . backward-kill-word)
|
|
||||||
)
|
|
||||||
:init
|
|
||||||
(vertico-mode))
|
|
||||||
|
|
||||||
(vertico-mode t) ;; enable vertico for all buffers
|
|
||||||
;; Persist history over Emacs restarts. Vertico sorts by history position.
|
|
||||||
(use-package savehist
|
|
||||||
:init
|
|
||||||
(savehist-mode))
|
|
||||||
|
|
||||||
;; A few more useful configurations...
|
|
||||||
(use-package emacs
|
|
||||||
:custom
|
|
||||||
;; Support opening new minibuffers from inside existing minibuffers.
|
|
||||||
(enable-recursive-minibuffers t)
|
|
||||||
;; Hide commands in M-x which do not work in the current mode. Vertico
|
|
||||||
;; commands are hidden in normal buffers. This setting is useful beyond
|
|
||||||
;; Vertico.
|
|
||||||
(read-extended-command-predicate #'command-completion-default-include-p)
|
|
||||||
:init
|
|
||||||
;; Add prompt indicator to `completing-read-multiple'.
|
|
||||||
;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.
|
|
||||||
(defun crm-indicator (args)
|
|
||||||
(cons (format "[CRM%s] %s"
|
|
||||||
(replace-regexp-in-string
|
|
||||||
"\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
|
|
||||||
crm-separator)
|
|
||||||
(car args))
|
|
||||||
(cdr args)))
|
|
||||||
(advice-add #'completing-read-multiple :filter-args #'crm-indicator)
|
|
||||||
|
|
||||||
;; Do not allow the cursor in the minibuffer prompt
|
|
||||||
(setq minibuffer-prompt-properties
|
|
||||||
'(read-only t cursor-intangible t face minibuffer-prompt))
|
|
||||||
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode))
|
|
||||||
#+end_src
|
|
||||||
** Orderless
|
|
||||||
Better searching
|
Better searching
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
;; Optionally use the `orderless' completion style.
|
;; Optionally use the `orderless' completion style.
|
||||||
(use-package orderless
|
(use-package orderless
|
||||||
:ensure t
|
:ensure t
|
||||||
:custom
|
:custom
|
||||||
;; Configure a custom style dispatcher (see the Consult wiki)
|
;; Configure a custom style dispatcher (see the Consult wiki)
|
||||||
;; (orderless-style-dispatchers '(+orderless-consult-dispatch orderless-affix-dispatch))
|
;; (orderless-style-dispatchers '(+orderless-consult-dispatch orderless-affix-dispatch))
|
||||||
;; (orderless-component-separator #'orderless-escapable-split-on-space)
|
;; (orderless-component-separator #'orderless-escapable-split-on-space)
|
||||||
(completion-styles '(orderless basic))
|
(completion-styles '(orderless flex basic partial-completion))
|
||||||
(completion-category-defaults nil)
|
|
||||||
(completion-category-overrides '((file (styles partial-completion)))))
|
(completion-category-defaults nil)
|
||||||
|
(completion-category-overrides '((file (styles partial-completion)))))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Fido-mode
|
** Fido-mode
|
||||||
Enables fido completion in emacs.
|
Enables fido completion in emacs.
|
||||||
#+begin_src emacs-lispp
|
#+begin_src emacs-lisp
|
||||||
|
(global-completion-preview-mode)
|
||||||
(fido-mode t)
|
(fido-mode t)
|
||||||
|
(savehist-mode t)
|
||||||
(fido-vertical-mode t)
|
(fido-vertical-mode t)
|
||||||
|
(setf completion-auto-select t ;; Show completion on first call
|
||||||
|
completion-auto-help 'visible ;; Display *Completions* upon first request
|
||||||
|
completions-format 'one-column ;; Use only one column
|
||||||
|
completions-sort 'historical ;; Order based on minibuffer history
|
||||||
|
completions-max-height 20 ;; Limit completions to 15 (completions start at line 5)
|
||||||
|
completion-ignore-case t)
|
||||||
|
(define-key icomplete-minibuffer-map (kbd "SPC") 'self-insert-command) ;; Allows to type spaces, if no completions available
|
||||||
|
|
||||||
|
;; Have TAB complete using the first option and continue, instead of popping up the *Completions* buffer
|
||||||
|
(define-key icomplete-minibuffer-map [remap minibuffer-complete] 'icomplete-force-complete)
|
||||||
#+end_src
|
#+end_src
|
||||||
** Descriptions
|
** Descriptions
|
||||||
*** Marginalia
|
*** Marginalia
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue