From 2f1fae779f9aec6d3a3a45738ab3e95bae551e0a Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Thu, 18 Aug 2022 10:54:14 +0700 Subject: [PATCH] Start switching to VEMCO. Start switching to dirvish. Fisrt display-buffer-alist --- .emacs.vanilla/init.el | 153 ++++++++++++++++++----------------------- 1 file changed, 66 insertions(+), 87 deletions(-) diff --git a/.emacs.vanilla/init.el b/.emacs.vanilla/init.el index d4693f7..d58d1fd 100644 --- a/.emacs.vanilla/init.el +++ b/.emacs.vanilla/init.el @@ -4,7 +4,6 @@ (setq backup-directory-alist `((".*" . "~/.emacs.d/saves")) delete-old-versions t) (setq auto-save-file-name-transforms `((".*" ,temporary-file-directory t))) -(setq delete-by-moving-to-trash t) (setq user-full-name "Joseph Ferano" user-mail-address "joseph@ferano.io") @@ -21,7 +20,6 @@ (add-hook 'text-mode-hook (lambda () (setq fill-column 90) (turn-on-auto-fill))) (put 'narrow-to-region 'disabled nil) -(put 'dired-find-alternate-file 'disabled nil) (require 'server) (if (not (server-running-p)) (server-start)) @@ -135,8 +133,9 @@ all of the evil keybindings in buffers like magit, without compromises." (feebleline-git-branch :face feebleline-git-face :pre " - "))) '(flycheck-color-mode-line-face-to-color 'mode-line-buffer-id) '(frame-background-mode 'dark) + '(org-agenda-files '("~/todo.org")) '(package-selected-packages - '(eglot-fsharp evil-textobj-tree-sitter tree-sitter-langs tree-sitter consult-eglot eglot lsp-ui nano-modeline mini-modeline simple-modeline dimmer pdf-tools dap-mode csharp-mode consult-lsp lsp-mode consult flycheck all-the-icons-completion kind-icon mini-modeline good-scroll shelldon pcomplete-extension corfu-doc esh-autosuggest fish-completion cape corfu highlight-quoted writeroom-mode mini-frame dirvish ranger evil-goggles magit multi-vterm evil-collection smartparens vterm all-the-icons-dired all-the-icons org-bullets select-themes fsharp-mode fish-mode find-file-in-project helpful ahk-mode rainbow-delimiters doom-themes marginalia selectrum-prescient prescient selectrum avy evil-commentary evil-embrace evil-snipe evil-surround undo-tree which-key dashboard)) + '(org-kanban embark-consult embark olivetti vertico-posframe orderless vertico eglot-fsharp consult-eglot eglot nano-modeline mini-modeline pdf-tools consult all-the-icons-completion kind-icon mini-modeline shelldon pcomplete-extension corfu-doc esh-autosuggest fish-completion cape corfu highlight-quoted dirvish ranger magit multi-vterm evil-collection smartparens vterm all-the-icons org-bullets fsharp-mode fish-mode find-file-in-project helpful ahk-mode rainbow-delimiters doom-themes marginalia avy evil-commentary evil-surround undo-tree which-key dashboard)) '(window-divider-mode nil)) (custom-set-faces ;; custom-set-faces was added by Custom. @@ -156,6 +155,7 @@ all of the evil keybindings in buffers like magit, without compromises." (load-theme 'doom-vibrant t) ;; (load-theme 'doom-flatwhite t) + (setq evil-want-keybinding nil) (setq evil-undo-system 'undo-tree) (setq evil-want-C-u-scroll t) @@ -176,24 +176,18 @@ all of the evil keybindings in buffers like magit, without compromises." (setq save-place-file "~/.emacs.vanilla/places") (require 'dired) -(if (eq system-type 'windows-nt) - (setq ls-lisp-dirs-first t) - (setq dired-listing-switches "-ahlgo -v --group-directories-first")) +(require 'dirvish) +(setq delete-by-moving-to-trash t) (setq dired-dwim-target t) - -;; (require 'dimmer) -;; (setq dimmer-adjustment-mode :both) -;; (dimmer-mode 1) - -(defun joe/dired-open-with-wsl-open () - "Open file under cursor with wsl-open which should launch it on the windows side." - (interactive) - (shell-command (format "wsl-open %s" (dired-get-filename)))) - -(defun joe/dired-find-file-other-window () - "In Dired, visit this file or directory in another window." - (interactive) - (find-file-other-window (dired-get-file-for-visit))) +(setq dirvish-preview-dispatchers (cl-substitute 'pdf-preface 'pdf dirvish-preview-dispatchers)) +(dirvish-define-preview exa (file) + "Use `exa' to generate directory preview." + :require ("exa") ; tell Dirvish to check if we have the executable + (when (file-directory-p file) ; we only interest in directories here + `(shell . ("exa" "--color=always" "-al" ,file)))) ; use the command output as preview +(setq dired-listing-switches "-l --almost-all --human-readable --time-style=long-iso --group-directories-first --no-group") +(add-to-list 'dirvish-preview-dispatchers 'exa) +(evil-define-key 'normal dirvish-mode-map (kbd "q") 'dirvish-quit) (defun joe/dired-open-file () "In dired, open the file named on this line." @@ -207,29 +201,14 @@ all of the evil keybindings in buffers like magit, without compromises." (bookmark-set) (bookmark-save)) -(add-hook 'dired-mode-hook - (lambda () - (rename-buffer (concat "Dired - " dired-directory)) - (all-the-icons-dired-mode) - (evil-define-key 'normal dired-mode-map (kbd "-") (lambda () (interactive) (find-alternate-file ".."))) - (evil-define-key 'normal dired-mode-map (kbd "o") - (lambda () (interactive) (joe/dired-open-file))) - (evil-define-key 'normal dired-mode-map (kbd "s") - (lambda () (interactive) (dired-sort-toggle-or-edit))) - (evil-define-key 'normal dired-mode-map (kbd "") - (lambda () (interactive) (dired-find-alternate-file))))) - (defun lsp-related-stuff () (evil-define-key 'normal 'global (kbd "M-s") 'consult-imenu) (evil-define-key 'normal 'global (kbd "M-i") 'eldoc) - (evil-define-key 'normal 'global (kbd "M-e") 'flycheck-next-error) - (evil-define-key 'normal 'global (kbd "M-E") 'flycheck-previous-error)) + (evil-define-key 'normal 'global (kbd "M-e") 'flymake-goto-next-error) + (evil-define-key 'normal 'global (kbd "M-E") 'flymake-goto-prev-error)) (add-hook 'prog-mode-hook 'lsp-related-stuff) -;; (require 'dired-jump) -(evil-define-key 'normal 'global (kbd "-") 'dired-jump) - (require 'dashboard) (dashboard-setup-startup-hook) (setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*"))) @@ -266,7 +245,7 @@ all of the evil keybindings in buffers like magit, without compromises." (evil-define-key 'normal 'global (kbd "ho") 'helpful-symbol) (evil-define-key 'normal 'global (kbd "hg") 'helpful-at-point) (evil-define-key 'normal 'global (kbd "fb") 'bookmark-jump) -(evil-define-key 'normal 'global (kbd "fr") 'joe/recentf-open-files) +(evil-define-key 'normal 'global (kbd "fr") 'consult-recent-file) (evil-define-key 'normal 'global (kbd "ff") 'ffip) (evil-define-key 'normal 'global (kbd "fi") 'joe/edit-init) (evil-define-key 'normal 'global (kbd "bl") 'mode-line-other-buffer) @@ -287,24 +266,10 @@ all of the evil keybindings in buffers like magit, without compromises." (evil-define-key 'normal 'global (kbd "tv") 'vterm-other-window) (evil-define-key 'normal 'global (kbd "Ba") 'joe/bookmark-set-and-save) (evil-define-key 'normal 'global (kbd "Bd") 'bookmark-delete) -;; (evil-define-key 'insert vterm-mode-map (kbd "C-t") #'multi-vterm-dedicated-toggle) -;; (evil-define-key 'normal vterm-mode-map (kbd "C-t") #'multi-vterm-dedicated-toggle) -(evil-define-key 'normal 'global (kbd "cc") 'joe/compile) +(evil-define-key 'normal 'global (kbd "cr") 'joe/compile-run) +(evil-define-key 'normal 'global (kbd "cc") 'joe/compile-comp) +(evil-define-key 'normal 'global (kbd "ct") 'consult-theme) -(defun joe/half-scroll-down () - (interactive) - (good-scroll-move (/ (good-scroll--window-usable-height) 2))) - -(defun joe/half-scroll-up () - (interactive) - (good-scroll-move (- (/ (good-scroll--window-usable-height) 2)))) -;; (setq good-scroll-avoid-vscroll-reset 1) -;; (evil-define-key 'normal 'global (kbd "C-e") 'good-scroll-up) -;; (evil-define-key 'normal 'global (kbd "C-y") 'good-scroll-down) -;; (evil-define-key 'normal 'global (kbd "C-d") 'joe/half-scroll-down) -;; (evil-define-key 'normal 'global (kbd "C-u") 'joe/half-scroll-up) -;; (evil-define-key 'normal 'global (kbd "C-f") 'good-scroll-up-full-screen) -;; (evil-define-key 'normal 'global (kbd "C-b") 'good-scroll-down-full-screen) (evil-define-key 'normal 'global (kbd "C-h") 'evil-window-left) (evil-define-key 'normal 'global (kbd "C-j") 'evil-window-down) (evil-define-key 'normal 'global (kbd "C-k") 'evil-window-up) @@ -355,23 +320,39 @@ all of the evil keybindings in buffers like magit, without compromises." (org-bullets-mode) (org-indent-mode)) (add-hook 'org-mode-hook 'joe/org-mode-setup) +(setq org-todo-keywords '((sequence "TODO" "IN-PROGRESS" "|" "DONE" "BACKLOG"))) -(require 'selectrum) -(require 'prescient) -(selectrum-mode +1) -(selectrum-prescient-mode +1) -(prescient-persist-mode +1) -(marginalia-mode +1) -(advice-add #'marginalia-cycle :after - (lambda () (when (bound-and-true-p selectrum-mode) (selectrum-exhibit)))) +(require 'olivetti) +(setq olivetti-minimum-body-width 120) + +;; (require 'selectrum) +;; (require 'prescient) +;; (selectrum-mode +1) +;; (selectrum-prescient-mode +1) +;; (prescient-persist-mode +1) +;; VEMCO + +(require 'vertico) +(vertico-mode) +(vertico-multiform-mode) +(define-key vertico-map "\M-G" #'vertico-multiform-mode) +(require 'vertico-posframe) +(setq vertico-posframe-min-width 150) +(setq vertico-posframe-min-height 30) +(vertico-posframe-mode) +(require 'embark) +(require 'embark-consult) +(define-key vertico-map "\M-e" #'embark-act) + +(require 'marginalia) +(marginalia-mode t) (setq marginalia-annotators '(marginalia-annotators-heavy marginalia-annotators-light nil)) - -(defun joe/recentf-open-files () - "Use `completing-read' to open a recent file." - (interactive) - (let ((files (mapcar 'abbreviate-file-name recentf-list))) - (find-file (completing-read "Find recent file: " files nil t)))) +(require 'orderless) +(setq completion-styles '(orderless basic) + completion-category-overrides '((file (styles basic partial-completion)))) +(require 'savehist) +(savehist-mode) (require 'recentf) (setq recentf-max-saved-items 1000) @@ -418,7 +399,7 @@ all of the evil keybindings in buffers like magit, without compromises." name)) recentf-list))) -(advice-add 'dired-rename-file :after #'rjs/recentf-rename-notify) +;; (advice-add 'dired-rename-file :after #'rjs/recentf-rename-notify) (require 'smartparens) (smartparens-global-mode +1) @@ -455,14 +436,6 @@ all of the evil keybindings in buffers like magit, without compromises." ;; (set-face-foreground face "#333")) ;; (set-face-background 'fringe (face-attribute 'default :background)) -(require 'mini-frame) - -(mini-frame-mode) -(setq mini-frame-show-parameters '((top . 0.2) (width . 0.6) (height . 0.25) (left . 0.5))) -(setq mini-frame-color-shift-step 18) -(setq mini-frame-internal-border-color "dark") -(setq x-gtk-resize-child-frames nil) - (require 'corfu) (global-corfu-mode) (setq corfu-auto t) @@ -518,7 +491,8 @@ all of the evil keybindings in buffers like magit, without compromises." (require 'eglot-fsharp) (require 'consult-eglot) -(defun joe/compile () (interactive) (compile "make run")) +(defun joe/compile-run () (interactive) (compile "make run")) +(defun joe/compile-comp () (interactive) (compile "make")) (require 'tree-sitter) (require 'tree-sitter-langs) @@ -531,7 +505,19 @@ all of the evil keybindings in buffers like magit, without compromises." (define-key evil-normal-state-map (kbd "[f") (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "function.outer" t))) - +(setq display-buffer-alist + `((,(rx bos + (| (literal "*compilation") + (literal "*shell") + (literal "*eshell") + (literal "*Compile-Log"))) + display-buffer-in-direction + (window . ;reference window + t) ;either `t' (selected window), `main', `root', or an arbitrary valid window + (direction . + below) ;`below' (window) or `bottom' (of frame) + (window-height . 0.33) ;absolute (10) or relative (0.3) + ))) ;; (dap-register-debug-template "NetCoreDdg Launch (4)" ;; (list :type "coreclr" ;; :request "launch" @@ -601,17 +587,10 @@ all of the evil keybindings in buffers like magit, without compromises." ;; projectile ;; Hydra (we can use it for some of the ideas I've had about repeating and arranging stuff) ;; CTRLF (figure out if it does anything interesting) -;; Embark (provides ivy style "actions" on fuzzy searches for selectrum) ;; exec-path-from-shell -;; company-quickhelp -;; flycheck -;; evil-mc ;; markdown-preview-mode ;; markdown-mode -;; company-mode -;; company -;; omnisharp ;; sly ;; ))) ;; '(send-mail-function (quote smtpmail-send-it)))