|
|
@ -23,8 +23,8 @@
|
|
|
|
(put 'narrow-to-region 'disabled nil)
|
|
|
|
(put 'narrow-to-region 'disabled nil)
|
|
|
|
(put 'dired-find-alternate-file 'disabled nil)
|
|
|
|
(put 'dired-find-alternate-file 'disabled nil)
|
|
|
|
|
|
|
|
|
|
|
|
(require 'server)
|
|
|
|
;; (require 'server)
|
|
|
|
(if (not (server-running-p)) (server-start))
|
|
|
|
;; (if (not (server-running-p)) (server-start))
|
|
|
|
|
|
|
|
|
|
|
|
(setq default-directory "/home/joe")
|
|
|
|
(setq default-directory "/home/joe")
|
|
|
|
|
|
|
|
|
|
|
@ -38,13 +38,14 @@
|
|
|
|
(invert-face 'mode-line)
|
|
|
|
(invert-face 'mode-line)
|
|
|
|
(run-with-timer 0.1 nil #'invert-face 'mode-line))
|
|
|
|
(run-with-timer 0.1 nil #'invert-face 'mode-line))
|
|
|
|
|
|
|
|
|
|
|
|
(setq visible-bell nil ring-bell-function 'joe/flash-mode-line)
|
|
|
|
;; (setq visible-bell nil ring-bell-function 'joe/flash-mode-line)
|
|
|
|
(setq-default display-line-numbers 'relative)
|
|
|
|
(setq-default display-line-numbers 'relative)
|
|
|
|
(dolist (mode '(org-mode-hook term-mode-hook eww-mode-hook vterm-mode-hook eshell-mode-hook dired-mode-hook shell-mode-hook magit-mode-hook))
|
|
|
|
(dolist (mode '(dashboard-mode-hook org-mode-hook term-mode-hook eww-mode-hook vterm-mode-hook eshell-mode-hook dired-mode-hook shell-mode-hook magit-mode-hook))
|
|
|
|
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
|
|
|
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
|
|
|
|
|
|
|
|
|
|
|
(make-variable-buffer-local 'global-hl-line-mode)
|
|
|
|
(make-variable-buffer-local 'global-hl-line-mode)
|
|
|
|
|
|
|
|
(set-window-margins nil 0)
|
|
|
|
|
|
|
|
(setq-default right-fringe-width 10)
|
|
|
|
(setq scroll-margin 0
|
|
|
|
(setq scroll-margin 0
|
|
|
|
scroll-conservatively 100000
|
|
|
|
scroll-conservatively 100000
|
|
|
|
scroll-preserve-screen-position 1)
|
|
|
|
scroll-preserve-screen-position 1)
|
|
|
@ -52,7 +53,11 @@
|
|
|
|
(global-hl-line-mode +1)
|
|
|
|
(global-hl-line-mode +1)
|
|
|
|
(column-number-mode +1)
|
|
|
|
(column-number-mode +1)
|
|
|
|
|
|
|
|
|
|
|
|
(set-face-attribute 'default nil :font "Fira Code Nerd Font" :height 115)
|
|
|
|
(set-face-attribute 'default nil :font "Fira Code Nerd Font" :height 105)
|
|
|
|
|
|
|
|
(setq-default line-spacing 5)
|
|
|
|
|
|
|
|
(add-hook 'dashboard-mode-hook (lambda () (setq-local line-spacing 12)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(set-face-foreground 'minibuffer-prompt nil)
|
|
|
|
|
|
|
|
|
|
|
|
;; Text Settings
|
|
|
|
;; Text Settings
|
|
|
|
(setq-default c-basic-offset 4) ;; This is annoying
|
|
|
|
(setq-default c-basic-offset 4) ;; This is annoying
|
|
|
@ -103,10 +108,6 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
;; ("marmalade" . "http://marmalade-repo.org/packages/")))
|
|
|
|
;; ("marmalade" . "http://marmalade-repo.org/packages/")))
|
|
|
|
|
|
|
|
|
|
|
|
(add-hook 'before-save-hook 'whitespace-cleanup)
|
|
|
|
(add-hook 'before-save-hook 'whitespace-cleanup)
|
|
|
|
|
|
|
|
|
|
|
|
;; TODO: We need 3 bindings; 1.) close buffer 2.) close window 3.) close buffer and window
|
|
|
|
|
|
|
|
(global-set-key (kbd "C-x k") 'kill-this-buffer)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; Packages
|
|
|
|
;; Packages
|
|
|
|
|
|
|
|
|
|
|
|
(package-initialize)
|
|
|
|
(package-initialize)
|
|
|
@ -125,16 +126,26 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
'(beacon-color "#f2777a")
|
|
|
|
'(beacon-color "#f2777a")
|
|
|
|
'(custom-safe-themes
|
|
|
|
'(custom-safe-themes
|
|
|
|
'("aaa4c36ce00e572784d424554dcc9641c82d1155370770e231e10c649b59a074" default))
|
|
|
|
'("aaa4c36ce00e572784d424554dcc9641c82d1155370770e231e10c649b59a074" default))
|
|
|
|
|
|
|
|
'(feebleline-msg-functions
|
|
|
|
|
|
|
|
'((feebleline-line-number :align right :post "" :fmt "%5s")
|
|
|
|
|
|
|
|
(feebleline-column-number :pre ":" :fmt "%-2s")
|
|
|
|
|
|
|
|
(feebleline-file-directory :face feebleline-dir-face :post "")
|
|
|
|
|
|
|
|
(feebleline-file-or-buffer-name :face font-lock-keyword-face :post "")
|
|
|
|
|
|
|
|
(feebleline-file-modified-star :face font-lock-warning-face :post "")
|
|
|
|
|
|
|
|
(feebleline-git-branch :face feebleline-git-face :pre " - ")))
|
|
|
|
'(flycheck-color-mode-line-face-to-color 'mode-line-buffer-id)
|
|
|
|
'(flycheck-color-mode-line-face-to-color 'mode-line-buffer-id)
|
|
|
|
'(frame-background-mode 'dark)
|
|
|
|
'(frame-background-mode 'dark)
|
|
|
|
'(package-selected-packages
|
|
|
|
'(package-selected-packages
|
|
|
|
'(evil-goggles magit multi-vterm evil-collection smartparens vterm all-the-icons-dired all-the-icons org-bullets select-themes fsharp-mode eglot-fsharp fish-mode find-file-in-project helpful ahk-mode rainbow-delimiters doom-themes marginalia eglot selectrum-prescient prescient selectrum avy evil-commentary evil-embrace evil-snipe evil-surround undo-tree which-key dashboard))
|
|
|
|
'(flycheck all-the-icons-completion kind-icon feebleline mini-modeline sublimity 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 eglot-fsharp fish-mode find-file-in-project helpful ahk-mode rainbow-delimiters doom-themes marginalia eglot selectrum-prescient prescient selectrum avy evil-commentary evil-embrace evil-snipe evil-surround undo-tree which-key dashboard))
|
|
|
|
'(window-divider-mode nil))
|
|
|
|
'(window-divider-mode nil))
|
|
|
|
(custom-set-faces
|
|
|
|
(custom-set-faces
|
|
|
|
;; custom-set-faces was added by Custom.
|
|
|
|
;; custom-set-faces was added by Custom.
|
|
|
|
;; If you edit it by hand, you could mess it up, so be careful.
|
|
|
|
;; If you edit it by hand, you could mess it up, so be careful.
|
|
|
|
;; Your init file should contain only one such instance.
|
|
|
|
;; Your init file should contain only one such instance.
|
|
|
|
;; If there is more than one, they won't work right.
|
|
|
|
;; If there is more than one, they won't work right.
|
|
|
|
|
|
|
|
'(evil-goggles-delete-face ((t (:inherit 'shadow))))
|
|
|
|
|
|
|
|
'(evil-goggles-paste-face ((t (:inherit 'lazy-highlight))))
|
|
|
|
|
|
|
|
'(evil-goggles-yank-face ((t (:inherit 'isearch-fail))))
|
|
|
|
'(magit-diff-hunk-heading-highlight ((t (:extend t :background "cornflower blue" :foreground "#212337" :weight bold)))))
|
|
|
|
'(magit-diff-hunk-heading-highlight ((t (:extend t :background "cornflower blue" :foreground "#212337" :weight bold)))))
|
|
|
|
|
|
|
|
|
|
|
|
(dolist (p package-selected-packages)
|
|
|
|
(dolist (p package-selected-packages)
|
|
|
@ -148,12 +159,21 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
(setq evil-undo-system 'undo-tree)
|
|
|
|
(setq evil-undo-system 'undo-tree)
|
|
|
|
(setq evil-want-C-u-scroll t)
|
|
|
|
(setq evil-want-C-u-scroll t)
|
|
|
|
(setq evil-want-Y-yank-to-eol t)
|
|
|
|
(setq evil-want-Y-yank-to-eol t)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(require 'highlight-quoted)
|
|
|
|
|
|
|
|
(add-hook 'emacs-lisp-mode-hook 'highlight-quoted-mode)
|
|
|
|
|
|
|
|
|
|
|
|
(global-undo-tree-mode)
|
|
|
|
(global-undo-tree-mode)
|
|
|
|
|
|
|
|
(setq undo-tree-visualizer-diff t)
|
|
|
|
|
|
|
|
(setq undo-tree-history-directory-alist '(("." . "~/.emacs.vanilla/undo")))
|
|
|
|
(require 'evil)
|
|
|
|
(require 'evil)
|
|
|
|
(evil-mode)
|
|
|
|
(evil-mode)
|
|
|
|
(require 'evil-collection)
|
|
|
|
(require 'evil-collection)
|
|
|
|
(evil-collection-init)
|
|
|
|
(evil-collection-init)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(save-place-mode t)
|
|
|
|
|
|
|
|
(setq save-place-file "~/.emacs.vanilla/places")
|
|
|
|
|
|
|
|
|
|
|
|
(require 'dired)
|
|
|
|
(require 'dired)
|
|
|
|
(if (eq system-type 'windows-nt)
|
|
|
|
(if (eq system-type 'windows-nt)
|
|
|
|
(setq ls-lisp-dirs-first t)
|
|
|
|
(setq ls-lisp-dirs-first t)
|
|
|
@ -198,6 +218,12 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
|
|
|
|
|
|
|
|
(require 'dashboard)
|
|
|
|
(require 'dashboard)
|
|
|
|
(dashboard-setup-startup-hook)
|
|
|
|
(dashboard-setup-startup-hook)
|
|
|
|
|
|
|
|
(setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*")))
|
|
|
|
|
|
|
|
(setq dashboard-startup-banner 'logo)
|
|
|
|
|
|
|
|
(setq dashboard-center-content t)
|
|
|
|
|
|
|
|
(setq dashboard-set-file-icons t)
|
|
|
|
|
|
|
|
(setq dashboard-set-heading-icons t)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(require 'which-key)
|
|
|
|
(require 'which-key)
|
|
|
|
(setq which-key-idle-delay 0.3)
|
|
|
|
(setq which-key-idle-delay 0.3)
|
|
|
@ -215,6 +241,7 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
|
|
|
|
|
|
|
|
(evil-set-leader 'normal (kbd "SPC"))
|
|
|
|
(evil-set-leader 'normal (kbd "SPC"))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; TODO: We need 3 bindings; 1.) close buffer 2.) close window 3.) close buffer and window
|
|
|
|
;; To disable a keybinding just bind it to nil
|
|
|
|
;; To disable a keybinding just bind it to nil
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>w") 'save-buffer)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>w") 'save-buffer)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>q") 'kill-buffer-and-window)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>q") 'kill-buffer-and-window)
|
|
|
@ -234,20 +261,42 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>bi") 'ibuffer)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>bi") 'ibuffer)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>bm") 'joe/toggle-buffer-mode)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>bm") 'joe/toggle-buffer-mode)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>br") 'joe/revert-buffer-no-confirm)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>br") 'joe/revert-buffer-no-confirm)
|
|
|
|
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>bk") 'kill-this-buffer)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>gg") 'magit-status)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>gg") 'magit-status)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>pi") 'package-install)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>pi") 'package-install)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>pd") 'package-delete)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>pd") 'package-delete)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>pf") 'package-refresh-contents)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>pf") 'package-refresh-contents)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>pl") 'package-list-packages)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>pl") 'package-list-packages)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>pr") 'package-reinstall)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>pr") 'package-reinstall)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>ss") 'multi-vterm)
|
|
|
|
(evil-define-key 'normal 'global (kbd "C-t") 'multi-vterm-dedicated-toggle)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>sp") 'multi-vterm-prev)
|
|
|
|
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>sn") 'multi-vterm-next)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>sn") 'multi-vterm-next)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>sP") 'multi-vterm-project)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>sp") 'multi-vterm-project)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>st") 'multi-vterm-dedicated-toggle)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>sv") 'vterm-other-window)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>sf") 'multi-vterm-dedicated-select)
|
|
|
|
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>Ba") 'joe/bookmark-set-and-save)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>Ba") 'joe/bookmark-set-and-save)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>Bd") 'bookmark-delete)
|
|
|
|
(evil-define-key 'normal 'global (kbd "<leader>Bd") 'bookmark-delete)
|
|
|
|
|
|
|
|
(evil-define-key 'insert vterm-mode-map (kbd "C-t") #'multi-vterm-dedicated-toggle)
|
|
|
|
|
|
|
|
(evil-define-key 'normal 'global (kbd "C-t") #'multi-vterm-dedicated-open)
|
|
|
|
|
|
|
|
(evil-define-key 'insert vterm-mode-map (kbd "C-t") #'multi-vterm-dedicated-open)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(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)
|
|
|
|
|
|
|
|
(require 'sublimity)
|
|
|
|
|
|
|
|
(require 'sublimity-scroll)
|
|
|
|
|
|
|
|
(sublimity-mode 1)
|
|
|
|
|
|
|
|
(setq sublimity-scroll-weight 14
|
|
|
|
|
|
|
|
sublimity-scroll-drift-length 6)
|
|
|
|
|
|
|
|
|
|
|
|
(evil-define-key 'normal 'global (kbd "C-h") 'evil-window-left)
|
|
|
|
(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-j") 'evil-window-down)
|
|
|
@ -260,47 +309,11 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
;; (evil-define-key 'normal 'global (kbd "M-h") 'tab-line-switch-to-prev-tab)
|
|
|
|
;; (evil-define-key 'normal 'global (kbd "M-h") 'tab-line-switch-to-prev-tab)
|
|
|
|
;; (evil-define-key 'normal 'global (kbd "M-l") 'tab-line-switch-to-next-tab)
|
|
|
|
;; (evil-define-key 'normal 'global (kbd "M-l") 'tab-line-switch-to-next-tab)
|
|
|
|
|
|
|
|
|
|
|
|
;; TODO figure out how to create these kinds of aliases
|
|
|
|
|
|
|
|
;; (evil-define-key 'normal 'global (kbd "<leader>gg") 'magit-status)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; abbr -a -g ga "git add"
|
|
|
|
|
|
|
|
;; abbr -a -g gch "git checkout"
|
|
|
|
|
|
|
|
;; abbr -a -g gchm "git checkout master"
|
|
|
|
|
|
|
|
;; abbr -a -g gchb "git checkout -b"
|
|
|
|
|
|
|
|
;; abbr -a -g gd "git diff"
|
|
|
|
|
|
|
|
;; abbr -a -g gdh "git diff HEAD"
|
|
|
|
|
|
|
|
;; abbr -a -g gm "git merge"
|
|
|
|
|
|
|
|
;; abbr -a -g gms "git merge --squash"
|
|
|
|
|
|
|
|
;; abbr -a -g gb "git branch"
|
|
|
|
|
|
|
|
;; abbr -a -g gba "git branch -a"
|
|
|
|
|
|
|
|
;; abbr -a -g gf "git fetch"
|
|
|
|
|
|
|
|
;; abbr -a -g gr "git rebase"
|
|
|
|
|
|
|
|
;; abbr -a -g gc "git commit"
|
|
|
|
|
|
|
|
;; abbr -a -g gcm "git commit -m"
|
|
|
|
|
|
|
|
;; abbr -a -g gcau "git commit --author"
|
|
|
|
|
|
|
|
;; abbr -a -g gcam "git commit -am"
|
|
|
|
|
|
|
|
;; abbr -a -g ga "git add"
|
|
|
|
|
|
|
|
;; abbr -a -g gaa "git add -A"
|
|
|
|
|
|
|
|
;; abbr -a -g gpl "git pull"
|
|
|
|
|
|
|
|
;; abbr -a -g gp "git push"
|
|
|
|
|
|
|
|
;; abbr -a -g gpd "git push -d origin"
|
|
|
|
|
|
|
|
;; abbr -a -g gpu "git push -u origin"
|
|
|
|
|
|
|
|
;; abbr -a -g gpr "git remote prune origin"
|
|
|
|
|
|
|
|
;; abbr -a -g grh "git reset --hard"
|
|
|
|
|
|
|
|
;; abbr -a -g gcl "git clean -fd"
|
|
|
|
|
|
|
|
;; abbr -a -g gst "git stash"
|
|
|
|
|
|
|
|
;; abbr -a -g gsl "git stash list"
|
|
|
|
|
|
|
|
;; abbr -a -g gsp "git stash pop"
|
|
|
|
|
|
|
|
;; abbr -a -g gsu "git submodule update"
|
|
|
|
|
|
|
|
;; abbr -a -g glom "git lop -10 origin/master"
|
|
|
|
|
|
|
|
;; abbr -a -g gmom "git merge origin/master"
|
|
|
|
|
|
|
|
;; abbr -a -g gmm "git merge master"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defvar global-evil-leader-map (make-sparse-keymap))
|
|
|
|
(defvar global-evil-leader-map (make-sparse-keymap))
|
|
|
|
(evil-define-key 'normal 'global-evil-leader-map (kbd "SPC") 'evil-send-leader)
|
|
|
|
(evil-define-key 'normal 'global-evil-leader-map (kbd "SPC") 'evil-send-leader)
|
|
|
|
|
|
|
|
|
|
|
|
(define-minor-mode global-evil-leader-mode
|
|
|
|
(define-minor-mode global-evil-leader-mode
|
|
|
|
"Minor mode to make evil leader blobal"
|
|
|
|
"Minor mode to make evil leader global"
|
|
|
|
:global t
|
|
|
|
:global t
|
|
|
|
:keymap global-evil-leader-map)
|
|
|
|
:keymap global-evil-leader-map)
|
|
|
|
(global-evil-leader-mode)
|
|
|
|
(global-evil-leader-mode)
|
|
|
@ -316,7 +329,7 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
|
|
|
|
|
|
|
|
(require 'avy)
|
|
|
|
(require 'avy)
|
|
|
|
(setq avy-keys '(?a ?s ?d ?f ?w ?e ?r ?u ?i ?o ?h ?j ?k ?l ?x ?c ?m))
|
|
|
|
(setq avy-keys '(?a ?s ?d ?f ?w ?e ?r ?u ?i ?o ?h ?j ?k ?l ?x ?c ?m))
|
|
|
|
(setq avy-all-windows nil)
|
|
|
|
(setq avy-all-windows t)
|
|
|
|
(setq avy-background t)
|
|
|
|
(setq avy-background t)
|
|
|
|
(defvar avy-map (make-sparse-keymap))
|
|
|
|
(defvar avy-map (make-sparse-keymap))
|
|
|
|
|
|
|
|
|
|
|
@ -342,14 +355,58 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
(setq marginalia-annotators
|
|
|
|
(setq marginalia-annotators
|
|
|
|
'(marginalia-annotators-heavy marginalia-annotators-light nil))
|
|
|
|
'(marginalia-annotators-heavy marginalia-annotators-light nil))
|
|
|
|
|
|
|
|
|
|
|
|
(setq recentf-max-menu-items 1000)
|
|
|
|
|
|
|
|
(defun joe/recentf-open-files ()
|
|
|
|
(defun joe/recentf-open-files ()
|
|
|
|
"Use `completing-read' to open a recent file."
|
|
|
|
"Use `completing-read' to open a recent file."
|
|
|
|
(interactive)
|
|
|
|
(interactive)
|
|
|
|
(let ((files (mapcar 'abbreviate-file-name recentf-list)))
|
|
|
|
(let ((files (mapcar 'abbreviate-file-name recentf-list)))
|
|
|
|
(find-file (completing-read "Find recent file: " files nil t))))
|
|
|
|
(find-file (completing-read "Find recent file: " files nil t))))
|
|
|
|
|
|
|
|
|
|
|
|
(run-at-time (current-time) 300 'recentf-save-list)
|
|
|
|
(require 'recentf)
|
|
|
|
|
|
|
|
(setq recentf-max-saved-items 1000)
|
|
|
|
|
|
|
|
(setq recentf-max-menu-items 500)
|
|
|
|
|
|
|
|
(recentf-mode t)
|
|
|
|
|
|
|
|
(run-at-time t (* 5 60) 'recentf-save-list)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun recentf-push-buffers-in-frame ()
|
|
|
|
|
|
|
|
(walk-windows
|
|
|
|
|
|
|
|
(lambda (win)
|
|
|
|
|
|
|
|
(let ((bfn (buffer-local-value 'buffer-file-name (window-buffer win))))
|
|
|
|
|
|
|
|
(and bfn (recentf-add-file bfn))))))
|
|
|
|
|
|
|
|
(add-to-list 'window-configuration-change-hook 'recentf-push-buffers-in-frame)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun recentf-add-dired-directory ()
|
|
|
|
|
|
|
|
(when (and (stringp dired-directory)
|
|
|
|
|
|
|
|
(equal "" (file-name-nondirectory dired-directory)))
|
|
|
|
|
|
|
|
(recentf-add-file dired-directory)))
|
|
|
|
|
|
|
|
(add-hook 'dired-mode-hook 'recentf-add-dired-directory)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; Magic advice to rename entries in recentf when moving files in
|
|
|
|
|
|
|
|
;; dired.
|
|
|
|
|
|
|
|
(defun rjs/recentf-rename-notify (oldname newname &rest args)
|
|
|
|
|
|
|
|
(if (file-directory-p newname)
|
|
|
|
|
|
|
|
(rjs/recentf-rename-directory oldname newname)
|
|
|
|
|
|
|
|
(rjs/recentf-rename-file oldname newname)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun rjs/recentf-rename-file (oldname newname)
|
|
|
|
|
|
|
|
(setq recentf-list
|
|
|
|
|
|
|
|
(mapcar (lambda (name)
|
|
|
|
|
|
|
|
(if (string-equal name oldname)
|
|
|
|
|
|
|
|
newname
|
|
|
|
|
|
|
|
name))
|
|
|
|
|
|
|
|
recentf-list)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun rjs/recentf-rename-directory (oldname newname)
|
|
|
|
|
|
|
|
;; oldname, newname and all entries of recentf-list should already
|
|
|
|
|
|
|
|
;; be absolute and normalised so I think this can just test whether
|
|
|
|
|
|
|
|
;; oldname is a prefix of the element.
|
|
|
|
|
|
|
|
(setq recentf-list
|
|
|
|
|
|
|
|
(mapcar (lambda (name)
|
|
|
|
|
|
|
|
(if (string-prefix-p oldname name)
|
|
|
|
|
|
|
|
(concat newname (substring name (length oldname)))
|
|
|
|
|
|
|
|
name))
|
|
|
|
|
|
|
|
recentf-list)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(advice-add 'dired-rename-file :after #'rjs/recentf-rename-notify)
|
|
|
|
|
|
|
|
|
|
|
|
(require 'smartparens)
|
|
|
|
(require 'smartparens)
|
|
|
|
(smartparens-global-mode +1)
|
|
|
|
(smartparens-global-mode +1)
|
|
|
@ -371,9 +428,86 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
(setq ffip-use-rust-fd 't)
|
|
|
|
(setq ffip-use-rust-fd 't)
|
|
|
|
|
|
|
|
|
|
|
|
(require 'evil-goggles)
|
|
|
|
(require 'evil-goggles)
|
|
|
|
(setq evil-goggles-duration 0.1)
|
|
|
|
(evil-goggles-mode)
|
|
|
|
(setq evil-goggles-pulse nil)
|
|
|
|
(setq evil-goggles-duration 0.15)
|
|
|
|
(setq evil-goggles-async-duration 0.25)
|
|
|
|
(setq evil-goggles-pulse t)
|
|
|
|
|
|
|
|
(setq evil-goggles-async-duration 0.55)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(modify-all-frames-parameters
|
|
|
|
|
|
|
|
'((right-divider-width . 12)
|
|
|
|
|
|
|
|
(internal-border-width . 12)))
|
|
|
|
|
|
|
|
(dolist (face '(window-divider
|
|
|
|
|
|
|
|
window-divider-first-pixel
|
|
|
|
|
|
|
|
window-divider-last-pixel))
|
|
|
|
|
|
|
|
(face-spec-reset-face face)
|
|
|
|
|
|
|
|
(set-face-foreground face (face-attribute 'default :background)))
|
|
|
|
|
|
|
|
(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)
|
|
|
|
|
|
|
|
(setq corfu-scroll-margin 10)
|
|
|
|
|
|
|
|
(setq corfu-preselect-first nil)
|
|
|
|
|
|
|
|
(setq corfu-preview-current t)
|
|
|
|
|
|
|
|
(setq corfu-echo-documentation t)
|
|
|
|
|
|
|
|
(setq corfu-quit-no-match t)
|
|
|
|
|
|
|
|
(setq corfu-auto-prefix 1)
|
|
|
|
|
|
|
|
(setq corfu-auto-delay 0)
|
|
|
|
|
|
|
|
(setq corfu-max-width 100
|
|
|
|
|
|
|
|
corfu-min-width 50)
|
|
|
|
|
|
|
|
(require 'kind-icon)
|
|
|
|
|
|
|
|
(setq kind-icon-default-face 'corfu-default)
|
|
|
|
|
|
|
|
(add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(require 'all-the-icons-completion)
|
|
|
|
|
|
|
|
(all-the-icons-completion-mode)
|
|
|
|
|
|
|
|
(add-hook 'marginalia-mode-hook #'all-the-icons-completion-marginalia-setup)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(load-file "~/.emacs.vanilla/elpa/ligature.el/ligature.el")
|
|
|
|
|
|
|
|
(require 'ligature)
|
|
|
|
|
|
|
|
(global-ligature-mode)
|
|
|
|
|
|
|
|
(ligature-set-ligatures 'prog-mode '("|||>" "<|||" "<==>" "<!--" "####" "~~>" "***" "||=" "||>"
|
|
|
|
|
|
|
|
":::" "::=" "=:=" "===" "==>" "=!=" "=>>" "=<<" "=/=" "!=="
|
|
|
|
|
|
|
|
"!!." ">=>" ">>=" ">>>" ">>-" ">->" "->>" "-->" "---" "-<<"
|
|
|
|
|
|
|
|
"<~~" "<~>" "<*>" "<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->"
|
|
|
|
|
|
|
|
"<--" "<-<" "<<=" "<<-" "<<<" "<+>" "</>" "###" "#_(" "..<"
|
|
|
|
|
|
|
|
"..." "+++" "/==" "///" "_|_" "www" "&&" "^=" "~~" "~@" "~="
|
|
|
|
|
|
|
|
"~>" "~-" "**" "*>" "*/" "||" "|}" "|]" "|=" "|>" "|-" "{|"
|
|
|
|
|
|
|
|
"[|" "]#" "::" ":=" ":>" ":<" "$>" "==" "=>" "!=" "!!" ">:"
|
|
|
|
|
|
|
|
">=" ">>" ">-" "-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:"
|
|
|
|
|
|
|
|
"<$" "<=" "<>" "<-" "<<" "<+" "</" "#{" "#[" "#:" "#=" "#!"
|
|
|
|
|
|
|
|
"##" "#(" "#?" "#_" "%%" ".=" ".-" ".." ".?" "+>" "++" "?:"
|
|
|
|
|
|
|
|
"?=" "?." "??" ";;" "/*" "/=" "/>" "//" "__" "~~" "(*" "*)"
|
|
|
|
|
|
|
|
"\\\\" "://"))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(add-to-list 'completion-at-point-functions #'cape-file)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; (add-to-list 'load-path (expand-file-name "~/.emacs.vanilla/elpa/aweshell/"))
|
|
|
|
|
|
|
|
;; (require 'aweshell)
|
|
|
|
|
|
|
|
;; (require 'fish-completion)
|
|
|
|
|
|
|
|
;; (global-fish-completion-mode)
|
|
|
|
|
|
|
|
;; (setq evil-collection-company-use-tng nil)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(define-key corfu-map (kbd "M-d") #'corfu-doc-toggle)
|
|
|
|
|
|
|
|
(define-key corfu-map (kbd "M-p") #'corfu-doc-scroll-down)
|
|
|
|
|
|
|
|
(define-key corfu-map (kbd "M-n") #'corfu-doc-scroll-up)
|
|
|
|
|
|
|
|
(require 'feebleline)
|
|
|
|
|
|
|
|
(feebleline-mode)
|
|
|
|
|
|
|
|
(setq feebleline-msg-functions
|
|
|
|
|
|
|
|
'((feebleline-git-branch :align right :face feebleline-git-face :pre " - ")
|
|
|
|
|
|
|
|
(feebleline-file-directory :align right :face feebleline-dir-face :post "")
|
|
|
|
|
|
|
|
(feebleline-file-or-buffer-name :align right :face font-lock-keyword-face :post "")
|
|
|
|
|
|
|
|
(feebleline-file-modified-star :align right :face font-lock-warning-face :post "")
|
|
|
|
|
|
|
|
(feebleline-line-number :align right :post "" :fmt "%5s")
|
|
|
|
|
|
|
|
(feebleline-column-number :align right :pre ":" :fmt "%-2s")))
|
|
|
|
|
|
|
|
|
|
|
|
;; (require 'slime)
|
|
|
|
;; (require 'slime)
|
|
|
|
;; (setq inferior-lisp-program "/usr/bin/sbcl")
|
|
|
|
;; (setq inferior-lisp-program "/usr/bin/sbcl")
|
|
|
@ -385,25 +519,8 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
;; (evil-define-key 'normal slime-repl-mode-map (kbd ")") 'slime-repl-next-prompt)
|
|
|
|
;; (evil-define-key 'normal slime-repl-mode-map (kbd ")") 'slime-repl-next-prompt)
|
|
|
|
;; (evil-define-key 'normal slime-repl-mode-map (kbd "C-j") 'evil-window-down)
|
|
|
|
;; (evil-define-key 'normal slime-repl-mode-map (kbd "C-j") 'evil-window-down)
|
|
|
|
;; (evil-define-key 'normal slime-repl-mode-map (kbd "C-k") 'evil-window-up)))
|
|
|
|
;; (evil-define-key 'normal slime-repl-mode-map (kbd "C-k") 'evil-window-up)))
|
|
|
|
|
|
|
|
;; (setq slime-contribs '(slime-fancy slime-company))
|
|
|
|
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
;; Mini-frame doesn't seem to be working on Wayland,
|
|
|
|
|
|
|
|
;; a window just pops up over emacs, it's annoying
|
|
|
|
|
|
|
|
;;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; (require 'mini-frame)
|
|
|
|
|
|
|
|
;; (setq mini-frame-show-parameters
|
|
|
|
|
|
|
|
;; '((top . 0.3) (width . 0.7)
|
|
|
|
|
|
|
|
;; (left . 0.5) (left-fringe . 10) (right-fringe . 10) ))
|
|
|
|
|
|
|
|
;; (setq mini-frame-color-shift-step 40)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; (setq mini-frame-internal-border-color "dark")
|
|
|
|
|
|
|
|
;; (mini-frame-mode)
|
|
|
|
|
|
|
|
;; (setq x-gtk-resize-child-frames 'resize-mode)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; ;; Workaround for the initial candidates of mini frame not being shown
|
|
|
|
|
|
|
|
;; ;; https://github.com/raxod502/selectrum/issues/169
|
|
|
|
|
|
|
|
;; (define-advice fit-frame-to-buffer (:around (f &rest args) dont-skip-ws-for-mini-frame)
|
|
|
|
;; (define-advice fit-frame-to-buffer (:around (f &rest args) dont-skip-ws-for-mini-frame)
|
|
|
|
;; (cl-letf* ((orig (symbol-function #'window-text-pixel-size))
|
|
|
|
;; (cl-letf* ((orig (symbol-function #'window-text-pixel-size))
|
|
|
|
;; ((symbol-function #'window-text-pixel-size)
|
|
|
|
;; ((symbol-function #'window-text-pixel-size)
|
|
|
@ -418,13 +535,12 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
;; args)))))
|
|
|
|
;; args)))))
|
|
|
|
;; (apply f args)))
|
|
|
|
;; (apply f args)))
|
|
|
|
|
|
|
|
|
|
|
|
;; (require 'eglot)
|
|
|
|
|
|
|
|
;; (require 'eglot-fsharp)
|
|
|
|
(require 'eglot)
|
|
|
|
|
|
|
|
(require 'eglot-fsharp)
|
|
|
|
|
|
|
|
|
|
|
|
;; TODO: Packages to check out
|
|
|
|
;; TODO: Packages to check out
|
|
|
|
;; expand-region
|
|
|
|
;; expand-region
|
|
|
|
;; company
|
|
|
|
|
|
|
|
;; flycheck
|
|
|
|
|
|
|
|
;; projectile
|
|
|
|
;; projectile
|
|
|
|
;; Hydra (we can use it for some of the ideas I've had about repeating and arranging stuff)
|
|
|
|
;; 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)
|
|
|
|
;; CTRLF (figure out if it does anything interesting)
|
|
|
@ -442,15 +558,3 @@ all of the evil keybindings in buffers like magit, without compromises."
|
|
|
|
;; sly
|
|
|
|
;; sly
|
|
|
|
;; )))
|
|
|
|
;; )))
|
|
|
|
;; '(send-mail-function (quote smtpmail-send-it)))
|
|
|
|
;; '(send-mail-function (quote smtpmail-send-it)))
|
|
|
|
|
|
|
|
|
|
|
|
;; (setq slime-contribs '(slime-fancy slime-company))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; (use-package company
|
|
|
|
|
|
|
|
; :init
|
|
|
|
|
|
|
|
; (setq company-idle-delay 0.05)
|
|
|
|
|
|
|
|
; (setq company-minimum-prefix-length 2)
|
|
|
|
|
|
|
|
; (add-hook 'after-init-hook 'global-company-mode))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; (use-package flycheck
|
|
|
|
|
|
|
|
; :init
|
|
|
|
|
|
|
|
; (global-flycheck-mode))
|
|
|
|
|
|
|
|