From ba588b1595354c21ef118bed6c52fa23c2c66561 Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Mon, 11 Apr 2022 22:03:06 +0300 Subject: [PATCH] Add god mode --- init.el | 3 ++- lang/ocaml.el | 2 +- pkg/base.el | 27 +++++++++++++++++++++++++++ pkg/hydra.el | 5 ++++- pkg/keys-mode.el | 2 ++ straight/versions/default.el | 30 +++++++++++++++--------------- 6 files changed, 51 insertions(+), 18 deletions(-) diff --git a/init.el b/init.el index 2f57bc2..0aac072 100644 --- a/init.el +++ b/init.el @@ -81,7 +81,8 @@ ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(safe-local-variable-values - '((lsp-elixir-project-dir . "/Users/maciej/Development/mindvalley/connect/app") + '((cider-clojure-cli-aliases . "dev") + (lsp-elixir-project-dir . "/Users/maciej/Development/mindvalley/connect/app") (lsp-lens-mode) (lsp-lens-enable) (cider-shadow-default-options . ":app") diff --git a/lang/ocaml.el b/lang/ocaml.el index b58245f..3a57912 100644 --- a/lang/ocaml.el +++ b/lang/ocaml.el @@ -42,7 +42,7 @@ (defun load-ocaml-site-packages () "Generate ocaml config." - (let ((opam-share (ignore-errors (car (process-lines "opam" "config" "var" "share"))))) + (let ((opam-share (ignore-errors (car (process-lines "opam" "var" "share"))))) (when (and opam-share (file-directory-p opam-share)) ;; Register Merlin (add-to-list 'load-path (expand-file-name "emacs/site-lisp" opam-share)) diff --git a/pkg/base.el b/pkg/base.el index 254aa77..3d07c3d 100644 --- a/pkg/base.el +++ b/pkg/base.el @@ -114,6 +114,12 @@ :defer t :straight t) +(use-package god-mode + :defer t + :straight t + :after which-key + ) + ;;;;;;;;;;;;;;;;; Use C-n to create a new line (setq next-line-add-newlines t) @@ -122,6 +128,27 @@ bidi-inhibit-bpa t) (which-key-mode t) +(which-key-enable-god-mode-support) + +(defun +custom-switch-god-mode () + "Switch god mode on and off." + (interactive) + (if (bound-and-true-p god-local-mode-paused) + (god-local-mode-resume) + (god-local-mode-pause))) + +(god-mode) +(define-key +custom-keys-mode-map (kbd "C-c C-c") '+custom-switch-god-mode) +(define-key god-local-mode-map (kbd "i") '+custom-switch-god-mode) + +(defun +custom-update-cursor () + "Update cursor based on god mode setup." + (setq cursor-type (if (or god-local-mode buffer-read-only) + 'box + 'hbar))) + +(add-hook 'god-mode-enabled-hook '+custom-update-cursor) +(add-hook 'god-mode-disabled-hook '+custom-update-cursor) (provide '+custom-pkg-base) ;;; base.el ends here diff --git a/pkg/hydra.el b/pkg/hydra.el index bff2e6a..84922ca 100644 --- a/pkg/hydra.el +++ b/pkg/hydra.el @@ -188,13 +188,16 @@ ("q" nil "cancel")) :bind ("C-c p" . +hydra-project-menu/body) + ("C-c C-p" . +hydra-project-menu/body) ("C-c h" . +hydra-of-hydras/body) + ("C-c C-h" . +hydra-of-hydras/body) ("C-c c" . +hydra-code-menu/body) ("C-c w" . +hydra-window-menu/body) ("C-c s" . +hydra-history-menu/body) ("C-c f" . +hydra-font-menu/body) ("C-c m" . +hydra-move-menu/body) - ("C-c l" . +hydra-language-context-menu/body)) + ("C-c l" . +hydra-language-context-menu/body) + ("C-c C-l" . +hydra-language-context-menu/body)) (provide '+custom-pkg-hydra) ;;; hydra.el ends here diff --git a/pkg/keys-mode.el b/pkg/keys-mode.el index 4203fc6..781391c 100644 --- a/pkg/keys-mode.el +++ b/pkg/keys-mode.el @@ -33,6 +33,8 @@ (define-key +custom-keys-mode-map (kbd "C-c ]") 'windmove-right) (define-key +custom-keys-mode-map (kbd "C-c {") 'windmove-up) (define-key +custom-keys-mode-map (kbd "C-c }") 'windmove-down) +;; (define-key +custom-keys-mode-map (kbd "C-c C-c") 'switch-god-mode) +;; (god-local-mode-pause) ;; Kill current buffer and window (define-key +custom-keys-mode-map (kbd "C-c q") 'kill-buffer-and-window) diff --git a/straight/versions/default.el b/straight/versions/default.el index 726e3b2..f1037b6 100644 --- a/straight/versions/default.el +++ b/straight/versions/default.el @@ -6,7 +6,7 @@ ("bui.el" . "f3a137628e112a91910fd33c0cff0948fa58d470") ("caml-mode" . "204bfde9ad21cb94c273db8b0c12d31a4eb425e5") ("cfrs" . "f3a21f237b2a54e6b9f8a420a9da42b4f0a63121") - ("cider" . "86dd3fee9d9836dcd56f6abb91ba59b7aeedecb9") + ("cider" . "db972bbdfbe777272529ec848c9f1991ae94dbda") ("clj-refactor.el" . "f368c56c83843396b160440f472a661a3b639862") ("clojure-mode" . "c339353f9e649b3af084f1bb6ce759e614a2f243") ("column-enforce-mode" . "14a7622f2268890e33536ccd29510024d51ee96f") @@ -15,7 +15,7 @@ ("counsel-projectile" . "40d1e1d4bb70acb00fddd6f4df9778bf2c52734b") ("dap-mode" . "f918c0580bd17105cbe50aa701a2375abca5a6ab") ("dash-at-point" . "fba1a6f42ea51d05110e12c62bdced664059eb55") - ("dash.el" . "da167c51e9fd167a48d06c7c0ee8e3ac7abd9718") + ("dash.el" . "dc61f4641779616122692e34a32ba2a158ee034c") ("deft" . "28be94d89bff2e1c7edef7244d7c5ba0636b1296") ("diminish.el" . "6b7e837b0cf0129e9d7d6abae48093cf599bb9e8") ("dockerfile-mode" . "b63a3d12b7dea0cb9efc7f78d7ad5672ceab2a3f") @@ -24,7 +24,7 @@ ("el-get" . "9353309744e4f8a7c9b1adf22ec99536fb2146b0") ("elisp-refs" . "8f84280997d8b233d66fb9958a34b46078c58b03") ("emacs-ansible" . "d89ac0ee57742cca0f0e0a3453d9dcc521575690") - ("emacs-dashboard" . "99f6504850f47fc8b0cfbef5f0721a6442719f2a") + ("emacs-dashboard" . "3979b13156b16c25ea25e2865448f7c0601eca6e") ("emacs-elixir" . "e0d0466d83ec80ddb412bb1473908a21baad1ec3") ("emacs-fsharp-mode" . "b3aa4c53fc9e98648b25ad036e657632ae2fe192") ("emacs-gradle-mode" . "e4d665d5784ecda7ddfba015f07c69be3cfc45f2") @@ -34,8 +34,8 @@ ("emacsmirror-mirror" . "d733ec0b70803781280e12f7a683ce8850c23e78") ("enhanced-ruby-mode" . "e960bf941d9fa9d92eabf7c03a8bbb51ba1ac453") ("epl" . "78ab7a85c08222cd15582a298a364774e3282ce6") - ("exec-path-from-shell" . "3a8d97c096c2c5714b667130fd8a80d5622ee067") - ("f.el" . "50af874cd19042f17c8686813d52569b1025c76a") + ("exec-path-from-shell" . "6336db9be13d46e2d4bc3b50bc37a3fbf30fdc9e") + ("f.el" . "b5cb884b3b4372a6f3d1d4428cf092ca1e5c8044") ("flycheck" . "55f25fd98abc145c0c464756504132c271f0f039") ("flycheck-rust" . "a139cd53c5062697e9ed94ad80b803c37d999600") ("flyspell-correct" . "e8027a412262bc04056a5b5440efdb7f370c3320") @@ -43,9 +43,9 @@ ("git-modes" . "bb71cb2226a1cf105c329f3186bfcb5bb37e2f2d") ("gleam-mode" . "a0b76a64f6c062a8fe0c0541e788de8470828fd2") ("gnu-elpa-mirror" . "bc03f8141c285538418daeff450f67d90ead2403") - ("go-mode.el" . "3273fcece5d9ab7edd4f15b2d6bce61f4e5a0666") + ("go-mode.el" . "fa2693278637f56759480d2bf203bb8aad107230") ("groovy-emacs-modes" . "bf732d367b16887f81d404481c11ed1a58671d4e") - ("haskell-mode" . "cb573c8db5b856eb37473009f2c62e0717a1cd02") + ("haskell-mode" . "4ec2aa32b1772e629a6a2b47b84048e1990d6728") ("helpful" . "67cdd1030b3022d3dc4da2297f55349da57cde01") ("ht.el" . "c4c1be487d6ecb353d07881526db05d7fc90ea87") ("hydra" . "9e9e00cb240ea1903ffd36a54956b3902c379d29") @@ -56,29 +56,29 @@ ("kotlin-mode" . "3e0c34087ba4965a8bf08d3f27325f0a1e631bfb") ("let-alist" . "592553db5929b54db40af0df90c5add0aaca045b") ("lsp-haskell" . "7cf64944ab3a25ea5d6f8d5e0cd33124182df991") - ("lsp-mode" . "017529b420d6382990885d8e2bc88720795090a7") + ("lsp-mode" . "fe80b9c9ccde2f9a74f2141659e61b2a91873f88") ("lsp-treemacs" . "355e468b7fa9887c616a8bfe873d8e456303b67b") ("lsp-ui" . "96b1ecbfbf87a775f05b5f0b55253376a3bd61e7") ("macrostep" . "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267") ("magit" . "6a5c79fd1b19c5f64b2fdfc04112359954d06c1d") ("map" . "3d80a6d7cdc7d9e5760290fa95db4da992612837") - ("markdown-mode" . "521658eb32e456681592443e04ae507c3a59ed07") - ("melpa" . "780e7b4449c54f6ff5716b4953c85accfb7f0ebd") - ("merlin" . "5d59c7065938ea9c9b52f368b97a50bc8bf6d65b") + ("markdown-mode" . "cf6b7e1c713f1dfd18340253d218cb006720dd91") + ("melpa" . "7d14ddda9729eec229a72a8827d0f0a5be779db7") + ("merlin" . "03563cda8e66f85c67eeb0555c47ab12eaba50ed") ("mmm-mode" . "0d00cdf4d02cc166304f6967a20fa22e2eaf208b") ("multiple-cursors.el" . "aae47aebc0ae829211fa1e923232715d8e327b36") ("nginx-mode" . "6e9d96f58eddd69f62f7fd443d9b9753e16e0e96") - ("otp" . "f9c7f02e774639b95f47a99f8d539f83d13a94c7") + ("otp" . "f2fdd49eb757fdd4e156b4d908c6d4ccb1907489") ("paredit" . "8330a41e8188fe18d3fa805bb9aa529f015318e8") ("parseclj" . "a8c4cf30fb68b66ae51541462a8b21753229a6e5") - ("parseedn" . "e70ca8d03a314f97e4f49b7d6098fa565742e217") + ("parseedn" . "a67204eeaa32ca8f11f6aeecc2a88349f196add6") ("pfuture" . "bde5b06795e3e35bfb2bba4c34b538d506a0856e") ("php-mode" . "5f26bec865ee159dc30d3922f17bc42adfcfed50") ("pkg-info" . "76ba7415480687d05a4353b27fea2ae02b8d9d61") ("pos-tip" . "179cc126b363f72ca12fab1e0dc462ce0ee79742") ("posframe" . "c91d4d53fa479ceb604071008ce0a901770eff57") ("projectile" . "defce6e6bb504bdfab1e091550e2f709310327b9") - ("purescript-mode" . "0acd1af446424ba855153161fe07a20f67dc0a89") + ("purescript-mode" . "9c37067e611b5253a095f03245c247aa97bd7614") ("queue" . "130c2d656cd5d7376552272fab9e50a7c37d0c4a") ("rainbow-delimiters" . "a32b39bdfe6c61c322c37226d66e1b6d4f107ed0") ("rainbow-mode" . "949166cc0146bc9fabf74ce70c1c4a097f4cffd4") @@ -97,7 +97,7 @@ ("spinner" . "34905eae12a236753fa88abc831eff1e41e8576e") ("ssass-mode" . "96f557887ad97a0066a60c54f92b7234b8407016") ("straight.el" . "af5437f2afd00936c883124d6d3098721c2d306c") - ("swiper" . "40e017dc1bc4655f7c3cf4bbbe3a827ce2fff213") + ("swiper" . "764e0d35ba63adb893743f27a979144477d9bfb9") ("terraform-mode" . "e560caaa9d9a11b0868adf6d9dcae5ebb5055730") ("transient" . "d02458186344ee6eddc718740d0b225f8fb1ca6b") ("treemacs" . "b18a05b1f62074a40e6011d83cd4c92cbee040dd")