diff --git a/.emacs b/.emacs index 9ad9656..17036af 100755 --- a/.emacs +++ b/.emacs @@ -78,7 +78,8 @@ (dolist (char-regexp alist) (set-char-table-range composition-function-table (car char-regexp) `([,(cdr char-regexp) 0 font-shape-gstring])))) - +(window-divider-mode t) +(set-fringe-mode '(1 . 1)) (scroll-bar-mode -1) (tool-bar-mode -1) (menu-bar-mode -1) @@ -144,6 +145,8 @@ and position the cursor inside the comment. Additionally insert the word under t (insert " */") (end-of-line 0)))) +(global-set-key (kbd "C-M-z") 'doc-comment) + (defun markdown-convert-buffer-to-org () "Convert the current buffer's content from markdown to orgmode format and save it with the current buffer's file name but with .org extension." (interactive) @@ -166,6 +169,30 @@ and position the cursor inside the comment. Additionally insert the word under t (global-set-key (kbd "M-i") 'xref-find-definitions) (global-set-key (kbd "C-M-i") 'xref-pop-marker-stack) + (evil-define-operator wrap-with-parens (beg end) + (goto-char beg) + (insert "(") + (goto-char (1+ end)) + (insert ")")) + (evil-define-key 'visual global-map + (kbd "(") 'wrap-with-parens) + + (evil-define-operator wrap-with-braces (beg end) + (goto-char beg) + (insert "{") + (goto-char (1+ end)) + (insert "}")) + (evil-define-key 'visual global-map + (kbd "{") 'wrap-with-braces) + + (evil-define-operator wrap-with-quotes (beg end) + (goto-char beg) + (insert "\"") + (goto-char (1+ end)) + (insert "\"")) + (evil-define-key 'visual global-map + (kbd "\"") 'wrap-with-quotes) + ;; :q should kill the current buffer rather than quitting emacs entirely (evil-ex-define-cmd "q" 'kill-this-buffer) ;; Need to type out :quit to close emacs @@ -181,10 +208,8 @@ and position the cursor inside the comment. Additionally insert the word under t (define-key evil-normal-state-map (kbd "C-x l") 'list-buffers) (define-key evil-normal-state-map (kbd "C-.") 'move-to-next-window) (define-key evil-normal-state-map (kbd "C-M-p") 'compile) - (define-key evil-normal-state-map (kbd "C-M-k") 'compile) (define-key evil-normal-state-map (kbd "M-/") 'dabbrev-expand) (define-key evil-normal-state-map (kbd "C-M-\\") 'format-all-buffer) - ;; (evil-define-key 'normal Buffer-menu-mode-map (kbd "RET") ) (evil-define-key 'normal neotree-mode-map (kbd "TAB") 'neotree-enter) (evil-define-key 'normal neotree-mode-map (kbd "SPC") 'neotree-quick-look) (evil-define-key 'normal neotree-mode-map (kbd "q") 'neotree-hide) @@ -209,10 +234,12 @@ and position the cursor inside the comment. Additionally insert the word under t (use-package doom-themes :ensure t :config + (add-to-list 'custom-theme-load-path "~/.emacs.d/themes") ;; Global settings (defaults) (setq doom-themes-enable-bold t ; if nil, bold is universally disabled doom-themes-enable-italic t) ; if nil, italics is universally disabled - (load-theme 'doom-monokai-classic t) + ;; (load-theme 'doom-monokai-classic t) + (load-theme 'mazarbul t) ;; Enable custom neotree theme (all-the-icons must be installed!) (doom-themes-neotree-config) ;; Corrects (and improves) org-mode's native fontification. @@ -231,6 +258,157 @@ and position the cursor inside the comment. Additionally insert the word under t :ensure t :init (doom-modeline-mode 1)) +(use-package undo-tree + :config (global-undo-tree-mode 1)) + +(use-package format-all + :hook ((format-all-mode-hook . format-all-ensure-formatter))) + +(use-package rainbow-delimiters + :hook ((prog-mode-hook . rainbow-delimiters-mode))) + +(use-package dumb-jump + :hook ((xref-backend-functions . dumb-jump-xref-activate))) + +(use-package elfeed + :config + (global-set-key (kbd "C-x w") 'elfeed) + (setq elfeed-feeds + '(("https://programming.dev/feeds/c/rust.xml?sort=Active" programming) + ("https://programming.dev/feeds/c/gamedev.xml?sort=Active" programming) + ("https://hexbear.net/feeds/c/programming.xml?sort=Active" programming) + ("https://programming.dev/feeds/c/golang.xml?sort=Active" programming) + ("https://programming.dev/feeds/c/programming.xml?sort=Active" programming) + ("https://xkcd.com/atom.xml" webcomic) + ("https://www.existentialcomics.com/rss.xml" webcomic) + ("https://hackaday.com/blog/feed/" hack) + ("https://itsfoss.com/feed/" linux) + ("https://lemmy.ml/feeds/c/linux.xml?sort=Active" linux os) + ("https://lemmy.ml/feeds/c/raspberrypi.xml?sort=Active" os) + ("http://git.9front.org/plan9front/plan9front/HEAD/feed.rss" os plan9) + ("https://lemmy.ml/feeds/c/opensource.xml?sort=Active" os) + ("https://lemmy.ml/feeds/c/linux_gaming.xml?sort=Active" games linux) + ("https://steamcommunity.com/groups/GrabFreeGames/rss/" games) + ("https://hexbear.net/feeds/c/news.xml?sort=Active" news) + ("https://feeds.npr.org/1001/rss.xml" news) + ("https://www.scmp.com/rss/91/feed" news) + ("https://www.currentaffairs.org/feed" news) + ("https://itsgoingdown.org/feed" news) + ("http://feeds.ancientfaith.com/AmonSul" podcast) + ("https://feeds.transistor.fm/the-magnificast" podcast) + ("https://anchor.fm/s/c38df04/podcast/rss" podcast) + ("https://yogpod.libsyn.com/rss" podcast) + ("https://revolutionspodcast.libsyn.com/rss" podcast) + ("https://feeds.acast.com/public/shows/5e7b777ba085cbe7192b0607" podcast) + ("https://www.omnycontent.com/d/playlist/aaea4e69-af51-495e-afc9-a9760146922b/48da3539-5da0-41ed-a1c3-aac50170b88f/f7810480-e2d3-4be5-a559-aac50170b8a6/podcast.rss" podcast) + ("https://feeds.soundcloud.com/users/soundcloud:users:672423809/sounds.rss" podcast) + ("https://www.omnycontent.com/d/playlist/aaea4e69-af51-495e-afc9-a9760146922b/4a3ca742-9a68-4850-a727-ab790176c0e9/d04153b0-fc4c-4191-ab18-ab790179c563/podcast.rss" podcast) + ("https://feeds.soundcloud.com/users/soundcloud:users:211911700/sounds.rss" podcast) + ("https://access.acast.com/rss/5fd1001d81367d4cb41fe325/Q6BVQ6VF" podcast) + ("https://feeds.npr.org/344098539/podcast.xml" podcast)))) + +(use-package projectile + :ensure t + :init + (projectile-mode +1) + :bind (:map projectile-mode-map + ("s-p" . projectile-command-map) + ("C-c p" . projectile-command-map))) + +(use-package ivy + :init (ivy-mode 1)) + +(use-package counsel + :bind (("C-M-j" . 'counsel-switch-buffer) + :map minibuffer-local-map + ("C-r" . 'counsel-minibuffer-history)) + :custom + (counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only) + :config + (counsel-mode 1)) + +(use-package ivy-rich + :init + (ivy-rich-mode 1)) + +(use-package centaur-tabs + :init + (setq centaur-tabs-enable-key-bindings t) + :config + (setq centaur-tabs-style "bar" + centaur-tabs-height 32 + centaur-tabs-set-icons t + centaur-tabs-show-new-tab-button t + centaur-tabs-set-modified-marker t + centaur-tabs-show-navigation-buttons t + centaur-tabs-set-bar 'under + centaur-tabs-show-count nil + ;; centaur-tabs-label-fixed-length 15 + ;; centaur-tabs-gray-out-icons 'buffer + ;; centaur-tabs-plain-icons t + x-underline-at-descent-line t + centaur-tabs-left-edge-margin nil) + (centaur-tabs-change-fonts (face-attribute 'default :font) 110) + (centaur-tabs-headline-match) + ;; (centaur-tabs-enable-buffer-alphabetical-reordering) + ;; (setq centaur-tabs-adjust-buffer-order t) + (centaur-tabs-mode t) + (setq uniquify-separator "/") + (setq uniquify-buffer-name-style 'forward) + (defun centaur-tabs-buffer-groups () + "`centaur-tabs-buffer-groups' control buffers' group rules. + +Group centaur-tabs with mode if buffer is derived from `eshell-mode' `emacs-lisp-mode' `dired-mode' `org-mode' `magit-mode'. +All buffer name start with * will group to \"Emacs\". +Other buffer group by `centaur-tabs-get-group-name' with project name." + (list + (cond + ;; ((not (eq (file-remote-p (buffer-file-name)) nil)) + ;; "Remote") + ((or (string-equal "*" (substring (buffer-name) 0 1)) + (memq major-mode '(magit-process-mode + magit-status-mode + magit-diff-mode + magit-log-mode + magit-file-mode + magit-blob-mode + magit-blame-mode + ))) + "Emacs") + ((derived-mode-p 'prog-mode) + "Editing") + ((derived-mode-p 'dired-mode) + "Dired") + ((memq major-mode '(helpful-mode + help-mode)) + "Help") + ((memq major-mode '(org-mode + org-agenda-clockreport-mode + org-src-mode + org-agenda-mode + org-beamer-mode + org-indent-mode + org-bullets-mode + org-cdlatex-mode + org-agenda-log-mode + diary-mode)) + "OrgMode") + (t + (centaur-tabs-get-group-name (current-buffer)))))) + :hook + (dashboard-mode . centaur-tabs-local-mode) + (term-mode . centaur-tabs-local-mode) + (calendar-mode . centaur-tabs-local-mode) + (org-agenda-mode . centaur-tabs-local-mode) + :bind + ("C-" . centaur-tabs-backward) + ("C-" . centaur-tabs-forward) + ("C-S-" . centaur-tabs-move-current-tab-to-left) + ("C-S-" . centaur-tabs-move-current-tab-to-right) + (:map evil-normal-state-map + ("g t" . centaur-tabs-forward) + ("g T" . centaur-tabs-backward))) + (use-package treemacs :ensure t :defer t @@ -346,157 +524,6 @@ and position the cursor inside the comment. Additionally insert the word under t :ensure t :config (treemacs-set-scope-type 'Tabs)) -(use-package centaur-tabs - :init - (setq centaur-tabs-enable-key-bindings t) - :config - (setq centaur-tabs-style "bar" - centaur-tabs-height 32 - centaur-tabs-set-icons t - centaur-tabs-show-new-tab-button t - centaur-tabs-set-modified-marker t - centaur-tabs-show-navigation-buttons t - centaur-tabs-set-bar 'under - centaur-tabs-show-count nil - ;; centaur-tabs-label-fixed-length 15 - ;; centaur-tabs-gray-out-icons 'buffer - ;; centaur-tabs-plain-icons t - x-underline-at-descent-line t - centaur-tabs-left-edge-margin nil) - (centaur-tabs-change-fonts (face-attribute 'default :font) 110) - (centaur-tabs-headline-match) - ;; (centaur-tabs-enable-buffer-alphabetical-reordering) - ;; (setq centaur-tabs-adjust-buffer-order t) - (centaur-tabs-mode t) - (setq uniquify-separator "/") - (setq uniquify-buffer-name-style 'forward) - (defun centaur-tabs-buffer-groups () - "`centaur-tabs-buffer-groups' control buffers' group rules. - -Group centaur-tabs with mode if buffer is derived from `eshell-mode' `emacs-lisp-mode' `dired-mode' `org-mode' `magit-mode'. -All buffer name start with * will group to \"Emacs\". -Other buffer group by `centaur-tabs-get-group-name' with project name." - (list - (cond - ;; ((not (eq (file-remote-p (buffer-file-name)) nil)) - ;; "Remote") - ((or (string-equal "*" (substring (buffer-name) 0 1)) - (memq major-mode '(magit-process-mode - magit-status-mode - magit-diff-mode - magit-log-mode - magit-file-mode - magit-blob-mode - magit-blame-mode - ))) - "Emacs") - ((derived-mode-p 'prog-mode) - "Editing") - ((derived-mode-p 'dired-mode) - "Dired") - ((memq major-mode '(helpful-mode - help-mode)) - "Help") - ((memq major-mode '(org-mode - org-agenda-clockreport-mode - org-src-mode - org-agenda-mode - org-beamer-mode - org-indent-mode - org-bullets-mode - org-cdlatex-mode - org-agenda-log-mode - diary-mode)) - "OrgMode") - (t - (centaur-tabs-get-group-name (current-buffer)))))) - :hook - (dashboard-mode . centaur-tabs-local-mode) - (term-mode . centaur-tabs-local-mode) - (calendar-mode . centaur-tabs-local-mode) - (org-agenda-mode . centaur-tabs-local-mode) - :bind - ("C-" . centaur-tabs-backward) - ("C-" . centaur-tabs-forward) - ("C-S-" . centaur-tabs-move-current-tab-to-left) - ("C-S-" . centaur-tabs-move-current-tab-to-right) - (:map evil-normal-state-map - ("g t" . centaur-tabs-forward) - ("g T" . centaur-tabs-backward))) - -(use-package undo-tree - :config (global-undo-tree-mode 1)) - -(use-package format-all - :hook ((format-all-mode-hook . format-all-ensure-formatter))) - -(use-package rainbow-delimiters - :hook ((prog-mode-hook . rainbow-delimiters-mode))) - -(use-package dumb-jump - :hook ((xref-backend-functions . dumb-jump-xref-activate))) - -(use-package elfeed - :config - (global-set-key (kbd "C-x w") 'elfeed) - (setq elfeed-feeds - '(("https://programming.dev/feeds/c/rust.xml?sort=Active" programming) - ("https://programming.dev/feeds/c/gamedev.xml?sort=Active" programming) - ("https://hexbear.net/feeds/c/programming.xml?sort=Active" programming) - ("https://programming.dev/feeds/c/golang.xml?sort=Active" programming) - ("https://programming.dev/feeds/c/programming.xml?sort=Active" programming) - ("https://xkcd.com/atom.xml" webcomic) - ("https://www.existentialcomics.com/rss.xml" webcomic) - ("https://hackaday.com/blog/feed/" hack) - ("https://itsfoss.com/feed/" linux) - ("https://lemmy.ml/feeds/c/linux.xml?sort=Active" linux os) - ("https://lemmy.ml/feeds/c/raspberrypi.xml?sort=Active" os) - ("http://git.9front.org/plan9front/plan9front/HEAD/feed.rss" os plan9) - ("https://lemmy.ml/feeds/c/opensource.xml?sort=Active" os) - ("https://lemmy.ml/feeds/c/linux_gaming.xml?sort=Active" games linux) - ("https://steamcommunity.com/groups/GrabFreeGames/rss/" games) - ("https://hexbear.net/feeds/c/news.xml?sort=Active" news) - ("https://feeds.npr.org/1001/rss.xml" news) - ("https://www.scmp.com/rss/91/feed" news) - ("https://www.currentaffairs.org/feed" news) - ("https://itsgoingdown.org/feed" news) - ("http://feeds.ancientfaith.com/AmonSul" podcast) - ("https://feeds.transistor.fm/the-magnificast" podcast) - ("https://anchor.fm/s/c38df04/podcast/rss" podcast) - ("https://yogpod.libsyn.com/rss" podcast) - ("https://revolutionspodcast.libsyn.com/rss" podcast) - ("https://feeds.acast.com/public/shows/5e7b777ba085cbe7192b0607" podcast) - ("https://www.omnycontent.com/d/playlist/aaea4e69-af51-495e-afc9-a9760146922b/48da3539-5da0-41ed-a1c3-aac50170b88f/f7810480-e2d3-4be5-a559-aac50170b8a6/podcast.rss" podcast) - ("https://feeds.soundcloud.com/users/soundcloud:users:672423809/sounds.rss" podcast) - ("https://www.omnycontent.com/d/playlist/aaea4e69-af51-495e-afc9-a9760146922b/4a3ca742-9a68-4850-a727-ab790176c0e9/d04153b0-fc4c-4191-ab18-ab790179c563/podcast.rss" podcast) - ("https://feeds.soundcloud.com/users/soundcloud:users:211911700/sounds.rss" podcast) - ("https://access.acast.com/rss/5fd1001d81367d4cb41fe325/Q6BVQ6VF" podcast) - ("https://feeds.npr.org/344098539/podcast.xml" podcast)))) - -(use-package projectile - :ensure t - :init - (projectile-mode +1) - :bind (:map projectile-mode-map - ("s-p" . projectile-command-map) - ("C-c p" . projectile-command-map))) - -(use-package ivy - :init (ivy-mode 1)) - -(use-package counsel - :bind (("C-M-j" . 'counsel-switch-buffer) - :map minibuffer-local-map - ("C-r" . 'counsel-minibuffer-history)) - :custom - (counsel-linux-app-format-function #'counsel-linux-app-format-function-name-only) - :config - (counsel-mode 1)) - -(use-package ivy-rich - :init - (ivy-rich-mode 1)) - (use-package org-modern :config (setq @@ -559,46 +586,20 @@ Other buffer group by `centaur-tabs-get-group-name' with project name." org-roam-ui-update-on-save t org-roam-ui-open-on-start t)) -(use-package verb - :init - (with-eval-after-load 'org - (define-key org-mode-map (kbd "C-c C-r") verb-command-map))) - -(use-package restclient) -;; (use-package markdown-mode -;; :ensure t -;; :mode ("README\\.md\\'" . gfm-mode) -;; :init (setq markdown-command "multimarkdown")) - ;; (use-package docker ;; :ensure t ;; :bind ("C-c d" . docker)) ;; (use-package docker-compose-mode) -(use-package web-mode - :config - (add-to-list 'auto-mode-alist '("\\.jsx?$" . web-mode)) - (setq web-mode-content-types-alist '(("jsx" . "\\.js[x]?\\'")))) - -;; (use-package typescript-mode) -;; (use-package tide -;; :ensure t -;; :after (typescript-mode company flycheck) -;; :hook ((typescript-mode . tide-setup) -;; (typescript-mode . tide-hl-identifier-mode) -;; (before-save . tide-format-before-save))) - (use-package uxntal-mode :bind ("C-M-u" . uxntal-compile-and-run)) -;(use-package hy-mode) (use-package lua-mode) -;(use-package elm-mode) (use-package go-mode) -;(use-package rust-mode) -;(use-package cargo) -(use-package gdscript-mode - :hook (gdscript-mode . eglot-ensure)) +;;(use-package rust-mode) +;;(use-package cargo) +;;(use-package gdscript-mode +;; :hook (gdscript-mode . eglot-ensure)) (use-package ccls :ensure t @@ -611,8 +612,8 @@ Other buffer group by `centaur-tabs-get-group-name' with project name." ;; :hook ;; (elixir-mode . inf-elixir-minor-mode)) -(use-package inf-elixir - :ensure t) +;;(use-package inf-elixir +;; :ensure t) (use-package lsp-mode :commands (lsp lsp-deferred) @@ -620,11 +621,11 @@ Other buffer group by `centaur-tabs-get-group-name' with project name." :diminish lsp-mode :init (setq lsp-keymap-prefix "C-c l") - ;; (add-to-list 'exec-path "/home/zongor/lib/elixir-ls") +;;(add-to-list 'exec-path "/home/zongor/lib/elixir-ls") :hook ( - ;; (elixir-mode . lsp) - ;(rust-mode . lsp) +;; (elixir-mode . lsp) +;;(rust-mode . lsp) (go-mode . lsp))) (use-package lsp-ui @@ -632,10 +633,14 @@ Other buffer group by `centaur-tabs-get-group-name' with project name." :config (setq lsp-ui-doc-enable t)) -;(use-package sly -; :ensure t -; :config -; (setq inferior-lisp-program "sbcl")) +(use-package ztl-mode + :straight + (:host nil :repo "https://git.alfrescocavern.com/zongor/ztl-mode.git" :branch "main")) + +;;(use-package sly +;; :ensure t +;; :config +;; (setq inferior-lisp-program "sbcl")) ;; (use-package elpy ;; :ensure t @@ -647,15 +652,21 @@ Other buffer group by `centaur-tabs-get-group-name' with project name." (use-package dash) (use-package desktop) -;; (use-package column-enforce-mode) -;; (use-package magit) -;; (use-package magit-lfs -;; :ensure t -;; :pin melpa) -;; (use-package forge -;; :after magit) -;; (use-package ripgrep) (use-package git-gutter :ensure t :init (global-git-gutter-mode t)) + +(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. + '(inhibit-startup-screen t) + '(neo-theme 'icons)) +(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. + )