Files
dotfiles/emacs
T

118 lines
3.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(require 'package)
(add-to-list 'package-archives '("elpa" . "https://tromey.com/elpa/") t)
(add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/") t)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
;; emacs preferences
(setq-default cursor-type 'bar)
(global-hl-line-mode 1)
(toggle-scroll-bar -1)
(menu-bar-mode -1)
(tool-bar-mode -1)
(column-number-mode t)
(setq vc-handled-backends nil)
(setq custom-file (concat user-emacs-directory "custom.el"))
(load custom-file 'noerror)
(setq interprogram-cut-function nil)
(setq backup-directory-alist '(("" . "~/.emacs.d/backup")))
(eval-when-compile
(require 'use-package))
(setq package-check-signature nil)
(defun ensure-package-installed (&rest packages)
"Assure every package is installed, ask for installation if its not.
Return a list of installed packages or nil for every skipped package."
(mapcar
(lambda (package)
;; (package-installed-p 'evil)
(if (package-installed-p package)
nil
(if (y-or-n-p (format "Package %s is missing. Install it? " package))
(package-install package)
package)))
packages))
;; make sure to have downloaded archive description.
;; Or use package-archive-contents as suggested by Nicolas Dudebout
(or (file-exists-p package-user-dir)
(package-refresh-contents))
(ensure-package-installed 'use-package 'smex 'magit 'centaur-tabs 'eglot 'telephone-line 'dashboard 'multiple-cursors 'flycheck 'which-key 'restart-emacs 'doom-themes 'rainbow-mode 'rainbow-delimiters 'neotree 'all-the-icons 'elpy 'rustic 'simpleclip 'messages-are-flowing 'hl-todo 'format-all 'auctex)
(use-package company)
(add-hook 'after-init-hook 'global-company-mode)
(use-package eglot :ensure t)
(add-hook 'c++-mode-hook 'eglot-ensure)
(add-hook 'c-mode-hook 'eglot-ensure)
(use-package centaur-tabs :init
(setq centaur-tabs-enable-key-bindings t
centaur-tabs-set-icons t
centaur-tabs-set-modified-marker t
centaur-tabs-style "chamfer"
centaur-tabs-gray-out-icons 'buffer))
(centaur-tabs-headline-match)
(centaur-tabs-mode 1)
(add-hook 'after-init-hook #'global-flycheck-mode)
(add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
(add-hook 'css-mode-hook #'rainbow-mode)
(global-set-key (kbd "M-x") 'smex)
(global-set-key (kbd "M-X") 'smex-major-mode-commands)
(require 'telephone-line)
(telephone-line-mode 1)
(when (fboundp 'windmove-default-keybindings)
(windmove-default-keybindings))
(require 'which-key)
(which-key-mode)
(use-package dashboard
:ensure t
:config (dashboard-setup-startup-hook)
(setq dashboard-set-footer nil
dashboard-org-agenda-categories '("Tasks" "appointments")
dashboard-center-content t))
(setq dashboard-set-heading-icons t)
(setq dashboard-set-file-icons t)
(setq dashboard-set-navigator t)
(require 'multiple-cursors)
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)
(require 'neotree)
(global-set-key [f8] 'neotree-toggle)
(use-package elpy
:ensure t
:defer t
:init
(advice-add 'python-mode :before 'elpy-enable))
(global-hl-todo-mode 1)
;; org settings
(setq org-replace-disputed-keys t)
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(setq org-log-done t)
(add-hook 'diary-list-entries-hook 'diary-sort-entries t)
(cond ((file-exists-p "~/.emacs_home.el") (load "~/.emacs_home.el")))
(cond ((file-exists-p "~/.emacs_work.el") (load "~/.emacs_work.el")))
;;; .emacs ends here