(require 'package) (add-to-list 'package-archives '("elpa" . "http://tromey.com/elpa/") t) (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/") t) (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/") t) (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t) (package-initialize) (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 it’s 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 'smex 'magit `centaur-tabs `eglot `telephone-line `dashboard `multiple-cursors `flycheck `which-key `restart-emacs `doom-themes `rainbow-delimiters `neotree `all-the-icons) (package-initialize) (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-headline-match) (centaur-tabs-mode 1) (add-hook 'after-init-hook #'global-flycheck-mode) (add-hook 'prog-mode-hook #'rainbow-delimiters-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)) (setq-default cursor-type 'bar) (setq backup-directory-alist '(("" . "~/.emacs.d/backup"))) (which-key-mode) (use-package dashboard :ensure t :config (dashboard-setup-startup-hook) (setq dashboard-set-footer nil dashboard-org-agenda-categories '("Tasks" "appointments"))) (setq interprogram-cut-function nil) (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) (menu-bar-mode -1) (toggle-scroll-bar -1) (tool-bar-mode -1) (require `neotree) (global-set-key [f8] `neotree-toggle) ;;(cond ((file-exists-p "~/.emacs_home.el") (load "~/.emacs_home.el"))) ;;; .emacs ends here (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(custom-enabled-themes (quote (doom-wilmersdorf))) '(custom-safe-themes (quote ("a6e620c9decbea9cac46ea47541b31b3e20804a4646ca6da4cce105ee03e8d0e" "a9a67b318b7417adbedaab02f05fa679973e9718d9d26075c6235b1f0db703c8" default))) '(package-selected-packages (quote (restart-emacs which-key flycheck use-package telephone-line smex multiple-cursors magit eglot dashboard company centaur-tabs)))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. )