forked from nikolaishields/emacs-config
186 lines
5.2 KiB
EmacsLisp
186 lines
5.2 KiB
EmacsLisp
(require 'package)
|
|
(setq package-archives '(("melpa" . "https://melpa.org/packages/")
|
|
("org" . "https://orgmode.org/elpa/")
|
|
("elpa" . "https://elpa.gnu.org/packages/")))
|
|
(package-initialize)
|
|
(package-refresh-contents)
|
|
|
|
(require 'use-package)
|
|
(setq use-package-always-ensure t)
|
|
|
|
;; Initialize use-package on non-linux platforms
|
|
(unless (package-installed-p 'use-package)
|
|
(package-install 'use-package))
|
|
|
|
(require 'org)
|
|
|
|
(org-babel-load-file
|
|
(expand-file-name "config-look-and-feel.org"
|
|
user-emacs-directory))
|
|
|
|
(setq inhibit-startup-message t)
|
|
(setq visible-bell nil)
|
|
(setq ring-bell-function 'ignore)
|
|
(setq auto-save-timeout '5)
|
|
(setq auto-save-interval '20)
|
|
(setq global-auto-revert-non-file-buffers t)
|
|
(setq custom-file (locate-user-emacs-file "custom-vars.el"))
|
|
(load custom-file 'noerror 'nomessage)
|
|
|
|
(setq use-dialog-box nil)
|
|
(global-auto-revert-mode 1)
|
|
(setq global-auto-rever-non-file-buffers t)
|
|
|
|
(use-package command-log-mode)
|
|
|
|
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
|
|
(load-theme 'catppuccin t)
|
|
|
|
(column-number-mode)
|
|
(global-display-line-numbers-mode t)
|
|
(dolist (mode '(term-mode-hook
|
|
vterm-mode-hook))
|
|
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
|
|
|
(use-package which-key
|
|
:init (which-key-mode)
|
|
:diminish which-key-mode
|
|
:config
|
|
(setq which-key-idle-delay 0))
|
|
|
|
(set-face-attribute 'default nil :font "FiraCode Nerd Font" :height 150)
|
|
|
|
(use-package kagi
|
|
:ensure t
|
|
:custom
|
|
;; Univernal Summarizer settings
|
|
(kagi-summarizer-engine "cecil")
|
|
(kagi-summarizer-default-language "EN")
|
|
(kagi-summarizer-cache t))
|
|
|
|
(use-package vterm
|
|
:commands vterm
|
|
:config
|
|
(setq term-prompt-regexp "^[^#$%>\n]*[#$%>] *")
|
|
(setq vterm-max-scrollback 10000))
|
|
|
|
(setq org-todo-keywords
|
|
'((sequence "TODO" "IN-PROGRESS" "BLOCKED" "DONE")))
|
|
|
|
(setq org-tag-alist '(("work") ("garage")))
|
|
|
|
(setq wl-copy-process nil)
|
|
(defun wl-copy (text)
|
|
(setq wl-copy-process (make-process :name "wl-copy"
|
|
:buffer nil
|
|
:command '("wl-copy" "-f" "-n")
|
|
:connection-type 'pipe
|
|
:noquery t))
|
|
(process-send-string wl-copy-process text)
|
|
(process-send-eof wl-copy-process))
|
|
(defun wl-paste ()
|
|
(if (and wl-copy-process (process-live-p wl-copy-process))
|
|
nil ; should return nil if we're the current paste owner
|
|
(shell-command-to-string "wl-paste -n | tr -d \r")))
|
|
(setq interprogram-cut-function 'wl-copy)
|
|
(setq interprogram-paste-function 'wl-paste)
|
|
|
|
|
|
;; Enable Evil
|
|
(unless (package-installed-p 'evil)
|
|
(package-install 'evil))
|
|
|
|
(require 'evil)
|
|
(setq evil-want-keybing nil)
|
|
(evil-mode 1)
|
|
|
|
(use-package evil-collection
|
|
:ensure t
|
|
:after evil
|
|
:init
|
|
(evil-collection-init))
|
|
|
|
;; org
|
|
(use-package org-roam
|
|
:ensure t
|
|
:custom
|
|
(org-roam-directory (file-truename "~/Documents/notes"))
|
|
(org-roam-dailies-directory (file-truename "~/Documents/notes"))
|
|
(org-roam-completion-everywhere t)
|
|
(org-roam-dailies-capture-templates
|
|
'(("d" "default" entry "* %<%I:%M %p>: %?"
|
|
:if-new (file+head "%<%Y-%m-%d>.org" "#+title: %<%Y-%m-%d>\n"))))
|
|
:bind (("C-c n l" . org-roam-buffer-toggle)
|
|
("C-c n f" . org-roam-node-find)
|
|
("C-c n i" . org-roam-node-insert)
|
|
:map org-mode-map
|
|
("C-M-i" . completion-at-point)
|
|
:map org-roam-dailies-map
|
|
("Y" . org-roam-dailies-capture-yesterday)
|
|
("T" . org-roam-dailies-capture-tomorrow))
|
|
:bind-keymap
|
|
("C-c n d" . org-roam-dailies-map)
|
|
:config
|
|
(require 'org-roam-dailies) ;; Ensure the keymap is available
|
|
(org-roam-db-autosync-mode))
|
|
(org-roam-db-autosync-mode)
|
|
;; Bind this to C-c n I
|
|
(defun org-roam-node-insert-immediate (arg &rest args)
|
|
(interactive "P")
|
|
(let ((args (cons arg args))
|
|
(org-roam-capture-templates (list (append (car org-roam-capture-templates)
|
|
'(:immediate-finish t)))))
|
|
(apply #'org-roam-node-insert args)))
|
|
|
|
(setq org-agenda-files '("~/Documents/notes/daily/"))
|
|
(save-place-mode 1)
|
|
|
|
;; vertico
|
|
(unless (package-installed-p 'vertico)
|
|
(package-install 'vertico))
|
|
|
|
(use-package vertico
|
|
:ensure t
|
|
:bind (:map vertico-map
|
|
("C-j" . vertico-next)
|
|
("C-k" . vertico-previous)
|
|
("C-f" . vertico-exit)
|
|
:map minibuffer-local-map
|
|
("M-h" . backward-kill-word))
|
|
:custom
|
|
(vertico-cycle t)
|
|
:init
|
|
(vertico-mode))
|
|
|
|
(use-package savehist
|
|
:init
|
|
(savehist-mode))
|
|
|
|
(use-package marginalia
|
|
:after vertico
|
|
:ensure t
|
|
:custom
|
|
(marginalia-annotators '(marginalia-annotators-heavy marginalia-annotators-light nil))
|
|
:init
|
|
(marginalia-mode))
|
|
|
|
;; lsp
|
|
;; (use-package lsp-mode
|
|
;; :init
|
|
;; ;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
|
;; (setq lsp-keymap-prefix "C-c l")
|
|
;; :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode)
|
|
;; (python-mode . lsp)
|
|
;; ;; if you want which-key integration
|
|
;; (lsp-mode . lsp-enable-which-key-integration))
|
|
;; :commands lsp)
|
|
|
|
;; ;; optionally
|
|
;; (use-package lsp-ui :commands lsp-ui-mode)
|
|
;; ;; optionally if you want to use debugger
|
|
;; (use-package dap-mode)
|
|
|
|
;; ;; optional if you want which-key integration
|
|
;; (use-package which-key
|
|
;; :config
|
|
;; (which-key-mode))
|