162 lines
4.5 KiB
EmacsLisp
162 lines
4.5 KiB
EmacsLisp
;; Initial greeting for debugging
|
|
(message "Welcome to Emacs")
|
|
(message "Loading user configuration...")
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; LOOK AND FEEL ;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
;; Setting default font
|
|
(set-frame-font "0xProto Nerd Font 13" nil t)
|
|
|
|
;; Remove toolbar
|
|
(tool-bar-mode -1)
|
|
|
|
;; Remove menu
|
|
(menu-bar-mode -1)
|
|
|
|
;; Disable startup screen
|
|
(setq inhibit-startup-screen t)
|
|
|
|
;; Disable splash screen
|
|
(setq inhibit-splash-screen t)
|
|
|
|
;; Remove scrollbar
|
|
(scroll-bar-mode -1)
|
|
|
|
;; Simple 'y' for 'yes' and 'n' for 'no'
|
|
(defalias 'yes-or-no-p 'y-or-n-p)
|
|
|
|
;; Set global value for paragraph witdh
|
|
(setq-default fill-column 120)
|
|
|
|
;; Stop Emacs from losing informations
|
|
(setq undo-limit 2000000)
|
|
(setq undo-strong-limit 4000000000)
|
|
|
|
;; Smooth scroll
|
|
(setq scroll-step 3)
|
|
(setq ring-bell-function 'ignore)
|
|
|
|
;; Add column number in the status line
|
|
(column-number-mode)
|
|
|
|
;; View clock in the status line
|
|
(display-time)
|
|
|
|
;; Enable line numbers in the programming mode only
|
|
(add-hook 'prog-mode-hook 'display-line-numbers-mode)
|
|
|
|
;; Enable line numbers in the configuration mode only
|
|
(add-hook 'conf-mode-hook 'display-line-numbers-mode)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; EDITOR OPTIONS ;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(setq standard-indent 4)
|
|
(setq tab-stop-list nil)
|
|
(setq indent-tabs-mode nil)
|
|
|
|
;; Setting variables
|
|
(setq vc-follow-symlinks 't)
|
|
(prefer-coding-system 'utf-8-unix)
|
|
(setq custom-file (null-device))
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; PACKAGES ;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
;; Initialize package system via use-package
|
|
(package-initialize)
|
|
(require 'use-package)
|
|
|
|
(use-package package
|
|
:config
|
|
;; Setting repo priorities
|
|
(setq package-archive-priorities
|
|
'(("melpa-stable" . 2)
|
|
("MELPA" . 1)
|
|
("gnu" . 0)))
|
|
;; Setting repo URL
|
|
(setq package-archives
|
|
'(("melpa-stable" . "https://stable.melpa.org/packages/")
|
|
("MELPA" . "https://melpa.org/packages/")
|
|
("gnu" . "https://elpa.gnu.org/packages/")))
|
|
)
|
|
|
|
(use-package catppuccin-theme
|
|
:ensure t
|
|
:config
|
|
(load-theme 'catppuccin :no-confirm)
|
|
(setq catppuccin-flavor 'mocha))
|
|
|
|
;; Status line like Doom Emacs
|
|
(use-package doom-modeline
|
|
:ensure t
|
|
:init (doom-modeline-mode 1))
|
|
|
|
;; Help to remember or discover keybindings
|
|
(use-package which-key
|
|
:ensure t
|
|
:commands (which-key-mode)
|
|
:init (which-key-mode))
|
|
|
|
;; Terminal
|
|
(use-package vterm
|
|
:ensure t)
|
|
|
|
;; Git package
|
|
(use-package magit
|
|
:ensure t
|
|
:bind (:map global-map ("M-G" . magit-status)))
|
|
|
|
(use-package magit-delta
|
|
:ensure t)
|
|
|
|
;; Highlight keywords to remember the activity when coding.
|
|
(use-package hl-todo
|
|
:ensure t
|
|
:commands (global-hl-todo-mode)
|
|
:init (global-hl-todo-mode))
|
|
|
|
(setq hl-todo-keyword-faces
|
|
'(("TODO" . "#94e2d5")
|
|
("FIXME" . "#f38ba8")
|
|
("DEBUG" . "#cba6f7")
|
|
("GOTCHA" . "#eba0ac")
|
|
("STUB" . "#89b4fa")))
|
|
|
|
(keymap-set hl-todo-mode-map "C-c p" #'hl-todo-previous)
|
|
(keymap-set hl-todo-mode-map "C-c n" #'hl-todo-next)
|
|
(keymap-set hl-todo-mode-map "C-c o" #'hl-todo-occur)
|
|
(keymap-set hl-todo-mode-map "C-c i" #'hl-todo-insert)
|
|
|
|
(with-eval-after-load 'magit
|
|
(add-hook 'magit-log-wash-summary-hook
|
|
#'hl-todo-search-and-highlight t)
|
|
(add-hook 'magit-revision-wash-message-hook
|
|
#'hl-todo-search-and-highlighthl t))
|
|
|
|
(use-package i3wm-config-mode
|
|
:ensure t)
|
|
|
|
(use-package company
|
|
:ensure t
|
|
:commands (global-company-mode)
|
|
:init (global-company-mode)
|
|
:custom
|
|
(company-tooltip-align-annotations 't)
|
|
(company-minimum-prefix-length 1)
|
|
(company-idle-delay 0.1))
|
|
|
|
;; TODO adding lsp-mode, dap-mode, autocomplete and project handling for C, Go, Bash and Python
|
|
(use-package lsp-mode
|
|
:ensure t
|
|
:init
|
|
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
|
(setq lsp-keymap-prefix "C-c l")
|
|
:hook ((c-mode . lsp))
|
|
:commands lsp)
|
|
|
|
(message "...user configuration loaded")
|