;; pager emacs config, currently updated April 4, 2023 ;; Packages now handled in `.emacs.d/packages.el` (setq package-enable-at-startup nil) (load "~/.config/emacs/packages.el") ;; Misc Requires and imports (add-to-list 'load-path "~/.config/emacs/lisp/") (load "~/.config/emacs/lisp/functions.el") (add-to-list 'load-path "~/.config/emacs/modes") (require 'expand-region) (require 'ido) (require 'go-mode-load) (require 'popup) (require 'auto-complete) (require 'auto-highlight-symbol) ;; Custom styles and general bindings (setq custom-file "~/.config/emacs/custom.el") (load custom-file) (load "~/.config/emacs/bindings.el") (load "~/.config/emacs/modes/mode-hooks.el") ;; Change settings for backup files. ;; Set the directory to store them in to ~/.emacs.d/autosaves. (if (eq (user-uid) 0) ;; Root Backups do not go in the shared emacs config file. (setq backup-directory-alist `(("." . "~/.emacs-autosaves"))) ;; Else (setq backup-directory-alist `(("." . "~/.config/emacs/autosaves")))) ;; Backup things by copying them. (setq backup-by-copying t) ;; Set some other backup related options. (setq delete-old-versions t kept-new-versions 6 kept-old-versions 2 version-control t) ;; Set syntax hilighting to maximum. Does this do anything? (setq font-lock-maximum-decoration t) ;; Start ido mode (ido-mode t) ;; Set tetris score file ;; (setq tetris-score-file "~/.emacs.d/tetris-scores") ;; Automatically added when running functions (put 'upcase-region 'disabled nil) (put 'scroll-left 'disabled nil) (setq auto-fill-mode 1) ;; Fix the scratch buffer, make it more useful (setq initial-major-mode 'text-mode) (setq initial-scratch-message (concat "-- " (format-time-string "%A %B %d %H:%M:%S") " --\n\n")) (add-hook 'c++-mode-hook 'my:ac-c-headers-init) (add-hook 'c-mode-hook 'my:ac-c-headers-init) ;;(add-hook 'org-mode (lambda () (load "~/.emacs.d/org-mode.el") t) ;; Indentation settings (setq indent-tabs-mode nil) (global-visual-line-mode t) ;; For Scheme programming (setq scheme-program-name "tinyscheme") ;; Slime mode setup (add-hook 'slime-mode-hook (lambda () (interactive) (local-set-key (kbd "C-o C-e") 'slime-eval-last-expression))) ;; basic programming settings (add-hook 'prog-mode-hook (lambda() (global-display-line-numbers-mode) ;; (copilot-mode) (hs-minor-mode))) (add-hook 'hs-minor-mode-hook (lambda() (local-set-key (kbd "C-c SPC") 'hs-toggle-hiding))) ;; copilot mode bindings ;; (add-hook 'copilot-mode-hook ;; (lambda() ;; (define-key copilot-mode-map (kbd "C-") 'copilot-accept-completion) ;; (define-key copilot-mode-map (kbd "M-") 'copilot-next-completion) ;; (define-key copilot-mode-map (kbd "M-") 'copilot-previous-completion) ;; (define-key copilot-mode-map (kbd "M-") 'copilot-accept-completion-by-line))) (put 'set-goal-column 'disabled nil) ;; Auto-hilight symbol mode (global-auto-highlight-symbol-mode t) ;; For js-beutify.el (eval-after-load 'js2-mode '(define-key js2-mode-map (kbd "C-c b") 'web-beautify-js)) (eval-after-load 'json-mode '(define-key json-mode-map (kbd "C-c b") 'web-beautify-js)) (eval-after-load 'sgml-mode '(define-key html-mode-map (kbd "C-c b") 'web-beautify-html)) (eval-after-load 'css-mode '(define-key css-mode-map (kbd "C-c b") 'web-beautify-css)) ;; Delete trailing whitespace on save (add-hook 'before-save-hook 'delete-trailing-whitespace) ;; For magit setup (setq magit-last-seen-setup-instructions "1.4.0") ;; Trunkating lines (setq truncate-partial-width-windows nil) (set-default 'truncate-lines t) (put 'narrow-to-region 'disabled nil) ;; Create a buffer-local hook to run elixir-format on save, only when we enable elixir-mode. (add-hook 'elixir-mode-hook (lambda () (add-hook 'before-save-hook 'elixir-format nil t))) ;; Finally some python stuff (add-hook 'python-mode-hook (lambda () (python-black-on-save-mode))) ;; (load-theme 'FairyFloss t) ;; (load "~/.emacs.d/fairyfloss-theme.el") ;; Ported from previous styles.el (setq inhibit-startup-screen t) (menu-bar-mode 0) (if (display-graphic-p) (progn (load-theme 'dracula t) (tool-bar-mode 0) (setq default-frame-alist '((right-fringe . 0) (left-fringe . 0) ;; scroll-bar-width only applies ;; when not using toolkit scrollbars (scroll-bar-width . 10)) ) (custom-set-faces '(scroll-bar ((t (:background "#4d405b" :foreground "#cf87de" :height 1.0 :width condensed)))) '(default ((t (:inherit nil :stipple nil :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 130 :width normal :foundry "unknown" :family "Roboto Mono"))))) ))