From 39e9dcf8af61e4f634845101e34c4c0e8120f0c7 Mon Sep 17 00:00:00 2001 From: Arthur BARRAUX Date: Thu, 12 Jun 2025 17:04:33 +0200 Subject: [PATCH] add git markers --- config.org | 354 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 217 insertions(+), 137 deletions(-) diff --git a/config.org b/config.org index 3d9c7cb..38c4b0d 100644 --- a/config.org +++ b/config.org @@ -5,14 +5,14 @@ * Init ** Package management #+begin_src emacs-lisp - ;; This is only needed once, near the top of the file +;; This is only needed once, near the top of the file - (require 'package) - (add-to-list 'package-archives - '("melpa" . "https://melpa.org/packages/") t) - (package-initialize) +(require 'package) +(add-to-list 'package-archives + '("melpa" . "https://melpa.org/packages/") t) +(package-initialize) - (setq package-archives +(setq package-archives '(("GNU ELPA" . "https://elpa.gnu.org/packages/") ("MELPA Stable" . "https://stable.melpa.org/packages/") ("MELPA" . "https://melpa.org/packages/")) @@ -21,17 +21,27 @@ ("MELPA" . 5) ("MELPA Stable" . 0))) - (unless (package-install 'use-package) - (package-refresh-contents) - (package-install 'use-package)) +(unless (package-install 'use-package) + (package-refresh-contents) + (package-install 'use-package)) - (eval-when-compile (require 'use-package)) - (setq use-package-always-ensure t) +(eval-when-compile (require 'use-package)) +(setq use-package-always-ensure t) (pdf-tools-install) +(use-package exec-path-from-shell) #+end_src +** Git +#+begin_src emacs-lisp + (use-package git-gutter) + (use-package git-gutter-fringe) + +(define-fringe-bitmap 'git-gutter-fr:added [224] nil nil '(center repeated)) +(define-fringe-bitmap 'git-gutter-fr:modified [224] nil nil '(center repeated)) +(define-fringe-bitmap 'git-gutter-fr:deleted [128 192 224 240] nil nil 'bottom) +#+end_src ** Prolog #+begin_src emacs-lisp (autoload 'run-prolog "prolog" "Start a Prolog sub-process." t) @@ -44,71 +54,73 @@ #+end_src ** Dired #+begin_src emacs-lisp - (use-package dired-preview) - (use-package dired-git - :hook - (dired-mode . dired-git-mode)) + (use-package dired-preview) + (use-package dired-git + :hook + (dired-mode . dired-git-mode)) #+end_src ** Theme #+BEGIN_SRC emacs-lisp - (use-package zenburn-theme) - (use-package doom-themes) +(use-package zenburn-theme) +(use-package doom-themes) +(use-package spacemacs-theme) - (load-theme 'doom-one t) +(load-theme 'spacemacs-dark t) - (use-package vertico - :custom - (vertico-cycle t) ;; Enable cycling for `vertico-next/previous' - :init - (vertico-mode)) - (use-package savehist - :init - (savehist-mode)) +(use-package vertico + :custom + (vertico-cycle t) ;; Enable cycling for `vertico-next/previous' + :init + (vertico-mode)) - (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], 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) +(use-package savehist + :init + (savehist-mode)) - (setq minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt)) - (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)) +(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], 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) - (use-package vertico-directory - :after vertico - :ensure nil - ;; More convenient directory navigation commands - :bind (:map vertico-map - ("RET" . vertico-directory-enter) - ("DEL" . vertico-directory-delete-char) - ("M-DEL" . vertico-directory-delete-word)) - ;; Tidy shadowed file names - :hook (rfn-eshadow-update-overlay . vertico-directory-tidy)) + (setq minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt)) + (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)) - (use-package vertico-multiform - :after vertico - :load-path "~/.emacs.d/elpa/vertico-1.9/") +(use-package vertico-directory + :after vertico + :ensure nil + ;; More convenient directory navigation commands + :bind (:map vertico-map + ("RET" . vertico-directory-enter) + ("DEL" . vertico-directory-delete-char) + ("M-DEL" . vertico-directory-delete-word)) + ;; Tidy shadowed file names + :hook (rfn-eshadow-update-overlay . vertico-directory-tidy)) - (vertico-multiform-mode 1) +(use-package vertico-multiform + :after vertico + :load-path "~/.emacs.d/elpa/vertico-1.9/") - (use-package vertico-posframe - :ensure t) - (setq vertico-posframe-parameters - '((left-fringe . 8) +(vertico-multiform-mode 1) + +(use-package vertico-posframe + :ensure t) +(setq vertico-posframe-parameters + '((left-fringe . 8) (right-fringe . 8))) #+END_SRC @@ -133,39 +145,39 @@ ** Helm #+begin_src emacs-lisp - (use-package helm - :config (require 'helm-autoloads) - :bind +(use-package helm + :config (require 'helm-autoloads) + :bind - (("M-x". 'helm-M-x) - ("C-x C-f" . 'helm-find-files))) - (helm-mode 1) - (use-package helm-make - :bind ("C-x m" . 'helm-make)) - (use-package helm-posframe) - (helm-posframe-enable) - (setq helm-recentf-fuzzy-match t - helm-locate-fuzzy-match nil ;; locate fuzzy is worthless - helm-M-x-fuzzy-match t - helm-buffers-fuzzy-matching t - helm-semantic-fuzzy-match t - helm-apropos-fuzzy-match t - helm-imenu-fuzzy-match t - helm-lisp-fuzzy-completion t - helm-completion-in-region-fuzzy-match t) + (("M-x". 'helm-M-x) + ("C-x C-f" . 'helm-find-files))) +(helm-mode 1) +(use-package helm-make + :bind ("C-x m" . 'helm-make)) +(use-package helm-posframe) +(helm-posframe-enable) +(setq helm-recentf-fuzzy-match t + helm-locate-fuzzy-match nil ;; locate fuzzy is worthless + helm-M-x-fuzzy-match t + helm-buffers-fuzzy-matching t + helm-semantic-fuzzy-match t + helm-apropos-fuzzy-match t + helm-imenu-fuzzy-match t + helm-lisp-fuzzy-completion t + helm-completion-in-region-fuzzy-match t) #+end_src ** Company #+BEGIN_SRC emacs-lisp - (use-package company - :hook - (after-init . global-company-mode) - :custom - (company-backends '(company-capf))) - (use-package company-box - :hook - (company-mode . company-box-mode)) +(use-package company + :hook + (after-init . global-company-mode) + :custom + (company-backends '(company-capf))) +(use-package company-box + :hook + (company-mode . company-box-mode)) #+END_SRC ** Smart parenthesis @@ -178,48 +190,89 @@ (require 'smartparens-config)) #+end_src +** Flycheck +#+begin_src emacs-lisp +(use-package flycheck + :init + (progn + (define-fringe-bitmap 'my-flycheck-fringe-indicator + (vector #b00000000 + #b00000000 + #b00000000 + #b00000000 + #b00000000 + #b00000000 + #b00000000 + #b00011100 + #b00111110 + #b00111110 + #b00111110 + #b00011100 + #b00000000 + #b00000000 + #b00000000 + #b00000000 + #b00000000)) + + (flycheck-define-error-level 'error + :severity 2 + :overlay-category 'flycheck-error-overlay + :fringe-bitmap 'my-flycheck-fringe-indicator + :fringe-face 'flycheck-fringe-error) + + (flycheck-define-error-level 'warning + :severity 1 + :overlay-category 'flycheck-warning-overlay + :fringe-bitmap 'my-flycheck-fringe-indicator + :fringe-face 'flycheck-fringe-warning) + + (flycheck-define-error-level 'info + :severity 0 + :overlay-category 'flycheck-info-overlay + :fringe-bitmap 'my-flycheck-fringe-indicator + :fringe-face 'flycheck-fringe-info))) +#+end_src + ** LSP #+begin_src emacs-lisp ;; Java (use-package exec-path-from-shell) (use-package lsp-java) (require 'lsp-java) - (add-hook 'java-mode-hook #'lsp) (use-package hydra) (setq lsp-java-jdt-download-url "https://download.eclipse.org/jdtls/milestones/0.57.0/jdt-language-server-0.57.0-202006172108.tar.gz") - (use-package lsp-mode - :init - ;;set prefix - (setq lsp-keymap-prefix "C-c l") - (setq lsp-diagnostics-provider :flycheck) ; Use flycheck for diagnostics - (setq lsp-enable-snippet t) ; Enable snippet support - (setq company-idle-delay 0.2) ; Set delay for completion pop-up - (setq company-minimum-prefix-length 1) - (setq lsp-clients-clangd-executable "clangd") + (use-package lsp-mode + :init + ;;set prefix + (setq lsp-keymap-prefix "C-c l") + (setq lsp-diagnostics-provider :flycheck) ; Use flycheck for diagnostics + (setq lsp-enable-snippet t) ; Enable snippet support + (setq company-idle-delay 0.2) ; Set delay for completion pop-up + (setq company-minimum-prefix-length 1) + (setq lsp-clients-clangd-executable "clangd") - :hook - ((prog-mode . lsp) - (c-mode . lsp) - (emacs-lisp-mode . lsp) - (java-mode . lsp) - (latex-mode . lsp) - (python-mode . lsp) - (lsp-mode . lsp-enable-which-key-integration) - (before-save . lsp-format-buffer) - ) - :commands lsp - :bind - ("C-" . ff-find-other-file) - :custom - (lsp-prefer-capf t)) + :hook + ((prog-mode . lsp) + (c-mode . lsp) + (java-mode . lsp) + (latex-mode . lsp) + (python-mode . lsp) + (lsp-mode . lsp-enable-which-key-integration) + (before-save . lsp-format-buffer) + ) + :commands lsp + :bind + ("C-" . ff-find-other-file) + :custom + (lsp-prefer-capf t)) - (use-package helm-lsp - :commands helm-lsp-workspace-symbol) + (use-package helm-lsp + :commands helm-lsp-workspace-symbol) - (use-package which-key - :config - (which-key-mode)) + (use-package which-key + :config + (which-key-mode)) #+end_src * Key-binds @@ -228,12 +281,6 @@ (keymap-global-set "M-a" 'switch-to-buffer) #+end_src -** Dired -#+begin_src emacs-lisp - (add-hook 'dired-mode-hook (lambda () (local-key-binding "-" 'dired-jump))) -#+end_src - - ** C *** Dereference arrow @@ -256,7 +303,7 @@ #+BEGIN_SRC emacs-lisp (defun reload-conf () (interactive) - (load-file "~/.emacs.d/init.el")) + (load-file "~/.emacs.default/init.el")) (keymap-global-set "C-c r" 'reload-conf) #+END_SRC @@ -264,7 +311,7 @@ #+begin_src emacs-lisp (defun open-config () (interactive) - (find-file "~/.emacs.d/config.org")) + (find-file "~/.emacs.default/config.org")) (keymap-global-set "C-c c" 'open-config) #+end_src ** Window command @@ -292,11 +339,12 @@ * Org #+begin_src emacs-lisp + (use-package org-superstar) (defun my/buffer-face-mode-variable () "Set font to a variable width (proportional) fonts in current buffer" (interactive) (setq buffer-face-mode-face '(:family "Roboto Slab" - :height 150 + :height 120 :width normal)) (buffer-face-mode)) (use-package org-bullets @@ -419,6 +467,11 @@ (add-hook 'before-make-frame-hook (lambda () (scroll-bar-mode -1))) #+END_SRC +** Prog +#+begin_src emacs-lisp + (add-hook 'prog-mode-hook 'git-gutter-mode) +#+end_src + * Terminal #+begin_src emacs-lisp (use-package vterm @@ -438,15 +491,8 @@ #+end_src * Misceleaneous -** Music -#+begin_src emacs-lisp - (use-package emms) -(emms-all) -(setq emms-player-list '(emms-player-vlc) - emms-info-functions '(emms-info-native)) -#+end_src - ** Indentation + #+begin_src emacs-lisp (use-package rainbow-delimiters) (use-package highlight-indent-guides) @@ -477,3 +523,37 @@ (setq-default indent-tabs-mode nil) (setq-default tab-width 4) #+end_src + +** Smooth scroll +#+begin_src emacs-lisp + (setq mouse-wheel-scroll-amount '(1 ((shift) . 1) ((control) . nil))) + (setq mouse-wheel-follow-mouse 't) ; scroll window under mouse + (require 'mwheel) + (setq mouse-wheel-scroll-amount '(3 ((shift) . 1) ((control) . 5))) + (setq mouse-wheel-inhibit-click-time 0.1) + (setq scroll-step 1 + scroll-conservatively 10000 + scroll-preserve-screen-position 1) + (pixel-scroll-mode 1) ; Enable pixel-level scrolling + (setq pixel-scroll-precision-large-scroll-height 40.0) + (use-package smooth-scrolling + :init + (smooth-scrolling-mode t)) + (use-package good-scroll + :ensure t + :config + (good-scroll-mode 1)) + + #+end_src + +** Startup screen +#+begin_src emacs-lisp + (use-package dashboard + :ensure t + :config + (dashboard-setup-startup-hook) + (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) + (setq server-window (lambda () (switch-to-buffer "*dashboard*")))) + (setq server-window (lambda () (switch-to-buffer "*dashboard*"))) + (kill-buffer "*scratch*") + #+end_src