From 33e00176cbeb88284c10839ae92e3adb13733d25 Mon Sep 17 00:00:00 2001 From: Thomas Ruoff Date: Tue, 20 Aug 2019 09:09:09 +0200 Subject: [PATCH] doom seems like a better start --- emacs/.emacs.d/custom.el | 14 --- emacs/.emacs.d/init.el | 135 ----------------------------- emacs/doom.d/config.el | 9 ++ emacs/doom.d/init.el | 181 +++++++++++++++++++++++++++++++++++++++ emacs/doom.d/packages.el | 9 ++ 5 files changed, 199 insertions(+), 149 deletions(-) delete mode 100644 emacs/.emacs.d/custom.el delete mode 100644 emacs/.emacs.d/init.el create mode 100644 emacs/doom.d/config.el create mode 100644 emacs/doom.d/init.el create mode 100644 emacs/doom.d/packages.el diff --git a/emacs/.emacs.d/custom.el b/emacs/.emacs.d/custom.el deleted file mode 100644 index 160e48f..0000000 --- a/emacs/.emacs.d/custom.el +++ /dev/null @@ -1,14 +0,0 @@ -(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. - '(package-selected-packages - (quote - (evil-org org-bullets evil-magit projectile evil-leader use-package evil-surround evil-escape)))) -(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. - ) diff --git a/emacs/.emacs.d/init.el b/emacs/.emacs.d/init.el deleted file mode 100644 index bf131f0..0000000 --- a/emacs/.emacs.d/init.el +++ /dev/null @@ -1,135 +0,0 @@ -;; UI -(scroll-bar-mode 1) -(tool-bar-mode -1) -(tooltip-mode 1) -(menu-bar-mode 1) - -(add-to-list 'default-frame-alist '(font . "Fira Code-13")) - -;; package config -(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3") -(require 'package) -(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) -(package-initialize) - -;; bootstrap use-package -(unless (package-installed-p 'use-package) - (package-refresh-contents) - (package-install 'use-package)) -(require 'use-package) - -;; packages -(use-package magit - :ensure t) - -(use-package editorconfig - :ensure t - :config - (editorconfig-mode 1)) - -(use-package helm - :ensure t - :init - (setq helm-M-x-fuzzy-match t - helm-mode-fuzzy-match t - helm-buffers-fuzzy-matching t - helm-recentf-fuzzy-match t - helm-locate-fuzzy-match t - helm-semantic-fuzzy-match t - helm-imenu-fuzzy-match t - helm-completion-in-region-fuzzy-match t - helm-candidate-number-list 150 - ;helm-split-window-in-side-p t - helm-move-to-line-cycle-in-source t - helm-echo-input-in-header-line t - helm-autoresize-max-height 0 - helm-autoresize-min-height 20) - :config - (helm-mode 1)) - -(use-package projectile - :ensure t - ;:pin melpa-stable - :config - (define-key projectile-mode-map (kbd "s-p") 'projectile-command-map) - (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) - (projectile-mode +1)) - -(use-package evil-escape - :ensure t - :init - (setq-default evil-escape-key-sequence "jk") - (setq-default evil-escape-delay 0.2) - :config - (evil-escape-mode 1)) - -(use-package evil-leader - :ensure t - :config - (evil-leader/set-leader "") - (evil-leader/set-key - "f" 'find-file - "b" 'switch-to-buffer - "d" 'kill-buffer) - (global-evil-leader-mode)) - -(use-package evil-surround - :ensure t - :config - (global-evil-surround-mode 1)) - -(use-package evil-magit - :ensure t) - -(use-package evil - :ensure t - :config - (evil-mode 1)) - -(use-package org - :ensure t - :defer t - :diminish org-indent-mode - :config - (let ((main-org-file "~/.emacs.d/todo/todo.org")) - (setq org-agenda-files (list main-org-file)) - (setq org-default-notes-file main-org-file) - (setq org-capture-templates - '(("i" "Idea" entry (file+headline main-org-file "Half-Baked Ideas") - "* TODO %?") - ("j" "Jira" entry (file+headline main-org-file "Jiras") - "* TODO %^{prompt}%? :%\\1:\n %c") - ("l" "Listing" entry (file+headline main-org-file "Listings") - "* TODO opt%^{prompt}%? :opp%\\1:\n %c") - ("t" "Todo" entry (file+headline main-org-file "Tasks") - "* TODO %?")))) - - (add-hook 'org-mode-hook - (lambda() - (org-indent-mode t))) - - ;; syntax highlighting for code blocks - (setq org-src-fontify-natively t) - - (setq org-use-fast-todo-selection t)) - -(use-package org-bullets - :ensure t - :commands (org-bullets-mode) - :init (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))) - -(use-package evil-org - :ensure t - :after org - :hook ((org-mode . evil-org-mode) - (evil-org-mode . evil-org-set-key-theme)) - :config - (require 'evil-org-agenda) - (evil-org-agenda-set-keys)) - - -;; replace emacs M-x with helm-M-x -(global-set-key (kbd "M-x") 'helm-M-x) - -(setq custom-file "~/.emacs.d/custom.el") -(load custom-file) diff --git a/emacs/doom.d/config.el b/emacs/doom.d/config.el new file mode 100644 index 0000000..dfc52b3 --- /dev/null +++ b/emacs/doom.d/config.el @@ -0,0 +1,9 @@ +;;; ~/.doom.d/config.el -*- lexical-binding: t; -*- + +;; Place your private configuration here + +(eval-after-load 'js-mode + '(add-hook 'js-mode-hook #'add-node-modules-path)) + +(eval-after-load 'js2-mode + '(add-hook 'js2-mode-hook #'add-node-modules-path)) diff --git a/emacs/doom.d/init.el b/emacs/doom.d/init.el new file mode 100644 index 0000000..3b23a99 --- /dev/null +++ b/emacs/doom.d/init.el @@ -0,0 +1,181 @@ +;;; init.el -*- lexical-binding: t; -*- + +;; Copy this file to ~/.doom.d/init.el or ~/.config/doom/init.el ('doom +;; quickstart' will do this for you). The `doom!' block below controls what +;; modules are enabled and in what order they will be loaded. Remember to run +;; 'doom refresh' after modifying it. +;; +;; More information about these modules (and what flags they support) can be +;; found in modules/README.org. + +(doom! :input + ;;chinese + ;;japanese + + :completion + company ; the ultimate code completion backend + ;;helm ; the *other* search engine for love and life + ;;ido ; the other *other* search engine... + ivy ; a search engine for love and life + + :ui + ;;deft ; notational velocity for Emacs + doom ; what makes DOOM look the way it does + doom-dashboard ; a nifty splash screen for Emacs + doom-quit ; DOOM quit-message prompts when you quit Emacs + ;;fill-column ; a `fill-column' indicator + hl-todo ; highlight TODO/FIXME/NOTE tags + ;;indent-guides ; highlighted indent columns + modeline ; snazzy, Atom-inspired modeline, plus API + nav-flash ; blink the current line after jumping + ;;neotree ; a project drawer, like NERDTree for vim + ophints ; highlight the region an operation acts on + (popup ; tame sudden yet inevitable temporary windows + +all ; catch all popups that start with an asterix + +defaults) ; default popup rules + ;;pretty-code ; replace bits of code with pretty symbols + ;;tabbar ; FIXME an (incomplete) tab bar for Emacs + treemacs ; a project drawer, like neotree but cooler + ;;unicode ; extended unicode support for various languages + vc-gutter ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond EOB + window-select ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + + :editor + (evil +everywhere); come to the dark side, we have cookies + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + ;;(format +onsave) ; automated prettiness + ;;lispy ; vim for lisp, for people who dont like vim + multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into python, sort of + rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + + :emacs + (dired ; making dired pretty [functional] + ;;+ranger ; bringing the goodness of ranger to dired + ;;+icons ; colorful icons for dired-mode + ) + electric ; smarter, keyword-based electric-indent + vc ; version-control and Emacs, sitting in a tree + + :term + ;;eshell ; a consistent, cross-platform shell (WIP) + ;;shell ; a terminal REPL for Emacs + ;;term ; terminals in Emacs + ;;vterm ; another terminals in Emacs + + :tools + ;;ansible + ;;debugger ; FIXME stepping through code, to help you add bugs + ;;direnv + ;;docker + editorconfig ; let someone else argue about tabs vs spaces + ;;ein ; tame Jupyter notebooks with emacs + eval ; run code, run (also, repls) + flycheck ; tasing you for every semicolon you forget + flyspell ; tasing you for misspelling mispelling + ;;gist ; interacting with github gists + (lookup ; helps you navigate your code and documentation + +docsets) ; ...or in Dash docsets locally + lsp + ;;macos ; MacOS-specific commands + magit ; a git porcelain for Emacs + ;;make ; run make tasks from Emacs + ;;pass ; password manager for nerds + ;;pdf ; pdf enhancements + ;;prodigy ; FIXME managing external services & code builders + ;;rgb ; creating color strings + ;;terraform ; infrastructure as code + ;;tmux ; an API for interacting with tmux + ;;upload ; map local to remote projects via ssh/ftp + ;;wakatime + + :lang + ;;agda ; types of types of types of types... + ;;assembly ; assembly for fun or debugging + ;;cc ; C/C++/Obj-C madness + ;;clojure ; java with a lisp + ;;common-lisp ; if you've seen one lisp, you've seen them all + ;;coq ; proofs-as-programs + ;;crystal ; ruby at the speed of c + ;;csharp ; unity, .NET, and mono shenanigans + data ; config/data formats + ;;erlang ; an elegant language for a more civilized age + ;;elixir ; erlang done right + ;;elm ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;ess ; emacs speaks statistics + ;;fsharp ; ML stands for Microsoft's Language + ;;go ; the hipster dialect + ;;(haskell +intero) ; a language that's lazier than I am + ;;hy ; readability of scheme w/ speed of python + ;;idris ; + ;;(java +meghanada) ; the poster child for carpal tunnel syndrome + (javascript +lsp) ; all(hope(abandon(ye(who(enter(here)))))) + ;;julia ; a better, faster MATLAB + ;;kotlin ; a better, slicker Java(Script) + ;;latex ; writing papers in Emacs has never been so fun + ;;ledger ; an accounting system in Emacs + ;;lua ; one-based indices? one-based indices + markdown ; writing docs for people to ignore + ;;nim ; python + lisp at the speed of c + ;;nix ; I hereby declare "nix geht mehr!" + ;;ocaml ; an objective camel + (org ; organize your plain life in plain text + +dragndrop ; file drag & drop support + +ipython ; ipython support for babel + +pandoc ; pandoc integration into org's exporter + +present) ; using Emacs for presentations + ;;perl ; write code no one else can comprehend + ;;php ; perl's insecure younger brother + ;;plantuml ; diagrams for confusing people more + ;;purescript ; javascript, but functional + ;;python ; beautiful is better than ugly + ;;qt ; the 'cutest' gui framework ever + ;;racket ; a DSL for DSLs + ;;rest ; Emacs as a REST client + ;;ruby ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;scala ; java, but good + ;;scheme ; a fully conniving family of lisps + sh ; she sells {ba,z,fi}sh shells on the C xor + ;;solidity ; do you need a blockchain? No. + ;;swift ; who asked for emoji variables? + ;;terra ; Earth and Moon in alignment for performance. + web ; the tubes + ;;vala ; GObjective-C + + :email + ;;(mu4e +gmail) ; WIP + ;;notmuch ; WIP + ;;(wanderlust +gmail) ; WIP + + ;; Applications are complex and opinionated modules that transform Emacs + ;; toward a specific purpose. They may have additional dependencies and + ;; should be loaded late. + :app + ;;calendar + ;;irc ; how neckbeards socialize + ;;(rss +org) ; emacs as an RSS reader + ;;twitter ; twitter client https://twitter.com/vnought + ;;(write ; emacs as a word processor (latex + org + markdown) + ;; +wordnut ; wordnet (wn) search + ;; +langtool) ; a proofreader (grammar/style check) for Emacs + + :collab + ;;floobits ; peer programming for a price + ;;impatient-mode ; show off code over HTTP + + :config + ;; For literate config users. This will tangle+compile a config.org + ;; literate config in your `doom-private-dir' whenever it changes. + ;;literate + + ;; The default module sets reasonable defaults for Emacs. It also + ;; provides a Spacemacs-inspired keybinding scheme and a smartparens + ;; config. Use it as a reference for your own modules. + (default +bindings +smartparens)) diff --git a/emacs/doom.d/packages.el b/emacs/doom.d/packages.el new file mode 100644 index 0000000..c57a9b9 --- /dev/null +++ b/emacs/doom.d/packages.el @@ -0,0 +1,9 @@ +;; -*- no-byte-compile: t; -*- +;;; ~/.doom.d/packages.el + +;;; Examples: +;; (package! some-package) +;; (package! another-package :recipe (:fetcher github :repo "username/repo")) +;; (package! builtin-package :disable t) + +(package! add-node-modules-path)