Compare commits

..

No commits in common. "ed93fdfd9496b396ab1bb978ee4bea6afa474bf7" and "5921b99b2dc69ed762432926d091413a2b43b0b3" have entirely different histories.

2 changed files with 512 additions and 526 deletions

1
.gitignore vendored
View File

@ -12,7 +12,6 @@ auto-save-list/
transient/ transient/
straight/ straight/
elpaca/ elpaca/
parinfer-rust/
eshell/history eshell/history
eshell/lastdir eshell/lastdir
server server

169
init.el
View File

@ -54,8 +54,8 @@
(set-frame-font "MesloLGL Nerd Font 20") (set-frame-font "MesloLGL Nerd Font 20")
(setq default-frame-alist '((font . "MesloLGL Nerd Font 20"))) (setq default-frame-alist '((font . "MesloLGL Nerd Font 20")))
(defun client-config () (defun client-config ()
(scroll-bar-mode 0)) (scroll-bar-mode 0)
)
(add-hook 'after-make-frame-functions #'(lambda (frame) (add-hook 'after-make-frame-functions #'(lambda (frame)
(select-frame frame) (select-frame frame)
(client-config))) (client-config)))
@ -78,7 +78,7 @@
;; Package management setup ;; Package management setup
; Elpaca ; Elpaca
;(unload-feature 'tramp t) (unload-feature 'tramp t)
(defvar elpaca-installer-version 0.11) (defvar elpaca-installer-version 0.11)
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) (defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) (defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
@ -142,8 +142,8 @@
(setq gc-cons-threshold 800000)) (setq gc-cons-threshold 800000))
(add-hook 'minibuffer-setup-hook 'gcmh-mode-optimisation-setup-hook) (add-hook 'minibuffer-setup-hook 'gcmh-mode-optimisation-setup-hook)
(add-hook 'minibuffer-exit-hook 'gcmh-mode-optimisation-exit-hook)) (add-hook 'minibuffer-exit-hook 'gcmh-mode-optimisation-exit-hook)
)
; Fontification ; Fontification
(jit-lock-mode 1) (jit-lock-mode 1)
(jit-lock-debug-mode 1) (jit-lock-debug-mode 1)
@ -178,8 +178,8 @@
(add-to-list 'tramp-remote-path 'tramp-own-remote-path) (add-to-list 'tramp-remote-path 'tramp-own-remote-path)
(when (eq window-system 'w32) (when (eq window-system 'w32)
(setq tramp-default-method "plink"))) (setq tramp-default-method "plink"))
)
; Tramp RPC - Alternate backend promising more speed ; Tramp RPC - Alternate backend promising more speed
(use-package tramp-rpc (use-package tramp-rpc
@ -195,13 +195,8 @@
(use-package org (use-package org
:ensure (:wait t) :ensure (:wait t)
:demand t :demand t
:after evil
:hook :hook
(org-agenda-mode . (lambda() (org-agenda-entry-text-mode 1))) (org-agenda-mode . (lambda() (org-agenda-entry-text-mode 1)))
:bind
(:map org-agenda-mode-map
("C-j" . evil-next-line)
("C-k" . evil-previous-line))
:config :config
(setq org-agenda-files '("~/Nextcloud/Agenda")) (setq org-agenda-files '("~/Nextcloud/Agenda"))
;This is will integrate the Calendar/Diary into Org-Agenda, so you can get access to dates on public holidays etc. Set diary to true: ;This is will integrate the Calendar/Diary into Org-Agenda, so you can get access to dates on public holidays etc. Set diary to true:
@ -215,13 +210,13 @@
(setq org-agenda-skip-scheduled-if-done nil) (setq org-agenda-skip-scheduled-if-done nil)
(setq agenda-skip-deadline-if-done nil) (setq agenda-skip-deadline-if-done nil)
(setq org-startup-folded t)) (setq org-startup-folded t)
)
; For Org Pomodoro notification sound ; For Org Pomodoro notification sound
(use-package sound-wav (use-package sound-wav
:ensure t) :ensure t
)
; Org Pomodoro ; Org Pomodoro
(use-package org-pomodoro (use-package org-pomodoro
:ensure t :ensure t
@ -232,8 +227,8 @@
(setq org-pomodoro-keep-killed-pomodoro-time t) (setq org-pomodoro-keep-killed-pomodoro-time t)
(setq org-pomodoro-play-sounds t) (setq org-pomodoro-play-sounds t)
(setq org-pomodoro-ticking-sound-p nil) (setq org-pomodoro-ticking-sound-p nil)
(setq org-pomodoro-audio-player "mpv")) (setq org-pomodoro-audio-player "mpv")
)
(defun sound-alert (alert) (defun sound-alert (alert)
"Play a sound notification and show message ALERT." "Play a sound notification and show message ALERT."
(sound-wav-play (expand-file-name (concat user-emacs-directory "elpaca/builds/org-pomodoro/resources/bell.wav"))) (sound-wav-play (expand-file-name (concat user-emacs-directory "elpaca/builds/org-pomodoro/resources/bell.wav")))
@ -258,8 +253,8 @@
(sound-alert (concat "ORG ALERT: " (sound-alert (concat "ORG ALERT: "
;(plist-get info :title) ;(plist-get info :title)
(plist-get info :message))))) (plist-get info :message)))))
(setq alert-default-style 'custom-org-alert-notification)) (setq alert-default-style 'custom-org-alert-notification)
)
; System notifications of org agenda items ; System notifications of org agenda items
(use-package org-wild-notifier (use-package org-wild-notifier
@ -279,16 +274,16 @@
;; Pass additional arguments to alert ;; Pass additional arguments to alert
(setq org-wild-notifier-extra-alert-plist '(:persistent t)) (setq org-wild-notifier-extra-alert-plist '(:persistent t))
(org-wild-notifier-mode)) (org-wild-notifier-mode)
)
; Upcoming agenda items in modeline ; Upcoming agenda items in modeline
(use-package org-upcoming-modeline (use-package org-upcoming-modeline
:ensure t :ensure t
:after org ; if you don't want it to start until org has been loaded :after org ; if you don't want it to start until org has been loaded
:config :config
(org-upcoming-modeline-mode)) (org-upcoming-modeline-mode)
)
; Org Mode Journalling ; Org Mode Journalling
(use-package org-journal (use-package org-journal
@ -297,8 +292,8 @@
:config :config
(setq org-journal-dir "~/Nextcloud/Journal/") (setq org-journal-dir "~/Nextcloud/Journal/")
(setq org-journal-file-type 'daily) (setq org-journal-file-type 'daily)
(setq org-journal-file-format "%Y%m%d.org")) (setq org-journal-file-format "%Y%m%d.org")
)
;; Org Latex Preview Scale ;; Org Latex Preview Scale
; Automatically toggle Org mode LaTeX fragment previews as the cursor enters and exits them ; Automatically toggle Org mode LaTeX fragment previews as the cursor enters and exits them
@ -308,8 +303,8 @@
:config :config
(add-hook 'org-mode-hook 'org-latex-preview) (add-hook 'org-mode-hook 'org-latex-preview)
(add-hook 'org-mode-hook 'org-fragtog-mode) (add-hook 'org-mode-hook 'org-fragtog-mode)
(setq org-format-latex-options (plist-put org-format-latex-options :scale 3.0))) (setq org-format-latex-options (plist-put org-format-latex-options :scale 3.0))
)
;; Emacs minibuffer configurations. ;; Emacs minibuffer configurations.
(use-package emacs (use-package emacs
@ -328,9 +323,9 @@
(read-extended-command-predicate #'command-completion-default-include-p) (read-extended-command-predicate #'command-completion-default-include-p)
;; Do not allow the cursor in the minibuffer prompt ;; Do not allow the cursor in the minibuffer prompt
(minibuffer-prompt-properties (minibuffer-prompt-properties
'(read-only t cursor-intangible t face minibuffer-prompt))) '(read-only t cursor-intangible t face minibuffer-prompt)
)
)
;; Doom Theme ;; Doom Theme
(use-package doom-themes (use-package doom-themes
@ -339,10 +334,10 @@
;; Global settings (defaults) ;; Global settings (defaults)
(setq (setq
doom-themes-enable-bold t ; if nil, bold is universally disabled doom-themes-enable-bold t ; if nil, bold is universally disabled
doom-themes-enable-italic t) ; if nil, italics is universally disabled doom-themes-enable-italic t ; if nil, italics is universally disabled
)
(load-theme 'doom-gruvbox-light t)) (load-theme 'doom-gruvbox-light t)
)
;; Autocompletion configuration ;; Autocompletion configuration
;(use-package ido-vertical-mode ;(use-package ido-vertical-mode
@ -361,8 +356,8 @@
(define-key vertico-map (kbd "C-k") 'vertico-previous) (define-key vertico-map (kbd "C-k") 'vertico-previous)
(define-key vertico-map (kbd "C-j") 'vertico-next) (define-key vertico-map (kbd "C-j") 'vertico-next)
:init :init
(vertico-mode)) (vertico-mode)
)
;; Fuzzy matching for completion frameworks like Vertico ;; Fuzzy matching for completion frameworks like Vertico
(use-package orderless (use-package orderless
@ -370,8 +365,8 @@
:custom :custom
(completion-styles '(orderless basic)) (completion-styles '(orderless basic))
(completion-category-overrides '((file (styles partial-completion)))) (completion-category-overrides '((file (styles partial-completion))))
(completion-pcm-leading-wildcard t)) ;; Emacs 31: partial-completion behaves like substring (completion-pcm-leading-wildcard t) ;; Emacs 31: partial-completion behaves like substring
)
;; Enhanced commands that Vertico can make use of ;; Enhanced commands that Vertico can make use of
(use-package consult (use-package consult
@ -379,15 +374,15 @@
:config :config
(define-key global-map [remap isearch-forward] 'consult-ripgrep) (define-key global-map [remap isearch-forward] 'consult-ripgrep)
(define-key global-map [remap switch-to-buffer] 'consult-buffer) (define-key global-map [remap switch-to-buffer] 'consult-buffer)
(define-key global-map [remap set-fill-column] 'consult-fd)) (define-key global-map [remap set-fill-column] 'consult-fd)
)
;; Persist history over Emacs restarts. Vertico sorts by history position. ;; Persist history over Emacs restarts. Vertico sorts by history position.
(use-package savehist (use-package savehist
:ensure nil :ensure nil
:init :init
(savehist-mode)) (savehist-mode)
)
;; Corfu Autocomplete in buffer ;; Corfu Autocomplete in buffer
(use-package corfu (use-package corfu
@ -401,10 +396,10 @@
:config :config
(setq (setq
auto nil auto nil
corfu-preselect 'first)) corfu-preselect 'first
)
;;(global-corfu-mode) ;;(global-corfu-mode)
)
;; Evil Config ;; Evil Config
; Vim Bindings ; Vim Bindings
@ -416,15 +411,15 @@
(evil-mode 1) (evil-mode 1)
:config :config
(define-key evil-insert-state-map (kbd "C-g") 'evil-force-normal-state) (define-key evil-insert-state-map (kbd "C-g") 'evil-force-normal-state)
(define-key evil-motion-state-map [remap evil-search-forward] 'consult-line)) (define-key evil-motion-state-map [remap evil-search-forward] 'consult-line)
)
; Evil Collection, configs evil bindings for more packages ; Evil Collection, configs evil bindings for more packages
(use-package evil-collection (use-package evil-collection
:after evil :after evil
:ensure t :ensure t
:config :config
(evil-collection-init)) (evil-collection-init)
)
;; Eshell config ;; Eshell config
; Like zoxide ; Like zoxide
@ -434,8 +429,8 @@
:config :config
(add-hook 'eshell-mode-hook (add-hook 'eshell-mode-hook
(defun my-eshell-mode-hook () (defun my-eshell-mode-hook ()
(require 'eshell-z)))) (require 'eshell-z)))
)
; Bash completion commands in eshell ; Bash completion commands in eshell
(use-package bash-completion (use-package bash-completion
:ensure t :ensure t
@ -448,8 +443,8 @@
(add-hook 'eshell-mode-hook (add-hook 'eshell-mode-hook
(lambda () (lambda ()
(add-hook 'completion-at-point-functions (add-hook 'completion-at-point-functions
'bash-completion-capf-nonexclusive nil t)))) 'bash-completion-capf-nonexclusive nil t)))
)
; Import bash aliases to eshell ; Import bash aliases to eshell
(defun eshell-load-bash-aliases () (defun eshell-load-bash-aliases ()
"Read Bash aliases and add them to the list of eshell aliases." "Read Bash aliases and add them to the list of eshell aliases."
@ -477,8 +472,8 @@
(add-hook 'eshell-load-hook #'eat-eshell-mode) (add-hook 'eshell-load-hook #'eat-eshell-mode)
;; For `eat-eshell-visual-command-mode'. ;; For `eat-eshell-visual-command-mode'.
(add-hook 'eshell-load-hook #'eat-eshell-visual-command-mode)) (add-hook 'eshell-load-hook #'eat-eshell-visual-command-mode)
)
; New create new eshell instance ; New create new eshell instance
(defun eshell/new () (defun eshell/new ()
(interactive) (interactive)
@ -488,8 +483,8 @@
(use-package sudo-edit (use-package sudo-edit
:ensure t :ensure t
:config :config
(add-hook 'before-save-hook 'sudo-before-save-hook)) (add-hook 'before-save-hook 'sudo-before-save-hook)
)
(setq tramp-auto-save-directory "~/.emacs.d/tramp-autosave") (setq tramp-auto-save-directory "~/.emacs.d/tramp-autosave")
;; Magit ;; Magit
@ -595,8 +590,8 @@
(mu4e-inbox-folder . "/personal-tuxtank/Inbox") (mu4e-inbox-folder . "/personal-tuxtank/Inbox")
(mu4e-drafts-folder . "/personal-tuxtank/Drafts") (mu4e-drafts-folder . "/personal-tuxtank/Drafts")
(mu4e-sent-folder . "/personal-tuxtank/Sent Mail") (mu4e-sent-folder . "/personal-tuxtank/Sent Mail")
(mu4e-trash-folder . "/personal-tuxtank/Trash"))))))) (mu4e-trash-folder . "/personal-tuxtank/Trash"))))
)
;(setq mu4e-maildir-shortcuts ;(setq mu4e-maildir-shortcuts
; '(("/Gmail/Inbox" . ?i) ; '(("/Gmail/Inbox" . ?i)
@ -604,21 +599,13 @@
; ("/Gmail/[Gmail]/Trash" . ?t) ; ("/Gmail/[Gmail]/Trash" . ?t)
; ("/Gmail/[Gmail]/Drafts" . ?d) ; ("/Gmail/[Gmail]/Drafts" . ?d)
; ("/Gmail/[Gmail]/All Mail" . ?a))) ; ("/Gmail/[Gmail]/All Mail" . ?a)))
)
)
;; Emacs everywhere - Use emacs for any text input ;; Emacs everywhere - Use emacs for any text input
(use-package emacs-everywhere (use-package emacs-everywhere
:ensure t) :ensure t)
;; Parinfer mode - We will use conventional 2 spaces instead of tabs for lisp
(use-package parinfer-rust-mode
:ensure (:host github :repo "justinbarclay/parinfer-rust-mode")
:hook (emacs-lisp-mode . (lambda()
(setq-local tab-width 2)
(indent-tabs-mode -1)
(parinfer-rust-mode))))
;; Rainbow delimiters ;; Rainbow delimiters
(use-package rainbow-delimiters (use-package rainbow-delimiters
:ensure t :ensure t
@ -652,8 +639,8 @@
(rust . ("https://github.com/tree-sitter/tree-sitter-rust")) (rust . ("https://github.com/tree-sitter/tree-sitter-rust"))
(sql . ("https://github.com/m-novikov/tree-sitter-sql")) (sql . ("https://github.com/m-novikov/tree-sitter-sql"))
(toml . ("https://github.com/tree-sitter/tree-sitter-toml")) (toml . ("https://github.com/tree-sitter/tree-sitter-toml"))
(zig . ("https://github.com/GrayJack/tree-sitter-zig")))) (zig . ("https://github.com/GrayJack/tree-sitter-zig")))
)
:config ;; Credit to https://github.com/Nathan-Furnal/dotemacs/blob/df9b845563a84a927ff762e172334cf772253a44/init.el#L1154 :config ;; Credit to https://github.com/Nathan-Furnal/dotemacs/blob/df9b845563a84a927ff762e172334cf772253a44/init.el#L1154
(defun nf/treesit-install-all-languages () (defun nf/treesit-install-all-languages ()
"Install all languages specified by `treesit-language-source-alist'." "Install all languages specified by `treesit-language-source-alist'."
@ -662,8 +649,8 @@
(dolist (lang languages) (dolist (lang languages)
(treesit-install-language-grammar lang) (treesit-install-language-grammar lang)
(message "`%s' parser was installed." lang) (message "`%s' parser was installed." lang)
(sit-for 0.75))))) (sit-for 0.75))))
)
(setq treesit-font-lock-level 4) (setq treesit-font-lock-level 4)
; Remap basic modes to treesit equivalent ; Remap basic modes to treesit equivalent
(use-package bash-ts-mode (use-package bash-ts-mode
@ -710,9 +697,9 @@
(html-mode . html-ts-mode) (html-mode . html-ts-mode)
(css-mode . css-ts-mode) (css-mode . css-ts-mode)
(js-mode . js-ts-mode) (js-mode . js-ts-mode)
(javascript-mode . js-ts-mode))) (javascript-mode . js-ts-mode)
)
)
;; Programming treesit style config ;; Programming treesit style config
; Enforcing tabs as programming style ; Enforcing tabs as programming style
@ -737,8 +724,8 @@
:ensure nil :ensure nil
:hook :hook
(prog-mode . flymake-mode) (prog-mode . flymake-mode)
(emacs-lisp-mode . flymake-mode)) (emacs-lisp-mode . flymake-mode)
)
; Flyover for nice in buffer flymake error/warning messages. ; Flyover for nice in buffer flymake error/warning messages.
(use-package flyover (use-package flyover
:ensure t :ensure t
@ -752,8 +739,8 @@
(flyover-display-mode 'show-only-on-same-line) (flyover-display-mode 'show-only-on-same-line)
;; Completion integration ;; Completion integration
(flyover-hide-during-completion t)) (flyover-hide-during-completion t)
)
;; LSP Configuration ;; LSP Configuration
(use-package eglot (use-package eglot
@ -768,11 +755,11 @@
css-ts-mode css-ts-mode
js-ts-mode js-ts-mode
typescript-ts-mode typescript-ts-mode
tsx-ts-mode) tsx-ts-mode
. eglot-ensure)) ) . eglot-ensure))
:custom :custom
(eglot-ignored-server-capabilities '(:documentOnTypeFormattingProvider))) (eglot-ignored-server-capabilities '(:documentOnTypeFormattingProvider))
)
;; HTML Emmet Snippets ;; HTML Emmet Snippets
(use-package emmet-mode (use-package emmet-mode
@ -783,8 +770,8 @@
(html-ts-mode . emmet-mode) (html-ts-mode . emmet-mode)
(css-ts-mode . emmet-mode) (css-ts-mode . emmet-mode)
:config :config
(setq emmet-indentation custom-tab-width)) (setq emmet-indentation custom-tab-width)
)
;; JS Prettier Mode ;; JS Prettier Mode
(use-package prettier-js (use-package prettier-js
@ -794,8 +781,8 @@
(typescript-ts-mode . prettier-js-mode) (typescript-ts-mode . prettier-js-mode)
(tsx-ts-mode . prettier-js-mode) (tsx-ts-mode . prettier-js-mode)
:config :config
(setq prettier-js-use-modules-bin t)) (setq prettier-js-use-modules-bin t)
)
(custom-set-variables (custom-set-variables
;; custom-set-variables was added by Custom. ;; custom-set-variables was added by Custom.
@ -806,9 +793,9 @@
'(package-selected-packages nil) '(package-selected-packages nil)
'(smtpmail-smtp-server "smtp.cspark.dev") '(smtpmail-smtp-server "smtp.cspark.dev")
'(smtpmail-smtp-service 25)) '(smtpmail-smtp-service 25))
(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.
)