diff --git a/backup/config.el b/backup/config.el new file mode 100644 index 0000000..c027f4d --- /dev/null +++ b/backup/config.el @@ -0,0 +1,271 @@ +;;; .doom.d/config.el -*- lexical-binding: t; -*- + +;; Place your private configuration here + +(setq user-full-name "KahrKunne" + user-mail-address "kahr.kunne@gmail.com" + backup-directory-alist '(("~/.emacs.d/backups")) + delete-old-versions nil + version-control t + vc-make-backup-files nil + auto-save-file-name-transforms '((".*" "~/.emacs.d/auto-save-list" t)) + savehist-file "~/.emacs.d/savehist" + require-final-newline t + global-auto-revert-mode t + global-auto-revert-non-file-buffers t + auto-revert-verbose nil + custom-safe-themes t) + +(add-hook 'term-mode-hook 'toggle-truncate-lines) +(fset 'yes-or-no-p 'y-or-n-p) + +(defadvice projectile-project-root (around ignore-remote first activate) + (unless (file-remote-p default-directory) ad-do-it)) + +(setq web-mode-script-padding 0 + js-indent-level 2 + js2-strict-missing-semi-warning nil) + +(setq avy-all-windows nil) +(setq avy-timeout-seconds 0.2) +(setq avy-keys '(?a ?s ?d ?f ?k ?l ?; ?g ?h + ?q ?w ?e ?r ?t ?y ?i ?p + ?A ?S ?D ?F ?J ?K ?L)) +(define-key evil-normal-state-map (kbd "C-.") #'avy-goto-char-timer) +(setq aw-keys '(?a ?s ?d ?f ?k ?l ?; ?g ?h + ?q ?w ?e ?r ?t ?y ?i ?p + ?A ?S ?D ?F ?J ?K ?L)) + +(define-key evil-normal-state-map (kbd ";") 'evil-ex) +(define-key evil-normal-state-map (kbd "g a") 'paste-above) +(define-key evil-normal-state-map (kbd "g p") 'paste-below) + + +(setq ivy-height 10 + ivy-count-format "(%d/%d) " + ivy-use-virtual-buffers t + ivy-re-builders-alist '((t . ivy--regex-ignore-order)) + ivy-initial-inputs-alist '((org-refile . "") + (org-capture-refile . "") + (counsel-M-x . "") + (counsel-describe-function . "") + (counsel-describe-variable . "") + (man . "") + (woman . ""))) + +(defun my-web-mode-hook () + (setq web-mode-markup-indent-offset 2) + (setq web-mode-code-indent-offset 2) + (setq web-mode-css-indent-offset 2)) +(add-hook 'web-mode-hook 'my-web-mode-hook) + +(require 'key-chord) +(key-chord-mode t) +(key-chord-define evil-insert-state-map "jj" 'evil-normal-state) + + +(set-frame-font "Mononoki 22" nil t) + +(global-set-key (kbd "C-s") #'swiper) + +(which-key-mode 1) +(setq which-key-idle-delay 0.25) + +(setq treemacs--width-is-locked nil) + + ;(centaur-tabs-mode 0) + ;(setq centaur-tabs-style "bar") + ;(setq centaur-tabs-modified-marker "*") + ;(setq centaur-tabs-set-bar 'left) + ; + ;(centaur-tabs-change-fonts "Mononoki" 120) + ;(centaur-tabs-group-by-projectile-project) + +(setq doom-theme 'doom-old-hope) + +(display-time-mode 1) + + +(global-set-key (kbd "C-x C-f") #'counsel-find-file) +(map! :leader + "." #'counsel-find-file) + +(after! evil (evil-escape-mode nil)) + +(setq ivy-read-action-function #'ivy-hydra-read-action) + +(defun my:is-end-of-line () + "Compare point with end of line." + (let* ((pos (current-column)) + (end-pos (save-excursion + (evil-end-of-line) + (current-column)))) + (eq pos end-pos))) + +(defun my:compare-with-end-of-word () + "Compare point with end of word." + (let* ((pos (current-column)) + (end-pos (save-excursion + (evil-backward-word-begin) + (evil-forward-word-end) + (current-column)))) + (- pos end-pos))) + +(defun my:point-is-space () + "Check if point is whitespace." + (char-equal ?\s (char-after))) + +(defun my:insert-after (func) + "Run FUNC after the end of word, ignoring whitespace." + (interactive) + (let ((relative-loc (my:compare-with-end-of-word))) + (cond ((my:is-end-of-line) + (end-of-line) + (call-interactively func)) + ((eq 0 relative-loc) + (evil-forward-char) + (call-interactively func)) + ((and (> 0 relative-loc) (not (my:point-is-space))) + (evil-forward-word-end) + (if (my:is-end-of-line) + (end-of-line) + (evil-forward-char)) + (call-interactively func)) + (t + (call-interactively func))))) + +(setq mouse-autoselect-window t + focus-follows-mouse t) + +(add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-mode)) + +(setq lsp-enable-links nil) + + +(require 'ox-publish) + +(defun blog/get-util (x) + (with-temp-buffer + (insert-file-contents (concat "~/Blog/util/" + x)) + (buffer-string))) + +(setq org-html-metadata-timestamp-format "%Y-%m-%d") +;; Get project settings +(defun akko/blog-spec () + "Return project settings for use with `org-publish-project-alist'." + (let* ((html-head (blog/get-util "head.html")) + (html-preamble (blog/get-util "preamble.html")) + (html-postamble (blog/get-util "postamble.html"))) + + + `( + ("pages" + :base-directory "~/Blog/org" + :base-extension "org" + :recursive t + :publishing-directory "~/Blog/html" + :publishing-function org-html-publish-to-html + + :html-doctype "html5" + :html-html5-fancy t + + :html-viewport ((width "100%") + (initial-scale "0.7") + (minimum-scale "") + (maximum-scale "") + (user-scalable "")) + + :language "en" + :section-numbers nil + + :with-toc nil + :with-date t + :with-title nil + :with-author nil + + :auto-sitemap t + + :sitemap-sort-files anti-chronologically + :sitemap-format-entry + (lambda (entry style project) + (cond ((not (directory-name-p entry)) + (format + "[[file:%s][%s]]\n" + entry + (org-publish-find-title entry project))) + ((eq style 'tree) + (capitalize (file-name-nondirectory (directory-file-name entry)))) + (t entry))) + + :headline-levels 4 + :html-head ,html-head + + :html-preamble ,html-preamble + :html-postamble (lambda (p) + (let* ((timestamp-format (plist-get p :html-metadata-timestamp-format)) + (date (org-export-data (org-export-get-date p timestamp-format) + p)) + (file (plist-get p :input-file)) + (modified (format-time-string + timestamp-format + (and file (file-attribute-modification-time + (file-attributes file)))))) + (concat + "")))) + + ("static" + :base-directory "~/Blog/static" + :base-extension "css\\|txt\\|jpg\\|gif\\|png\\|ttf" + :recursive t + :publishing-directory "~/Blog/html/static" + :publishing-function org-publish-attachment) + + ("blog" :components ("pages" "static"))))) + + (setq org-publish-project-alist (akko/blog-spec)) + +(defun akko/publish-blog () + (interactive) + (setq org-publish-project-alist (akko/blog-spec)) + (org-publish-all)) + +(defun akko/force-publish-blog () + (interactive) + (setq org-publish-project-alist (akko/blog-spec)) + (org-publish-remove-all-timestamps) + (org-publish-all)) + +(map! :leader + (:prefix ("a" . "akko") + :desc "Publish Blog" + "b" #'akko/publish-blog + "f" #'akko/force-publish-blog)) + +(setq org-html-htmlize-output-type 'css) +(setq org-html-htmlize-font-prefix "org-") + +(set-file-template! "/Blog/org/posts/.+\\.org" + :trigger "__blog") + +(defun akko/org-current-time-string () + (with-temp-buffer + (org-mode) + (org-time-stamp '(16)) + (buffer-substring (point-min) (point-max)))) + +(add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-tsx-mode)) + +(setq auto-mode-alist + (append '(("\\.tsx\\'" . typescript-tsx-mode)) + auto-mode-alist)) + +; XXX this will make doom create new files with ipython shebang - bad! +(setq python-shell-interpreter "ipython" + python-shell-interpreter-args "-i --simple-prompt") +(setq python-shell-completion-native-disabled-interpreters '("ipython")) diff --git a/backup/custom.el b/backup/custom.el new file mode 100644 index 0000000..7d3c84f --- /dev/null +++ b/backup/custom.el @@ -0,0 +1,25 @@ +(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. + '(org-agenda-files '("~/org/tasks.org" "~/todo.org")) + '(package-selected-packages + '(polymode fish-mode solidity-mode yaml-mode bison-mode graphql-mode arduino-mode gdscript-mode speed-type ivy-posframe lsp-haskell treemacs key-chord)) + '(warning-suppress-log-types + '((lsp-completion-mode-hook) + (lsp-completion-mode-hook) + (lsp-on-idle-hook) + (lsp-on-idle-hook))) + '(warning-suppress-types + '((lsp-completion-mode-hook) + (lsp-on-idle-hook) + (lsp-on-idle-hook)))) +(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. + ) +(put 'downcase-region 'disabled nil) +(put 'upcase-region 'disabled nil) diff --git a/backup/init.el b/backup/init.el new file mode 100644 index 0000000..295739d --- /dev/null +++ b/backup/init.el @@ -0,0 +1,186 @@ +;;; init.el -*- lexical-binding: t; -*- + +;; Copy this file to ~/.doom.d/init.el or ~/.config/doom/init.el ('doom install' +;; 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 + +prescient + +icons) + + :checkers + syntax + + :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/DEPRECATED/HACK/REVIEW + ;;hydra + ;;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 +; tabs ; an 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 + ;;god ; run Emacs commands without modifier keys + ;;lispy ; vim for lisp, for people who don't like vim + multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into pFalseython, sort of + rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + ;;word-wrap ; soft wrapping with language-aware indent + + :emacs + (dired ; making dired pretty [functional] + +icons) + electric ; smarter, keyword-based electric-indent + undo + (ibuffer ; interactive buffer management + +icons) + 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 + lookup + ;;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 +overlay) ; 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 + +dictionary + +offline) ; ...or in Dash docsets locally + (lsp + +eglot) + ;;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 + ;;elixir ; erlang done right + ;;elm ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;erlang ; an elegant language for a more civilized age + ;;ess ; emacs speaks statistics + ;;faust ; dsp, but you get to keep your soul + ;;fsharp ; ML stands for Microsoft's Language + ;;go ; the hipster dialect + (haskell +lsp) ; 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 + ;;lean + ;;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 + ;;+journal + +dragndrop ; drag & drop files/images into org buffers + ;;+hugo ; use Emacs for hugo blogging + +ipython ; ipython/jupyter support for babel + +pandoc ; export-with-pandoc support + ;;+pomodoro ; be fruitful with the tomato technique + +present) ; using org-mode 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 + +lsp) + qt ; the 'cutest' gui framework ever + racket ; a DSL for DSLs + ;;rest ; Emacs as a REST client + ;;rst ; ReST in peace + ;;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 +fish +lsp) ; 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 + + :email + ;;(mu4e +gmail) + ;;notmuch + ;;(wanderlust +gmail) + + :app + ;;calendar + irc ; how neckbeards socialize + ;;(rss +org) ; emacs as an RSS reader + ;;twitter ; twitter client https://twitter.com/vnought + ;;write ; emacs for writers (fiction, notes, papers, etc.) + + :config + ;;literate + (default +bindings +smartparens) + ) diff --git a/backup/packages.el b/backup/packages.el new file mode 100644 index 0000000..5fe6d79 --- /dev/null +++ b/backup/packages.el @@ -0,0 +1,12 @@ +;; -*- no-byte-compile: t; -*- +;;; .doom.d/packages.el + +;;; Examples: +;; (package! some-package) +;; (package! another-package :recipe (:host github :repo "username/repo")) +;; (package! builtin-package :disable t) + +(package! key-chord) +(package! which-key) +(package! org-mode :recipe (:repo "https://code.orgmode.org/bzg/org-mode.git")) +(add-to-list 'load-path "./elfiles") diff --git a/config.el b/config.el index 97fd4cf..806923e 100644 --- a/config.el +++ b/config.el @@ -73,7 +73,7 @@ (setq treemacs--width-is-locked nil) -(setq doom-theme 'doom-old-hope) +(setq doom-theme 'doom-ayu-mirage) (display-time-mode 1) @@ -82,7 +82,9 @@ (map! :leader "." #'counsel-find-file) -(after! evil (evil-escape-mode nil)) +(after! evil-escape + (setq evil-escape-key-sequence "jj") + (setq-default evil-escape-delay 0.2)) (setq ivy-read-action-function #'ivy-hydra-read-action) @@ -261,6 +263,13 @@ python-shell-interpreter-args "-i --simple-prompt") (setq python-shell-completion-native-disabled-interpreters '("ipython")) +<<<<<<< HEAD +======= +(use-package! org-roam + :config + (setq org-roam-database-connector 'sqlite3)) + +>>>>>>> 8a347a9b20ba0b636f21118b8d418ea946dfd2bd (setq org-roam-directory (file-truename "/mnt/tenma/srv/boymind")) (org-roam-db-autosync-mode) @@ -269,6 +278,7 @@ '((ledger . t) )) +<<<<<<< HEAD (require 'elcord) (elcord-mode) @@ -276,6 +286,8 @@ :config (setq org-roam-database-connector 'sqlite3)) +======= +>>>>>>> 8a347a9b20ba0b636f21118b8d418ea946dfd2bd (add-to-list 'org-agenda-files "/mnt/tenma/srv/boymind/20230727221433-agenda_akko.org") (setq org-roam-capture-templates '(("d" "default" plain "%?" diff --git a/packages.el b/packages.el index a87c451..f31c5a8 100644 --- a/packages.el +++ b/packages.el @@ -10,8 +10,14 @@ (package! which-key) (package! org-mode :recipe (:repo "https://code.orgmode.org/bzg/org-mode.git")) (add-to-list 'load-path "./elfiles") +<<<<<<< HEAD (package! ledger-mode) (package! ob-ledger :recipe (:local-repo "lisp/ob-ledger")) (package! elcord) +======= +(package! ledger-mode) +(package! ob-ledger :recipe (:local-repo "lisp/ob-ledger")) + +>>>>>>> 8a347a9b20ba0b636f21118b8d418ea946dfd2bd (package! emacsql-sqlite3)