From 24d307ae8e05c80f88082f6ccbc19cf5895063a7 Mon Sep 17 00:00:00 2001 From: Chad Nelson Date: Thu, 20 Feb 2025 10:39:15 -0700 Subject: [PATCH] first commit --- .gitignore | 11 ++++ early-init.el | 1 + init.el | 32 +++++++++++ src/modules/built-in/eglot.el | 4 ++ src/modules/built-in/eglot.org | 6 ++ src/modules/built-in/emacs.el | 56 +++++++++++++++++++ src/modules/built-in/emacs.org | 58 ++++++++++++++++++++ src/modules/built-in/hyperbole.el | 5 ++ src/modules/built-in/hyperbole.org | 8 +++ src/modules/built-in/org.el | 34 ++++++++++++ src/modules/built-in/org.org | 45 +++++++++++++++ src/modules/built-in/tree-sitter.el | 6 ++ src/modules/built-in/tree-sitter.org | 8 +++ src/modules/completion/company.el | 5 ++ src/modules/completion/company.org | 7 +++ src/modules/completion/orderless.el | 6 ++ src/modules/completion/orderless.org | 8 +++ src/modules/completion/vertico.el | 4 ++ src/modules/completion/vertico.org | 6 ++ src/modules/interface/dashboard.el | 5 ++ src/modules/interface/dashboard.org | 7 +++ src/modules/interface/dired-sidebar.el | 5 ++ src/modules/interface/dired-sidebar.org | 7 +++ src/modules/interface/doom-modeline.el | 3 + src/modules/interface/doom-modeline.org | 5 ++ src/modules/interface/doom-themes.el | 12 ++++ src/modules/interface/doom-themes.org | 14 +++++ src/modules/interface/emojify.el | 3 + src/modules/interface/emojify.org | 5 ++ src/modules/interface/nerd-icons.el | 2 + src/modules/interface/nerd-icons.org | 5 ++ src/modules/interface/powerline.el | 54 ++++++++++++++++++ src/modules/interface/powerline.org | 56 +++++++++++++++++++ src/modules/interface/ultra-scroll.el | 9 +++ src/modules/interface/ultra-scroll.org | 11 ++++ src/modules/languages/guile.el | 11 ++++ src/modules/languages/guile.org | 17 ++++++ src/modules/languages/markdown.el | 4 ++ src/modules/languages/markdown.org | 6 ++ src/modules/languages/php.el | 10 ++++ src/modules/languages/php.org | 14 +++++ src/modules/languages/yaml.el | 10 ++++ src/modules/languages/yaml.org | 16 ++++++ src/modules/utility/exec-path-from-shell.el | 5 ++ src/modules/utility/exec-path-from-shell.org | 7 +++ src/modules/utility/magit.el | 2 + src/modules/utility/magit.org | 4 ++ src/modules/utility/vterm.el | 40 ++++++++++++++ src/modules/utility/vterm.org | 46 ++++++++++++++++ 49 files changed, 705 insertions(+) create mode 100644 .gitignore create mode 100644 early-init.el create mode 100644 init.el create mode 100644 src/modules/built-in/eglot.el create mode 100644 src/modules/built-in/eglot.org create mode 100644 src/modules/built-in/emacs.el create mode 100644 src/modules/built-in/emacs.org create mode 100644 src/modules/built-in/hyperbole.el create mode 100644 src/modules/built-in/hyperbole.org create mode 100644 src/modules/built-in/org.el create mode 100644 src/modules/built-in/org.org create mode 100644 src/modules/built-in/tree-sitter.el create mode 100644 src/modules/built-in/tree-sitter.org create mode 100644 src/modules/completion/company.el create mode 100644 src/modules/completion/company.org create mode 100644 src/modules/completion/orderless.el create mode 100644 src/modules/completion/orderless.org create mode 100644 src/modules/completion/vertico.el create mode 100644 src/modules/completion/vertico.org create mode 100644 src/modules/interface/dashboard.el create mode 100644 src/modules/interface/dashboard.org create mode 100644 src/modules/interface/dired-sidebar.el create mode 100644 src/modules/interface/dired-sidebar.org create mode 100644 src/modules/interface/doom-modeline.el create mode 100644 src/modules/interface/doom-modeline.org create mode 100644 src/modules/interface/doom-themes.el create mode 100644 src/modules/interface/doom-themes.org create mode 100644 src/modules/interface/emojify.el create mode 100644 src/modules/interface/emojify.org create mode 100644 src/modules/interface/nerd-icons.el create mode 100644 src/modules/interface/nerd-icons.org create mode 100644 src/modules/interface/powerline.el create mode 100644 src/modules/interface/powerline.org create mode 100644 src/modules/interface/ultra-scroll.el create mode 100644 src/modules/interface/ultra-scroll.org create mode 100644 src/modules/languages/guile.el create mode 100644 src/modules/languages/guile.org create mode 100644 src/modules/languages/markdown.el create mode 100644 src/modules/languages/markdown.org create mode 100644 src/modules/languages/php.el create mode 100644 src/modules/languages/php.org create mode 100644 src/modules/languages/yaml.el create mode 100644 src/modules/languages/yaml.org create mode 100644 src/modules/utility/exec-path-from-shell.el create mode 100644 src/modules/utility/exec-path-from-shell.org create mode 100644 src/modules/utility/magit.el create mode 100644 src/modules/utility/magit.org create mode 100644 src/modules/utility/vterm.el create mode 100644 src/modules/utility/vterm.org diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..483fc56 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +.DS_Store +auto-save-list +eln-cache +elpa +emacs-backup +emojis +history +projects +recentf +transient +tree-sitter \ No newline at end of file diff --git a/early-init.el b/early-init.el new file mode 100644 index 0000000..7e066ad --- /dev/null +++ b/early-init.el @@ -0,0 +1 @@ +(setenv "LIBRARY_PATH" "/opt/homebrew/opt/gcc/lib/gcc/14:/opt/homebrew/opt/libgccjit/lib/gcc/14:/opt/homebrew/opt/gcc/lib/gcc/14/gcc/aarch64-apple-darwin24/14") diff --git a/init.el b/init.el new file mode 100644 index 0000000..fbd7650 --- /dev/null +++ b/init.el @@ -0,0 +1,32 @@ +(require 'package) +(setq package-enable-at-startup nil) +(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) +(global-tab-line-mode t) +(mapc #'org-babel-load-file (directory-files-recursively "~/.config/emacs/src/modules" "\\.org$")) +(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-fold-core-style 'overlays) + '(org-safe-remote-resources + '("\\`https://fniessen\\.github\\.io/org-html-themes/org/theme-readtheorg\\.setup\\'")) + '(package-selected-packages nil) + '(package-vc-selected-packages + '((ultra-scroll :url "https://github.com/jdtsmith/ultra-scroll"))) + '(safe-local-variable-values + '((org-global-properties + (header-args + . ":tangle yes\12 :results none\12 :noweb yes")) + (eval add-hook 'after-save-hook + (lambda nil + (org-babel-with-temp-filebuffer + (concat (vc-root-dir) "publish.org") + (org-sbe "publish-project"))) + nil t)))) +(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/src/modules/built-in/eglot.el b/src/modules/built-in/eglot.el new file mode 100644 index 0000000..11f3152 --- /dev/null +++ b/src/modules/built-in/eglot.el @@ -0,0 +1,4 @@ +(use-package eglot + :config + (add-to-list 'eglot-server-programs + '(php-ts-mode . ("phpactor" "language-server")))) diff --git a/src/modules/built-in/eglot.org b/src/modules/built-in/eglot.org new file mode 100644 index 0000000..857b49a --- /dev/null +++ b/src/modules/built-in/eglot.org @@ -0,0 +1,6 @@ +#+begin_src elisp + (use-package eglot + :config + (add-to-list 'eglot-server-programs + '(php-ts-mode . ("phpactor" "language-server")))) +#+end_src diff --git a/src/modules/built-in/emacs.el b/src/modules/built-in/emacs.el new file mode 100644 index 0000000..ada9cfc --- /dev/null +++ b/src/modules/built-in/emacs.el @@ -0,0 +1,56 @@ +(use-package emacs + :bind + (("C-c f f" . toggle-frame-fullscreen)) + :config + ;; Disable tool-bar + (tool-bar-mode -1) + + ;; Enable horizontal mouse scroll + (setq mouse-wheel-tilt-scroll t) + + ;; Enable electric indent mode + (electric-pair-mode t) + + ;; Switch meta command key + (setq mac-command-modifier 'meta) + + ;; Enable which-key + (which-key-mode) + + ;; Enable completion preview + ;;(global-completion-preview-mode) + + ;; Set font + (set-face-attribute 'default t :font "JetBrains Mono" :height 120) + + ;; Fontify code blocks in markdown mode + ;;(setq markdown-fontify-code-blocks-natively t) + + ;; Enable SPC option in minibuffer + ;;(define-key minibuffer-local-completion-map (kbd "SPC") 'self-insert-command) + + ;; Disable native comp warnings + (setq native-comp-async-report-warnings-errors 'silent) + + ;; Save history of minibuffer + (savehist-mode) + + ;; Set cursor type + (setq-default cursor-type 'bar) + + ;; Automatically reread from disk if the underlying file changes + (setq auto-revert-interval 1) + (setq auto-revert-check-vc-info t) + (global-auto-revert-mode) + + ;; Don't litter file system with *~ backup files; put them all inside + (defun my--backup-file-name (fpath) + "Return a new file path of a given file path. If the new path's directories does not exist, create them." + (let* ((backupRootDir "~/.config/emacs/emacs-backup/") + (filePath (replace-regexp-in-string "[A-Za-z]:" "" fpath )) ; remove Windows driver letter in path + (backupFilePath (replace-regexp-in-string "//" "/" (concat backupRootDir filePath "~") ))) + (make-directory (file-name-directory backupFilePath) (file-name-directory backupFilePath)) + backupFilePath)) + (setq make-backup-file-name-function 'my--backup-file-name) + + ) diff --git a/src/modules/built-in/emacs.org b/src/modules/built-in/emacs.org new file mode 100644 index 0000000..2f17602 --- /dev/null +++ b/src/modules/built-in/emacs.org @@ -0,0 +1,58 @@ +#+begin_src elisp +(use-package emacs + :bind + (("C-c f f" . toggle-frame-fullscreen)) + :config + ;; Disable tool-bar + (tool-bar-mode -1) + + ;; Enable horizontal mouse scroll + (setq mouse-wheel-tilt-scroll t) + + ;; Enable electric indent mode + (electric-pair-mode t) + + ;; Switch meta command key + (setq mac-command-modifier 'meta) + + ;; Enable which-key + (which-key-mode) + + ;; Enable completion preview + ;;(global-completion-preview-mode) + + ;; Set font + (set-face-attribute 'default t :font "JetBrains Mono" :height 120) + + ;; Fontify code blocks in markdown mode + ;;(setq markdown-fontify-code-blocks-natively t) + + ;; Enable SPC option in minibuffer + ;;(define-key minibuffer-local-completion-map (kbd "SPC") 'self-insert-command) + + ;; Disable native comp warnings + (setq native-comp-async-report-warnings-errors 'silent) + + ;; Save history of minibuffer + (savehist-mode) + + ;; Set cursor type + (setq-default cursor-type 'bar) + + ;; Automatically reread from disk if the underlying file changes + (setq auto-revert-interval 1) + (setq auto-revert-check-vc-info t) + (global-auto-revert-mode) + + ;; Don't litter file system with *~ backup files; put them all inside + (defun my--backup-file-name (fpath) + "Return a new file path of a given file path. If the new path's directories does not exist, create them." + (let* ((backupRootDir "~/.config/emacs/emacs-backup/") + (filePath (replace-regexp-in-string "[A-Za-z]:" "" fpath )) ; remove Windows driver letter in path + (backupFilePath (replace-regexp-in-string "//" "/" (concat backupRootDir filePath "~") ))) + (make-directory (file-name-directory backupFilePath) (file-name-directory backupFilePath)) + backupFilePath)) + (setq make-backup-file-name-function 'my--backup-file-name) + + ) +#+end_src diff --git a/src/modules/built-in/hyperbole.el b/src/modules/built-in/hyperbole.el new file mode 100644 index 0000000..246ecc8 --- /dev/null +++ b/src/modules/built-in/hyperbole.el @@ -0,0 +1,5 @@ +(use-package hyperbole + :ensure t + :defer t + :config + (hyperbole-mode 1)) diff --git a/src/modules/built-in/hyperbole.org b/src/modules/built-in/hyperbole.org new file mode 100644 index 0000000..2536d48 --- /dev/null +++ b/src/modules/built-in/hyperbole.org @@ -0,0 +1,8 @@ +#+begin_src elisp +(use-package hyperbole + :ensure t + :defer t + :config + (hyperbole-mode 1)) + +#+end_src diff --git a/src/modules/built-in/org.el b/src/modules/built-in/org.el new file mode 100644 index 0000000..1ff806b --- /dev/null +++ b/src/modules/built-in/org.el @@ -0,0 +1,34 @@ +(use-package org-contrib + :ensure t) + +(use-package ob-php + :ensure t) + +(use-package org + :config + + (require 'org-tempo) + (setq org-src-preserve-indentation nil + org-edit-src-content-indentation 0) + + ;; active Babel languages + (org-babel-do-load-languages + 'org-babel-load-languages + '((php . t) + (scheme . t))) + ;;(verb . t))) + + (add-to-list 'org-src-lang-modes '("php" . php-ts)) + + (setq org-src-fontify-natively t + ;;org-src-tab-acts-natively t + org-confirm-babel-evaluate nil + ;;org-edit-src-content-indentation 0 + ) + (setq org-agenda-files (directory-files-recursively "/Users/cnelson/.org" "\\.org$")) + (eval-after-load "org" + '(require 'ox-md nil t)) + ) + +(use-package htmlize + :ensure t) diff --git a/src/modules/built-in/org.org b/src/modules/built-in/org.org new file mode 100644 index 0000000..4d22bc1 --- /dev/null +++ b/src/modules/built-in/org.org @@ -0,0 +1,45 @@ +#+begin_src elisp + (use-package org-contrib + :ensure t) +#+end_src + +#+begin_src elisp + (use-package ob-php + :ensure t) +#+end_src + + +#+begin_src elisp +(use-package org + :config + + (require 'org-tempo) + (setq org-src-preserve-indentation nil + org-edit-src-content-indentation 0) + + ;; active Babel languages + (org-babel-do-load-languages + 'org-babel-load-languages + '((php . t) + (scheme . t))) + ;;(verb . t))) + + (add-to-list 'org-src-lang-modes '("php" . php-ts)) + + (setq org-src-fontify-natively t + ;;org-src-tab-acts-natively t + org-confirm-babel-evaluate nil + ;;org-edit-src-content-indentation 0 + ) + (setq org-agenda-files (directory-files-recursively "/Users/cnelson/.org" "\\.org$")) + (eval-after-load "org" + '(require 'ox-md nil t)) + ) + +#+end_src + +#+begin_src elisp +(use-package htmlize + :ensure t) + +#+end_src diff --git a/src/modules/built-in/tree-sitter.el b/src/modules/built-in/tree-sitter.el new file mode 100644 index 0000000..e018e33 --- /dev/null +++ b/src/modules/built-in/tree-sitter.el @@ -0,0 +1,6 @@ +(use-package treesit + :config + (setq treesit-language-source-alist + '(;;(php "https://github.com/tree-sitter/tree-sitter-php" "master" "php/src") + ;;(dockerfile "https://github.com/camdencheek/tree-sitter-dockerfile" "main" "src") + (yaml "https://github.com/ikatyang/tree-sitter-yaml" "master" "src")))) diff --git a/src/modules/built-in/tree-sitter.org b/src/modules/built-in/tree-sitter.org new file mode 100644 index 0000000..c4bf3ec --- /dev/null +++ b/src/modules/built-in/tree-sitter.org @@ -0,0 +1,8 @@ +#+BEGIN_SRC elisp + (use-package treesit + :config + (setq treesit-language-source-alist + '(;;(php "https://github.com/tree-sitter/tree-sitter-php" "master" "php/src") + ;;(dockerfile "https://github.com/camdencheek/tree-sitter-dockerfile" "main" "src") + (yaml "https://github.com/ikatyang/tree-sitter-yaml" "master" "src")))) +#+END_SRC diff --git a/src/modules/completion/company.el b/src/modules/completion/company.el new file mode 100644 index 0000000..20d296f --- /dev/null +++ b/src/modules/completion/company.el @@ -0,0 +1,5 @@ +(use-package company + :ensure t + :after (hyperbole) + :hook + (after-init . global-company-mode)) diff --git a/src/modules/completion/company.org b/src/modules/completion/company.org new file mode 100644 index 0000000..a226909 --- /dev/null +++ b/src/modules/completion/company.org @@ -0,0 +1,7 @@ +#+begin_src elisp +(use-package company + :ensure t + :after (hyperbole) + :hook + (after-init . global-company-mode)) +#+end_src diff --git a/src/modules/completion/orderless.el b/src/modules/completion/orderless.el new file mode 100644 index 0000000..c13c7df --- /dev/null +++ b/src/modules/completion/orderless.el @@ -0,0 +1,6 @@ +(use-package orderless + :ensure t + :custom + (completion-styles '(orderless basic)) + (completion-category-defaults nil) + (completion-category-overrides '((file (styles partial-completion))))) diff --git a/src/modules/completion/orderless.org b/src/modules/completion/orderless.org new file mode 100644 index 0000000..7205b51 --- /dev/null +++ b/src/modules/completion/orderless.org @@ -0,0 +1,8 @@ +#+begin_src elisp + (use-package orderless + :ensure t + :custom + (completion-styles '(orderless basic)) + (completion-category-defaults nil) + (completion-category-overrides '((file (styles partial-completion))))) +#+end_src diff --git a/src/modules/completion/vertico.el b/src/modules/completion/vertico.el new file mode 100644 index 0000000..20b5953 --- /dev/null +++ b/src/modules/completion/vertico.el @@ -0,0 +1,4 @@ +(use-package vertico + :ensure t + :init + (vertico-mode)) diff --git a/src/modules/completion/vertico.org b/src/modules/completion/vertico.org new file mode 100644 index 0000000..fc98388 --- /dev/null +++ b/src/modules/completion/vertico.org @@ -0,0 +1,6 @@ +#+begin_src elisp + (use-package vertico + :ensure t + :init + (vertico-mode)) +#+end_src diff --git a/src/modules/interface/dashboard.el b/src/modules/interface/dashboard.el new file mode 100644 index 0000000..950dd3a --- /dev/null +++ b/src/modules/interface/dashboard.el @@ -0,0 +1,5 @@ +(use-package dashboard + :ensure t + :config + (dashboard-setup-startup-hook) + (setq dashboard-center-content t)) diff --git a/src/modules/interface/dashboard.org b/src/modules/interface/dashboard.org new file mode 100644 index 0000000..905ce10 --- /dev/null +++ b/src/modules/interface/dashboard.org @@ -0,0 +1,7 @@ +#+begin_src elisp +(use-package dashboard + :ensure t + :config + (dashboard-setup-startup-hook) + (setq dashboard-center-content t)) +#+end_src diff --git a/src/modules/interface/dired-sidebar.el b/src/modules/interface/dired-sidebar.el new file mode 100644 index 0000000..d996007 --- /dev/null +++ b/src/modules/interface/dired-sidebar.el @@ -0,0 +1,5 @@ +(use-package dired-sidebar + :ensure t + :commands (dired-sidebar-toggle-sidebar) + :config + (setq dired-sidebar-theme 'nerd-icons)) diff --git a/src/modules/interface/dired-sidebar.org b/src/modules/interface/dired-sidebar.org new file mode 100644 index 0000000..157a477 --- /dev/null +++ b/src/modules/interface/dired-sidebar.org @@ -0,0 +1,7 @@ +#+begin_src elisp +(use-package dired-sidebar + :ensure t + :commands (dired-sidebar-toggle-sidebar) + :config + (setq dired-sidebar-theme 'nerd-icons)) +#+end_src diff --git a/src/modules/interface/doom-modeline.el b/src/modules/interface/doom-modeline.el new file mode 100644 index 0000000..63567b4 --- /dev/null +++ b/src/modules/interface/doom-modeline.el @@ -0,0 +1,3 @@ +(use-package doom-modeline + :ensure t + :init (doom-modeline-mode 1)) diff --git a/src/modules/interface/doom-modeline.org b/src/modules/interface/doom-modeline.org new file mode 100644 index 0000000..4555c3a --- /dev/null +++ b/src/modules/interface/doom-modeline.org @@ -0,0 +1,5 @@ +#+BEGIN_SRC elisp +(use-package doom-modeline + :ensure t + :init (doom-modeline-mode 1)) +#+END_SRC diff --git a/src/modules/interface/doom-themes.el b/src/modules/interface/doom-themes.el new file mode 100644 index 0000000..d7e6d63 --- /dev/null +++ b/src/modules/interface/doom-themes.el @@ -0,0 +1,12 @@ +(use-package doom-themes + :ensure t + :config + ;; 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-one t) + + ;; Enable flashing mode-line on errors + (doom-themes-visual-bell-config) + ;; Corrects (and improves) org-mode's native fontification. + (doom-themes-org-config)) diff --git a/src/modules/interface/doom-themes.org b/src/modules/interface/doom-themes.org new file mode 100644 index 0000000..834e726 --- /dev/null +++ b/src/modules/interface/doom-themes.org @@ -0,0 +1,14 @@ +#+begin_src elisp +(use-package doom-themes + :ensure t + :config + ;; 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-one t) + + ;; Enable flashing mode-line on errors + (doom-themes-visual-bell-config) + ;; Corrects (and improves) org-mode's native fontification. + (doom-themes-org-config)) +#+end_src diff --git a/src/modules/interface/emojify.el b/src/modules/interface/emojify.el new file mode 100644 index 0000000..f8107fa --- /dev/null +++ b/src/modules/interface/emojify.el @@ -0,0 +1,3 @@ +(use-package emojify + :ensure t + :hook (after-init . global-emojify-mode)) diff --git a/src/modules/interface/emojify.org b/src/modules/interface/emojify.org new file mode 100644 index 0000000..b118dd0 --- /dev/null +++ b/src/modules/interface/emojify.org @@ -0,0 +1,5 @@ +#+BEGIN_SRC elisp + (use-package emojify + :ensure t + :hook (after-init . global-emojify-mode)) +#+END_SRC diff --git a/src/modules/interface/nerd-icons.el b/src/modules/interface/nerd-icons.el new file mode 100644 index 0000000..2e9274b --- /dev/null +++ b/src/modules/interface/nerd-icons.el @@ -0,0 +1,2 @@ +(use-package nerd-icons + :ensure t) diff --git a/src/modules/interface/nerd-icons.org b/src/modules/interface/nerd-icons.org new file mode 100644 index 0000000..dc7cdf2 --- /dev/null +++ b/src/modules/interface/nerd-icons.org @@ -0,0 +1,5 @@ +#+begin_src elisp +(use-package nerd-icons + :ensure t) + +#+end_src diff --git a/src/modules/interface/powerline.el b/src/modules/interface/powerline.el new file mode 100644 index 0000000..316edd3 --- /dev/null +++ b/src/modules/interface/powerline.el @@ -0,0 +1,54 @@ +(use-package powerline + :ensure t + ;;:disabled + :after tab-line + :config + ;;(global-tab-line-mode t) + (defvar my/tab-height 22) + (defvar my/tab-left (powerline-wave-right 'tab-line nil my/tab-height)) + (defvar my/tab-right (powerline-wave-left nil 'tab-line my/tab-height)) + + (defun my/tab-line-tab-name-buffer (buffer &optional _buffers) + (powerline-render (list my/tab-left + (format "%s" (buffer-name buffer)) +;; my/tab-right + ))) + + + (setq tab-line-tab-name-function #'my/tab-line-tab-name-buffer) + (setq tab-line-close-button (powerline-render + (list #(" ") + #(" x" 0 2 + (display + (image :type xpm :file "tabs/close.xpm" :margin + (2 . 0) + :ascent center) + keymap + (keymap + (tab-line keymap + (mouse-2 . tab-line-close-tab) + (mouse-1 . tab-line-close-tab))) + mouse-face tab-line-close-highlight help-echo "Click to close tab")) + + my/tab-right + ))) + (setq tab-line-new-button-show nil) ;; do not show add-new button + ;;(setq tab-line-close-button-show nil) ;; do not show close button + + (setq tab-line-separator "") ;; set it to empty + ;; tab color settings + ;; (set-face-attribute 'tab-line nil ;; background behind tabs + ;; :background "gray40" + ;; :foreground "gray60" :distant-foreground "gray50" + ;; :height 1.0 :box nil) + (set-face-attribute 'tab-line-tab nil ;; active tab in another window + :inherit 'tab-line + :foreground "gray70" :background "gray90" :box nil) + (set-face-attribute 'tab-line-tab-current nil ;; active tab in current window + :background "gray40" :foreground "white" :box nil) + + (set-face-attribute 'tab-line-tab-inactive nil ;; inactive tab + :background "gray60" :foreground "black" :box nil) + (set-face-attribute 'tab-line-highlight nil ;; mouseover + :background "white" :foreground 'unspecified) + ) diff --git a/src/modules/interface/powerline.org b/src/modules/interface/powerline.org new file mode 100644 index 0000000..25c661b --- /dev/null +++ b/src/modules/interface/powerline.org @@ -0,0 +1,56 @@ +#+begin_src elisp +(use-package powerline + :ensure t + ;;:disabled + :after tab-line + :config + ;;(global-tab-line-mode t) + (defvar my/tab-height 22) + (defvar my/tab-left (powerline-wave-right 'tab-line nil my/tab-height)) + (defvar my/tab-right (powerline-wave-left nil 'tab-line my/tab-height)) + + (defun my/tab-line-tab-name-buffer (buffer &optional _buffers) + (powerline-render (list my/tab-left + (format "%s" (buffer-name buffer)) +;; my/tab-right + ))) + + + (setq tab-line-tab-name-function #'my/tab-line-tab-name-buffer) + (setq tab-line-close-button (powerline-render + (list #(" ") + #(" x" 0 2 + (display + (image :type xpm :file "tabs/close.xpm" :margin + (2 . 0) + :ascent center) + keymap + (keymap + (tab-line keymap + (mouse-2 . tab-line-close-tab) + (mouse-1 . tab-line-close-tab))) + mouse-face tab-line-close-highlight help-echo "Click to close tab")) + + my/tab-right + ))) + (setq tab-line-new-button-show nil) ;; do not show add-new button + ;;(setq tab-line-close-button-show nil) ;; do not show close button + + (setq tab-line-separator "") ;; set it to empty + ;; tab color settings + ;; (set-face-attribute 'tab-line nil ;; background behind tabs + ;; :background "gray40" + ;; :foreground "gray60" :distant-foreground "gray50" + ;; :height 1.0 :box nil) + (set-face-attribute 'tab-line-tab nil ;; active tab in another window + :inherit 'tab-line + :foreground "gray70" :background "gray90" :box nil) + (set-face-attribute 'tab-line-tab-current nil ;; active tab in current window + :background "gray40" :foreground "white" :box nil) + + (set-face-attribute 'tab-line-tab-inactive nil ;; inactive tab + :background "gray60" :foreground "black" :box nil) + (set-face-attribute 'tab-line-highlight nil ;; mouseover + :background "white" :foreground 'unspecified) + ) +#+end_src diff --git a/src/modules/interface/ultra-scroll.el b/src/modules/interface/ultra-scroll.el new file mode 100644 index 0000000..c0c67f8 --- /dev/null +++ b/src/modules/interface/ultra-scroll.el @@ -0,0 +1,9 @@ +(use-package ultra-scroll + :vc + (:url "https://github.com/jdtsmith/ultra-scroll" + :rev :newest) + :init + (setq scroll-conservatively 101 ; important! + scroll-margin 0) + :config + (ultra-scroll-mode 1)) diff --git a/src/modules/interface/ultra-scroll.org b/src/modules/interface/ultra-scroll.org new file mode 100644 index 0000000..0a7e02c --- /dev/null +++ b/src/modules/interface/ultra-scroll.org @@ -0,0 +1,11 @@ +#+BEGIN_SRC elisp +(use-package ultra-scroll + :vc + (:url "https://github.com/jdtsmith/ultra-scroll" + :rev :newest) + :init + (setq scroll-conservatively 101 ; important! + scroll-margin 0) + :config + (ultra-scroll-mode 1)) +#+END_SRC diff --git a/src/modules/languages/guile.el b/src/modules/languages/guile.el new file mode 100644 index 0000000..83d29fd --- /dev/null +++ b/src/modules/languages/guile.el @@ -0,0 +1,11 @@ +(use-package geiser + :ensure t + :disabled) + +(use-package geiser-guile + :ensure t) + ;; :hook + ;; (scheme-mode . run-geiser)) + +(use-package ac-geiser + :ensure t) diff --git a/src/modules/languages/guile.org b/src/modules/languages/guile.org new file mode 100644 index 0000000..fef76ea --- /dev/null +++ b/src/modules/languages/guile.org @@ -0,0 +1,17 @@ +#+BEGIN_SRC elisp +(use-package geiser + :ensure t + :disabled) +#+END_SRC + +#+begin_src elisp +(use-package geiser-guile + :ensure t) + ;; :hook + ;; (scheme-mode . run-geiser)) +#+end_src + +#+begin_src elisp +(use-package ac-geiser + :ensure t) +#+end_src diff --git a/src/modules/languages/markdown.el b/src/modules/languages/markdown.el new file mode 100644 index 0000000..e27cffe --- /dev/null +++ b/src/modules/languages/markdown.el @@ -0,0 +1,4 @@ +(use-package markdown-mode + :ensure t + :mode ("README\\.md\\'" . gfm-mode) + :init (setq markdown-command "multimarkdown")) diff --git a/src/modules/languages/markdown.org b/src/modules/languages/markdown.org new file mode 100644 index 0000000..381aa2c --- /dev/null +++ b/src/modules/languages/markdown.org @@ -0,0 +1,6 @@ +#+BEGIN_SRC elisp +(use-package markdown-mode + :ensure t + :mode ("README\\.md\\'" . gfm-mode) + :init (setq markdown-command "multimarkdown")) +#+END_SRC diff --git a/src/modules/languages/php.el b/src/modules/languages/php.el new file mode 100644 index 0000000..2849c93 --- /dev/null +++ b/src/modules/languages/php.el @@ -0,0 +1,10 @@ +(use-package php-ts-mode + :ensure t + :hook + ((php-ts-mode . eglot-ensure)) + :init + (add-to-list 'auto-mode-alist '("\\.php$" . php-ts-mode))) + +(use-package company-php + ;;:disabled + :ensure t) diff --git a/src/modules/languages/php.org b/src/modules/languages/php.org new file mode 100644 index 0000000..d4f2a63 --- /dev/null +++ b/src/modules/languages/php.org @@ -0,0 +1,14 @@ +#+begin_src elisp + (use-package php-ts-mode + :ensure t + :hook + ((php-ts-mode . eglot-ensure)) + :init + (add-to-list 'auto-mode-alist '("\\.php$" . php-ts-mode))) +#+end_src + +#+begin_src elisp + (use-package company-php + ;;:disabled + :ensure t) +#+end_src \ No newline at end of file diff --git a/src/modules/languages/yaml.el b/src/modules/languages/yaml.el new file mode 100644 index 0000000..22e808d --- /dev/null +++ b/src/modules/languages/yaml.el @@ -0,0 +1,10 @@ +(use-package yaml-mode + :ensure t + :config + (add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-mode))) + +(use-package yaml-ts-mode + :disabled + :init + (add-to-list 'auto-mode-alist '("\\.yml" . yaml-ts-mode)) + (add-to-list 'auto-mode-alist '("\\.yaml" . yaml-ts-mode))) diff --git a/src/modules/languages/yaml.org b/src/modules/languages/yaml.org new file mode 100644 index 0000000..2b3350b --- /dev/null +++ b/src/modules/languages/yaml.org @@ -0,0 +1,16 @@ +* Yaml Mode +#+BEGIN_SRC elisp + (use-package yaml-mode + :ensure t + :config + (add-to-list 'auto-mode-alist '("\\.yml\\'" . yaml-mode))) +#+END_SRC + +* Yaml TS Mode (not ready) +#+BEGIN_SRC elisp + (use-package yaml-ts-mode + :disabled + :init + (add-to-list 'auto-mode-alist '("\\.yml" . yaml-ts-mode)) + (add-to-list 'auto-mode-alist '("\\.yaml" . yaml-ts-mode))) +#+END_SRC diff --git a/src/modules/utility/exec-path-from-shell.el b/src/modules/utility/exec-path-from-shell.el new file mode 100644 index 0000000..7c2c214 --- /dev/null +++ b/src/modules/utility/exec-path-from-shell.el @@ -0,0 +1,5 @@ +(use-package exec-path-from-shell + :ensure t + :config + (when (memq window-system '(mac ns x)) + (exec-path-from-shell-initialize))) diff --git a/src/modules/utility/exec-path-from-shell.org b/src/modules/utility/exec-path-from-shell.org new file mode 100644 index 0000000..accd83f --- /dev/null +++ b/src/modules/utility/exec-path-from-shell.org @@ -0,0 +1,7 @@ +#+begin_src elisp + (use-package exec-path-from-shell + :ensure t + :config + (when (memq window-system '(mac ns x)) + (exec-path-from-shell-initialize))) +#+end_src diff --git a/src/modules/utility/magit.el b/src/modules/utility/magit.el new file mode 100644 index 0000000..b0c5488 --- /dev/null +++ b/src/modules/utility/magit.el @@ -0,0 +1,2 @@ +(use-package magit + :ensure t) diff --git a/src/modules/utility/magit.org b/src/modules/utility/magit.org new file mode 100644 index 0000000..e1d4127 --- /dev/null +++ b/src/modules/utility/magit.org @@ -0,0 +1,4 @@ +#+BEGIN_SRC elisp + (use-package magit + :ensure t) +#+END_SRC diff --git a/src/modules/utility/vterm.el b/src/modules/utility/vterm.el new file mode 100644 index 0000000..e44c154 --- /dev/null +++ b/src/modules/utility/vterm.el @@ -0,0 +1,40 @@ +(use-package vterm + :ensure t + ;;:disabled + :defer + :bind + ("C-c o t" . vterm-toggle) + (:map project-prefix-map + ("t" . project-vterm)) + :preface + (defun project-vterm () + (interactive) + (defvar vterm-buffer-name) + (let* ((default-directory (project-root (project-current t))) + (vterm-buffer-name (project-prefixed-buffer-name "vterm")) + (vterm-buffer (get-buffer vterm-buffer-name))) + (if (and vterm-buffer (not current-prefix-arg)) + (pop-to-buffer vterm-buffer (bound-and-true-p display-comint-buffer-action)) + (vterm)))) + :init + (setq vterm-always-compile-module t) + (add-to-list 'project-switch-commands '(project-vterm "Vterm") t) + (add-to-list 'project-kill-buffer-conditions '(major-mode . vterm-mode)) + :config + (add-to-list 'display-buffer-alist + '("\*vterm\*" + (display-buffer-in-side-window) + (window-height . 0.25) + (side . bottom) + (slot . 0)))) + +(use-package vterm-toggle + :ensure t + ;;:disabled + :after (vterm)) + +(use-package multi-vterm + :ensure t + ;;:disabled + :bind + ("C-c t n" . multi-vterm)) diff --git a/src/modules/utility/vterm.org b/src/modules/utility/vterm.org new file mode 100644 index 0000000..8a01540 --- /dev/null +++ b/src/modules/utility/vterm.org @@ -0,0 +1,46 @@ +#+begin_src elisp + (use-package vterm + :ensure t + ;;:disabled + :defer + :bind + ("C-c o t" . vterm-toggle) + (:map project-prefix-map + ("t" . project-vterm)) + :preface + (defun project-vterm () + (interactive) + (defvar vterm-buffer-name) + (let* ((default-directory (project-root (project-current t))) + (vterm-buffer-name (project-prefixed-buffer-name "vterm")) + (vterm-buffer (get-buffer vterm-buffer-name))) + (if (and vterm-buffer (not current-prefix-arg)) + (pop-to-buffer vterm-buffer (bound-and-true-p display-comint-buffer-action)) + (vterm)))) + :init + (setq vterm-always-compile-module t) + (add-to-list 'project-switch-commands '(project-vterm "Vterm") t) + (add-to-list 'project-kill-buffer-conditions '(major-mode . vterm-mode)) + :config + (add-to-list 'display-buffer-alist + '("\*vterm\*" + (display-buffer-in-side-window) + (window-height . 0.25) + (side . bottom) + (slot . 0)))) +#+end_src + +#+begin_src elisp +(use-package vterm-toggle + :ensure t + ;;:disabled + :after (vterm)) +#+end_src + +#+begin_src elisp +(use-package multi-vterm + :ensure t + ;;:disabled + :bind + ("C-c t n" . multi-vterm)) +#+end_src