Compare commits

..

10 Commits

2 changed files with 146 additions and 80 deletions

85
init.el
View File

@ -1,6 +1,6 @@
;;; Below are fragments from my Emacs configuration file ;;; Below are fragments from my Emacs configuration file
;;; (`~/.emacs.d/init.el`) using ;;; (`~/.emacs.d/init.el`) using
;;; [straight.el](https://github.com/raxod502/straight.el) instead of ;;; [straight.el](https://github.com/radian-software/straight.el) instead of
;;; Emacs builtin `package.el`. (For old `package.el` based version ;;; Emacs builtin `package.el`. (For old `package.el` based version
;;; see [here](/dotemacs/2022-02-15/)). ;;; see [here](/dotemacs/2022-02-15/)).
@ -14,11 +14,11 @@
(defvar bootstrap-version) (defvar bootstrap-version)
(let ((bootstrap-file (let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5)) (bootstrap-version 6))
(unless (file-exists-p bootstrap-file) (unless (file-exists-p bootstrap-file)
(with-current-buffer (with-current-buffer
(url-retrieve-synchronously (url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies) 'silent 'inhibit-cookies)
(goto-char (point-max)) (goto-char (point-max))
(eval-print-last-sexp))) (eval-print-last-sexp)))
@ -198,6 +198,14 @@
(global-set-key (kbd "H-r") my-switch-to-register-map) (global-set-key (kbd "H-r") my-switch-to-register-map)
;;; ### Switching tabs ###
(dolist (i (number-sequence 1 9))
(global-set-key (format "\C-c%d" i) `(lambda () (interactive) (tab-select ,i))))
(tab-bar-mode 1)
;;; ### Yasnippet and abbrev mode ### ;;; ### Yasnippet and abbrev mode ###
(setq-default abbrev-mode 1) (setq-default abbrev-mode 1)
@ -237,8 +245,8 @@
;;; add ;;; add
(use-package lsp-mode (use-package lsp-mode
:hook ((c-mode c++-mode d-mode go-mode js-mode kotlin-mode python-mode typescript-mode :hook ((c-mode c++-mode d-mode elm-mode go-mode js-mode kotlin-mode python-mode
vala-mode web-mode) typescript-mode vala-mode web-mode)
. lsp) . lsp)
:init :init
(setq lsp-keymap-prefix "H-l" (setq lsp-keymap-prefix "H-l"
@ -249,8 +257,10 @@
(use-package lsp-ui (use-package lsp-ui
:init :init
(setq lsp-ui-doc-position 'at-point (setq lsp-ui-doc-position 'at-point
lsp-ui-doc-show-with-mouse nil) lsp-ui-doc-show-with-mouse nil
:bind (("C-c d" . lsp-ui-doc-show) lsp-ui-sideline-show-code-actions t)
:bind (("C-c A" . lsp-execute-code-action)
("C-c d" . lsp-ui-doc-show)
("C-c I" . lsp-ui-imenu))) ("C-c I" . lsp-ui-imenu)))
(use-package flycheck (use-package flycheck
@ -310,6 +320,13 @@
("C-M-x" . lsp-dart-dap-flutter-hot-reload))) ("C-M-x" . lsp-dart-dap-flutter-hot-reload)))
;;; ### Elm ###
;;; Requires: [company and lsp-mode].
(use-package elm-mode
:hook (elm-mode . elm-indent-mode))
;;; ### Emacs lisp ### ;;; ### Emacs lisp ###
;;; Requires: [company and lsp-mode] (actually just `company`) and ;;; Requires: [company and lsp-mode] (actually just `company`) and
@ -351,6 +368,34 @@
(use-package kotlin-mode) (use-package kotlin-mode)
;;; ### Lisp ###
(use-package sly
:defer
:config
(setq inferior-lisp-program "sbcl"
sly-mrepl-pop-sylvester nil)
:custom-face
(sly-mrepl-output-face ((t (:foreground "sienna")))))
(use-package paren-face
:defer)
(use-package paredit
:defer)
(use-package highlight-parentheses
:defer)
(defun my-lisp-mode-hook-fn ()
(smartparens-mode 0)
(paredit-mode 1)
(paren-face-mode 1)
(highlight-parentheses-mode 1)
(company-mode 1))
(add-hook 'lisp-mode-hook 'my-lisp-mode-hook-fn)
(add-hook 'emacs-lisp-mode-hook 'my-lisp-mode-hook-fn)
;;; ### Meson build system ### ;;; ### Meson build system ###
@ -372,7 +417,7 @@
;;; and [rust-analyzer]. ;;; and [rust-analyzer].
;;; [Rustup]: https://www.rust-lang.org/learn/get-started ;;; [Rustup]: https://www.rust-lang.org/learn/get-started
;;; [rust-analyzer]: (https://rust-analyzer.github.io/manual.html#installation). ;;; [rust-analyzer]: https://rust-analyzer.github.io/manual.html#installation
(use-package rustic (use-package rustic
:defer) :defer)
@ -473,23 +518,24 @@
(use-package smart-mode-line (use-package smart-mode-line
:config :config
(setq sml/no-confirm-load-theme t (setq sml/no-confirm-load-theme t
sml/shorten-directory t
sml/shorten-modes t
sml/name-width 50
sml/mode-width 'full
sml/theme 'respectful) sml/theme 'respectful)
(sml/setup)) (sml/setup))
;;; ### Switching themes ### ;;; ### Switching themes ###
(use-package zenburn-theme (use-package base16-theme
:defer)
(use-package apropospriate-theme
:defer) :defer)
(use-package faff-theme (use-package faff-theme
:defer) :defer)
(setq my-dark-theme 'zenburn (setq my-dark-theme 'base16-espresso
my-light-theme 'apropospriate-light) my-light-theme 'base16-mexico-light)
(defun my-select-theme (theme) (defun my-select-theme (theme)
(mapc #'disable-theme custom-enabled-themes) (mapc #'disable-theme custom-enabled-themes)
@ -500,6 +546,17 @@
t) t)
(sml/setup)) (sml/setup))
(defun my-select-theme-if-none-selected (frame)
(if (and (eq 'x (window-system frame))
(null (seq-filter (lambda (theme)
(not (string-prefix-p "smart-mode-line-"
(symbol-name theme))))
custom-enabled-themes)))
(my-select-theme 'dark)))
(my-select-theme-if-none-selected nil)
(add-to-list 'after-make-frame-functions #'my-select-theme-if-none-selected)
(defun my-toggle-theme () (defun my-toggle-theme ()
"Toggle between dark and light themes." "Toggle between dark and light themes."
(interactive) (interactive)

View File

@ -1,84 +1,93 @@
(("Emacs-D-Mode" . "199743df55c6bfce3cdb08405bd8519768c8dfa9") (("Emacs-D-Mode" . "024aca97d07e72bf3500fb6bf0cdf50c4992a741")
("ace-jump-mode" . "8351e2df4fbbeb2a4003f2fb39f46d33803f3dac") ("ace-jump-mode" . "8351e2df4fbbeb2a4003f2fb39f46d33803f3dac")
("ace-window" . "0577c426a9833ab107bab46c60d1885c611b2fb9") ("ace-window" . "77115afc1b0b9f633084cf7479c767988106c196")
("all-the-icons-dired" . "147ed0dfd1034a686795a08dc63e2c293128597e") ("all-the-icons-dired" . "4564bec6bd3fd02dd870e6d2cfed37fe38bbc93a")
("all-the-icons-ivy-rich" . "328047e1b107baa1f7df3c706000a1ec9e8f51db") ("all-the-icons-ivy-rich" . "4e36ba6bcb54e28947ba31f50d0d8002fc4aabb5")
("all-the-icons.el" . "2c963ebb75f211d2f7ac3d2db5f4a9ee2f3e27da") ("all-the-icons.el" . "51bf77da1ebc3c199dfc11f54c0dce67559f5f40")
("apropospriate-theme" . "1761bf480cd62859e452ca492b69f09024bb308a") ("avy" . "955c8dedd68c74f3cf692c1249513f048518c4c9")
("avy" . "ba5f035be33693d1a136a5cbeedb24327f551a92") ("base16-emacs" . "d113012e4b76bb3ced331480bce33d03241e56bc")
("bui.el" . "f3a137628e112a91910fd33c0cff0948fa58d470") ("bui.el" . "f3a137628e112a91910fd33c0cff0948fa58d470")
("cfrs" . "f3a21f237b2a54e6b9f8a420a9da42b4f0a63121") ("cfrs" . "f3a21f237b2a54e6b9f8a420a9da42b4f0a63121")
("company-mode" . "5e4cff936ea5e4365b799990e902b4a279f21bb4") ("company-mode" . "2ca3e29abf87392714bc2b26e50e1c0f4b9f4e2c")
("ctrlf" . "38b5e94bf718eeea0b880a78ed52926dec89fea9") ("compat" . "2bedcb5ea91914e75d4905bc53e537b33f8f51e9")
("dap-mode" . "6933fca0b53ea5d2d65a0545e5a4ae6424d32e9b") ("ctrlf" . "9b4cf6c79a961f2bfbb949805aa300fcf1eb40a6")
("dart-mode" . "3bac14200f9f8f8fcebc383087572da5c3823c34") ("dap-mode" . "c72ac1b1a5811cfda3c6740bcf24c67222b6c840")
("dash.el" . "da167c51e9fd167a48d06c7c0ee8e3ac7abd9718") ("dart-mode" . "9c846769abd37f7fdc7ba8388d1f3a2b844b75e3")
("devdocs.el" . "cdc1a7cc3f05235883ffb098fe1c5a8963ed06e2") ("dash.el" . "3df46d7d9fe74f52a661565888e4d31fd760f0df")
("diff-hl" . "4a08b02afec1fc6b1e84de46cc34f75f6c9c3bcc") ("devdocs.el" . "61ce83b79dc64e2f99d7f016a09b97e14b331459")
("dired-hacks" . "7c0ef09d57a80068a11edc74c3568e5ead5cc15a") ("diff-hl" . "8f2e4eb345f0639c8fc41e3f7576f77ba6987655")
("dired-sidebar" . "3635a36f4b4febc8e79e18a0684c8d031adffd92") ("dired-hacks" . "da34f8843987ab7c7868fbc1ae5bd0816f68ad88")
("el-get" . "9353309744e4f8a7c9b1adf22ec99536fb2146b0") ("dired-sidebar" . "f08bf15cb6cb3c44102731f50ffd812d8d68316c")
("elisp-refs" . "8f84280997d8b233d66fb9958a34b46078c58b03") ("el-get" . "17db7640d3ba0c15954a18ff1ea612831436935e")
("eldoc" . "5b9fd6faa9a65409064207c29954edd8ad45dcda")
("elisp-refs" . "af73739084637c8ebadad337a8fe58ff4f1d2ec1")
("emacs-ansible" . "d89ac0ee57742cca0f0e0a3453d9dcc521575690") ("emacs-ansible" . "d89ac0ee57742cca0f0e0a3453d9dcc521575690")
("emacs-faff-theme" . "f1a1cf6c900cccc2b189d49ed6bc4557cfb1593b") ("emacs-faff-theme" . "5d3c7e2f32f4dcdb22865c385ec48ababe5f293a")
("emacs-htmlize" . "dd27bc3f26efd728f2b1f01f9e4ac4f61f2ffbf9") ("emacs-htmlize" . "dd27bc3f26efd728f2b1f01f9e4ac4f61f2ffbf9")
("emacs-libvterm" . "a940dd2ee8a82684860e320c0f6d5e15d31d916f") ("emacs-libvterm" . "990cc18decb489c54d16d03fd8acbfe268b98a9c")
("emacs-which-key" . "1217db8c6356659e67b35dedd9f5f260c06f6e99") ("emacs-which-key" . "8093644032854b1cdf3245ce4e3c7b6673f741bf")
("emacsmirror-mirror" . "641994eed3590a39a778431a16758c2c041963a9") ("emacsmirror-mirror" . "ac1425dc729d89bd6208ced50d821a8538717f5d")
("epl" . "78ab7a85c08222cd15582a298a364774e3282ce6") ("epl" . "78ab7a85c08222cd15582a298a364774e3282ce6")
("f.el" . "50af874cd19042f17c8686813d52569b1025c76a") ("f.el" . "af7d37c619010b576fd22b50c62c71ff33093f3c")
("flycheck" . "784f184cdd9f9cb4e3dbb997c09d93e954142842") ("flycheck" . "646de81bfef309aeb3204992ef4d129e1cb53e14")
("git-messenger" . "eade986ef529aa2dac6944ad61b18de55cee0b76") ("git-messenger" . "eade986ef529aa2dac6944ad61b18de55cee0b76")
("git-timemachine" . "3381797bcbf906b18dff654a2361032d2d01b4a3") ("git-timemachine" . "d8ffd0d7cc4ab3dd7de494c9ea36dfd99e2744fa")
("gnu-elpa-mirror" . "b9591336dc6ece42784901c4c00dded50be415fa") ("gnu-elpa-mirror" . "3350028f721bec8076b332a7d50ae8fa488834a6")
("go-mode.el" . "3273fcece5d9ab7edd4f15b2d6bce61f4e5a0666") ("go-mode.el" . "166dfb1e090233c4609a50c2ec9f57f113c1da72")
("goto-chg" . "278cd3e6d5107693aa2bb33189ca503f22f227d0") ("goto-chg" . "278cd3e6d5107693aa2bb33189ca503f22f227d0")
("helpful" . "67cdd1030b3022d3dc4da2297f55349da57cde01") ("helpful" . "94c25337b2de2f9da60914a7c0c6cca9584c0231")
("ht.el" . "c4c1be487d6ecb353d07881526db05d7fc90ea87") ("highlight-parentheses.el" . "438a1cb2563e2a2496be4678cc0df8d5b22caf5d")
("hydra" . "9e9e00cb240ea1903ffd36a54956b3902c379d29") ("ht.el" . "e83fdb8bc0a3cc8cd2687a947e2610b20b68b7d3")
("hydra" . "317e1de33086637579a7aeb60f77ed0405bf359b")
("ivy-rich" . "600b8183ed0be8668dcc548cc2c8cb94b001363b") ("ivy-rich" . "600b8183ed0be8668dcc548cc2c8cb94b001363b")
("ivy-yasnippet" . "83402d91b4eba5307f71884a72df8e11cc6a994e") ("ivy-yasnippet" . "83402d91b4eba5307f71884a72df8e11cc6a994e")
("kotlin-mode" . "3e0c34087ba4965a8bf08d3f27325f0a1e631bfb") ("jsonrpc" . "b1f1ebf3e41d01aedb069e98f0909468b347d4e7")
("let-alist" . "592553db5929b54db40af0df90c5add0aaca045b") ("kotlin-mode" . "fddd747e5b4736e8b27a147960f369b86179ddff")
("lsp-dart" . "40aa90d8ad0ec6d5f9682e135eefb794b675dc9a") ("let-alist" . "021fc10df2e44faba4728d849ee767cf890aa51a")
("lsp-mode" . "ec57aab424b881ead7a8cf7af977ca4db4bc04d8") ("lsp-dart" . "3db9f93c83052d6a8976c92d67d2b24473930760")
("lsp-treemacs" . "72d367757a89453a712f6ba1df9b6e789ece2bbd") ("lsp-docker" . "81ddb3fc68e1930352b6ca006d0ea609760be7d1")
("lsp-ui" . "21ce926eedd41ef305c2d89412506ce59b1a7eac") ("lsp-mode" . "781889628b9e0504fde279371548149deae4849d")
("magit" . "10b5407131d4299ca9ed038a23a3a41bcaac14fc") ("lsp-treemacs" . "a48763ba5d1c024426e237ce65926db849d3ae6f")
("markdown-mode" . "521658eb32e456681592443e04ae507c3a59ed07") ("lsp-ui" . "295d8984da06a745b0a36c56e28ce915bc389adb")
("melpa" . "144364ae1ab127dd4e630a848741eb561e00ab24") ("magit" . "6d325d90ba1374d48c4c7088f96864b678155f48")
("meson-mode" . "1a2e2abb098c9288c2cdb3affbad76edd98abf59") ("markdown-mode" . "0f7eae811308f92b8681b5411f7a5035d1fcd5a7")
("multiple-cursors.el" . "8a60fc7ef0ae6e5ca089a7c95264cd0ae83e7274") ("melpa" . "d0a5234d94cd9acab783c5918789062e912df9b2")
("pfuture" . "bde5b06795e3e35bfb2bba4c34b538d506a0856e") ("meson-mode" . "82220d12899b87acb3c862b17368f63de7d08d07")
("multiple-cursors.el" . "16223efc2d6dece2d43bbccc189d7a4bab6de571")
("nongnu-elpa" . "85c7a060c6174bf544f0ff8fe2480aaa1f70ed46")
("paredit" . "9a2c4b37fc8c1c7bdbb1f86fdec874c0d0652e64")
("paren-face" . "1c918fe370fa25f7f8329354b7674878d429b889")
("pfuture" . "19b53aebbc0f2da31de6326c495038901bffb73c")
("pkg-info" . "76ba7415480687d05a4353b27fea2ae02b8d9d61") ("pkg-info" . "76ba7415480687d05a4353b27fea2ae02b8d9d61")
("popup-el" . "37a04117ac83b3ed24a2cba894443a32795c2f1a") ("popup-el" . "71cede0588c10526f88dd0375bce776ec2eed05e")
("posframe" . "c91d4d53fa479ceb604071008ce0a901770eff57") ("posframe" . "aa88860a16e28a311f81e18f1d9ed2e7d9e33991")
("prescient.el" . "3dbcef387502d309d130a518a18d48cd2f0e15b7") ("prescient.el" . "35cf5d36132c3e96db9a9e4d1902dcfa207e7baa")
("project" . "4fe1eec8035969d59ab461eb1674343378182a0b") ("project" . "e086bdc7c515f8bfc22598d473ba888ba7683f0c")
("rainbow-mode" . "949166cc0146bc9fabf74ce70c1c4a097f4cffd4") ("rainbow-mode" . "8e96388fb4d616a9dde23e712bad0d9cd048fbf0")
("restclient.el" . "9e2cfa86529133eba6c9ef53794be182f15e4c21") ("restclient.el" . "0ba72816f92f3d5906cdf76f418fd0a3ee72809b")
("rich-minority" . "a03e693f6f9232cf75363aaaf1cb041f21675c19") ("rich-minority" . "a03e693f6f9232cf75363aaaf1cb041f21675c19")
("rust-mode" . "26ecc903c50b2ffd289bbe981f9ad03626fc0057") ("rust-mode" . "22fff6a049402584e7120146c3db141c6f530bf6")
("rustic" . "f4b5c288af2a9833a104bc54850ddabe3996b8be") ("rustic" . "a5fc66c8167a827a57c4426e4b8dbe717b3be43c")
("s.el" . "08661efb075d1c6b4fa812184c1e5e90c08795a9") ("s.el" . "e957dcb0677da18b2bb60ad867db5df5c35b5616")
("sly" . "992e3f3c1a599a8a10af12323d547b35ce70362c")
("smart-mode-line" . "abcb0ab6f7110a03d6c7428bae67cf8731496433") ("smart-mode-line" . "abcb0ab6f7110a03d6c7428bae67cf8731496433")
("smartparens" . "37f77bf2e2199be9fe27e981317b02cfd0e8c70e") ("smartparens" . "7afd647395018a26633673ed92ce7a9cb3ccb8f2")
("spinner" . "34905eae12a236753fa88abc831eff1e41e8576e") ("spinner" . "634529bb3173e09b37499f636de70abf29d9fa8a")
("straight.el" . "af5437f2afd00936c883124d6d3098721c2d306c") ("straight.el" . "3eca39dfc6797243ec7d1c6a7d45142407f73f88")
("swiper" . "c97ea72285f2428ed61b519269274d27f2b695f9") ("swiper" . "b8be4913a661b557e0d3275726e36871556569d3")
("transient" . "45ef6df3fbc7f4fc87fd0db20b48334f61b521e0") ("transient" . "a177418273e65fde74d615222b70d3de978a9077")
("treemacs" . "b18a05b1f62074a40e6011d83cd4c92cbee040dd") ("treemacs" . "9986d6cd3d2822db7ae0e6d8a275db7057f3e828")
("typescript.el" . "88f317f0b6aef8f8d232e912fdbc679799580c56") ("typescript.el" . "4fcb4594819caf472ae42ea068a1c7795cf07f46")
("use-package" . "a7422fb8ab1baee19adb2717b5b47b9c3812a84c") ("use-package" . "77945e002f11440eae72d8730d3de218163d551e")
("vala-mode" . "d696a8177e94c81ea557ad364a3b3dcc3abbc50f") ("vala-mode" . "d696a8177e94c81ea557ad364a3b3dcc3abbc50f")
("web-mode" . "f70277774a725e177774cc81ecbd228792cd6656") ("web-mode" . "df97ab62c94826a84adbde060a4111ca91deda8e")
("windswap" . "1a334f6543e0a30c55ea1e6071e9732d948f9e4b") ("windswap" . "1a334f6543e0a30c55ea1e6071e9732d948f9e4b")
("with-editor" . "f514f23258af67a10fc8e1c431bfe94702b6e65b") ("with-editor" . "391e76a256aeec6b9e4cbd733088f30c677d965b")
("ws-butler" . "e3a38d93e01014cd47bf5af4924459bd145fd7c4") ("ws-butler" . "e3a38d93e01014cd47bf5af4924459bd145fd7c4")
("xref" . "2cc73a20741be0e6eb698060a0e14f2cdf3953a7") ("xref" . "afeb8b5aedafacbe3f474f73b6c388ccd2bdf67c")
("xterm-color" . "1a4012854c69a5cdaeb5a73d2ad705011892fca3") ("xterm-color" . "1a4012854c69a5cdaeb5a73d2ad705011892fca3")
("yaml-mode" . "535273d5a1eb76999d20afbcf4d9f056d8ffd2da") ("yaml-mode" . "3fcb36d6039bef57e2a0f6e24c51f623c0bf5fb7")
("yaml.el" . "73fde9d8fbbaf2596449285df9eb412ae9dd74d9")
("yasnippet" . "5cbdbf0d2015540c59ed8ee0fcf4788effdf75b6") ("yasnippet" . "5cbdbf0d2015540c59ed8ee0fcf4788effdf75b6")
("yasnippet-snippets" . "b7c09f1ad7e1a62da6f6042bfaa2b26d111c7e81") ("yasnippet-snippets" . "df524e4c8688f458dea49199c01c2e7f1190bdd5"))
("zenburn-emacs" . "cef1e26146c1b8b32fc5ce346f2cfa9861eb67d4")) :gamma
:beta