From 08223cbc72be721a42d687ce07de61195fd8c350 Mon Sep 17 00:00:00 2001 From: Ghostie Date: Thu, 22 May 2025 00:24:07 +0100 Subject: [PATCH] i showed you my dotfiles please respond :sob: --- .gitignore | 3 + .projectile | 2 + Emacs/.emacs | 21 ++++ Emacs/custom/setup-appearance.el | 71 ++++++++++++++ Emacs/custom/setup-c.el | 8 ++ Emacs/custom/setup-general.el | 132 +++++++++++++++++++++++++ Emacs/custom/setup-org.el | 159 +++++++++++++++++++++++++++++++ Emacs/custom/setup-web.el | 5 + Readme.org | 3 + 9 files changed, 404 insertions(+) create mode 100644 .gitignore create mode 100644 .projectile create mode 100644 Emacs/.emacs create mode 100644 Emacs/custom/setup-appearance.el create mode 100644 Emacs/custom/setup-c.el create mode 100644 Emacs/custom/setup-general.el create mode 100644 Emacs/custom/setup-org.el create mode 100644 Emacs/custom/setup-web.el create mode 100644 Readme.org diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d6c94fe --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*~ +#*# +*.eld \ No newline at end of file diff --git a/.projectile b/.projectile new file mode 100644 index 0000000..0a3ae92 --- /dev/null +++ b/.projectile @@ -0,0 +1,2 @@ +-*~ +-#*# \ No newline at end of file diff --git a/Emacs/.emacs b/Emacs/.emacs new file mode 100644 index 0000000..2b57ffb --- /dev/null +++ b/Emacs/.emacs @@ -0,0 +1,21 @@ +(require 'package) +(add-to-list 'package-archives + '("melpa" . "http://melpa.org/packages/") t) +(package-initialize) + +(when (not package-archive-contents) + (package-refresh-contents)) + +(unless (package-installed-p 'use-package) + (package-install 'use-package)) + +(require 'use-package) +(setq use-package-always-ensure t) + +(add-to-list 'load-path "~/.emacs.d/custom") + +(require 'setup-general) +(require 'setup-org) +(require 'setup-appearance) +(require 'setup-c) +(require 'setup-web) diff --git a/Emacs/custom/setup-appearance.el b/Emacs/custom/setup-appearance.el new file mode 100644 index 0000000..5189adf --- /dev/null +++ b/Emacs/custom/setup-appearance.el @@ -0,0 +1,71 @@ +;; rainbow-delimiters +(use-package rainbow-delimiters + :hook (prog-mode . rainbow-delimiters-mode)) + +;; theme +(use-package doom-themes + :ensure t + :config + (setq doom-themes-enable-bold t + doom-themes-enable-italic t) + (load-theme 'doom-one-light t) + + (doom-themes-org-config)) + +;; moody +(use-package moody + :config + (setq x-underline-at-descent-line t) + (moody-replace-mode-line-buffer-identification) + (moody-replace-vc-mode) + (moody-replace-eldoc-minibuffer-message-function)) + +(use-package dashboard + :ensure t + :config + (setq dashboard-banner-logo-title "We are all connected" + dashboard-startup-banner 'logo + dashboard-center-content t + dashboard-show-shortcuts t + dashboard-set-navigator t + dashboard-set-heading-icons t + dashboard-set-file-icons t + initial-buffer-choice (lambda () (get-buffer "*dashboard*")) + dashboard-projects-switch-function 'projectile-switch-project-by-name + + dashboard-items '((recents . 15) + (agenda . 10) + (projects . 10))) + (dashboard-setup-startup-hook) + + :init + (add-hook 'after-init-hook 'dashboard-refresh-buffer)) + +(use-package git-gutter-fringe + :hook ((prog-mode . git-gutter-mode) + (org-mode . git-gutter-mode) + (markdown-mode . git-gutter-mode) + (latex-mode . git-gutter-mode))) + +(use-package ligature + :config + (ligature-set-ligatures 'prog-mode + '("|||>" "<|||" "<==>" "" "---" "-<<" + "<~~" "<~>" "<*>" "<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->" + "<--" "<-<" "<<=" "<<-" "<<<" "<+>" "" "###" "#_(" "..<" + "..." "+++" "/==" "///" "_|_" "www" "&&" "^=" "~~" "~@" "~=" + "~>" "~-" "**" "*>" "*/" "||" "|}" "|]" "|=" "|>" "|-" "{|" + "[|" "]#" "::" ":=" ":>" ":<" "$>" "==" "=>" "!=" "!!" ">:" + ">=" ">>" ">-" "-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:" + "<$" "<=" "<>" "<-" "<<" "<+" "" "++" "?:" + "?=" "?." "??" ";;" "/*" "/=" "/>" "//" "__" "~~" "(*" "*)" + "\\\\" "://")) + (global-ligature-mode t)) + +(setq-default fill-column 80) +(display-fill-column-indicator-mode 1) + +(provide 'setup-appearance) diff --git a/Emacs/custom/setup-c.el b/Emacs/custom/setup-c.el new file mode 100644 index 0000000..e9fbb4e --- /dev/null +++ b/Emacs/custom/setup-c.el @@ -0,0 +1,8 @@ +(use-package clang-format + :ensure t + :init + (add-hook 'before-save-hook (lambda () + (when (or (equal major-mode 'c-mode) (equal major-mode 'c++-mode)) + (clang-format-buffer))))) + +(provide 'setup-c) diff --git a/Emacs/custom/setup-general.el b/Emacs/custom/setup-general.el new file mode 100644 index 0000000..6347b0b --- /dev/null +++ b/Emacs/custom/setup-general.el @@ -0,0 +1,132 @@ +(menu-bar-mode -1) +(tool-bar-mode -1) +(scroll-bar-mode -1) + +(setq gc-cons-threshold (* 100 1024 1024) + read-process-output-max (* 1024 1024) + inhibit-startup-message t + auto-save-default nil + create-lockfiles nil + make-backup-files nil) + +(defalias 'yes-or-no-p 'y-or-n-p) + +;; use tabs instead of spaces +(setq-default indent-tabs-mode t + tab-width 2) +(defvaralias 'c-basic-offset 'tab-width) + +(defun tabify-before-save () + (cond + ((derived-mode-p 'prog-mode) + (tabify (point-min) (point-max))) + ((eq major-mode 'org-mode) + (untabify (point-min) (point-max))))) +(add-hook 'before-save-hook #'tabify-before-save) + +;; yasnippet +(use-package yasnippet + :config + (yas-global-mode)) + +(use-package yasnippet-snippets + :after yasnippet) + +;; projectile +(use-package projectile + :config + (projectile-mode +1) + (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) + (setq projectile-indexing-method 'hybrid)) + +;; hydra +(use-package hydra) + +;; avy +(use-package avy) + +;; helm +(use-package helm + :config + (helm-mode) + (global-set-key [remap find-file] #'helm-find-files) + (global-set-key [remap execute-extended-command] #'helm-M-x) + (global-set-key [remap switch-to-buffer] #'helm-mini)) + +(use-package helm-xref + :after helm) + +;; multiple-cursors +(use-package multiple-cursors + :bind (("C-c f" . mc/mark-next-like-this) + ("C-c b" . mc/mark-previous-like-this))) + +;; texfrag +(use-package texfrag + :ensure t + :config + (add-hook 'prog-mode-hook (lambda () (texfrag-mode)))) + +;; which-key +(use-package which-key + :config + (which-key-mode)) + +(add-hook 'prog-mode-hook + (lambda () + (electric-pair-mode) + (display-line-numbers-mode) + (setq display-line-numbers 'relative) + (column-number-mode))) + +;; magit +(use-package magit + :ensure) + +;; C-a goes to the first non-whitespace character +(defun my/move-beginning-of-line () + (interactive) + (if (<= (current-column) (current-indentation)) + (move-beginning-of-line nil) + (back-to-indentation))) + +(global-set-key (kbd "C-a") 'my/move-beginning-of-line) + +;; lsp,flycheck and company +(use-package lsp-mode + :ensure t + :init + (add-hook 'c-mode-hook 'lsp-deferred)) + +(use-package lsp-ui + :ensure t + :after lsp-mode + :custom + (setq lsp-ui-sideline-show-diagnostics t + lsp-ui-sideline-show-hover t + lsp-ui-sideline-show-code-actions t + lsp-ui-sideline-update-mode 'point + lsp-ui-sideline-delay 0.1 + lsp-ui-peek-enable t + lsp-ui-doc-show-with-cursor t) + :custom + (define-key lsp-ui-mode-map [remap xref-find-definitions] #'lsp-ui-peek-find-definitions) + (define-key lsp-ui-mode-map [remap xref-find-references] #'lsp-ui-peek-find-references)) + +(use-package flycheck + :ensure + :config + (global-flycheck-mode +1)) + +(use-package company + :ensure + :init + (add-hook 'prog-mode-hook #'company-mode) + :custom + (company-idle-delay 0.0) + (company-minimum-prefix-length 1)) + +;; this is the most annoying thing in the worlddddd +(global-unset-key (kbd "C-z")) + +(provide 'setup-general) diff --git a/Emacs/custom/setup-org.el b/Emacs/custom/setup-org.el new file mode 100644 index 0000000..2eb95b0 --- /dev/null +++ b/Emacs/custom/setup-org.el @@ -0,0 +1,159 @@ +(use-package org-bullets + :config + (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))) + :custom + (org-bullets-bullet-list '("◉" "○" "●" "○" "●" "○" "●"))) + +(setq org-hide-emphasis-markers t + org-pretty-entities t + org-agenda-tags-column 0 + + org-auto-align-tags nil + org-tags-column 0 + org-catch-invisible-edits 'show-and-error + org-special-ctrl-a/e t + org-insert-heading-respect-content t + + org-ellipsis "…") + +(add-hook 'org-mode-hook (lambda () + (variable-pitch-mode) + (visual-line-mode) + (org-indent-mode))) + +(defun update-org-last-modified () + "Update the #+LAST_MODIFIED everytime we save." + (when (derived-mode-p 'org-mode) + (save-excursion + (goto-char (point-min)) + (when (re-search-forward "^#\\+LAST_MODIFIED:" nil t) + (delete-region (point) (line-end-position)) + (insert (format-time-string " %Y-%m-%dT%H:%M:%S%z" (current-time) t)))))) + +(add-hook 'before-save-hook 'update-org-last-modified) + +(font-lock-add-keywords 'org-mode + '(("^ *\\([-]\\) " + (0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•")))))) + +(custom-theme-set-faces + 'user + '(org-block ((t (:inherit fixed-pitch)))) + '(org-code ((t (:inherit (shadow fixed-pitch))))) + '(org-document-info ((t (:foreground "dark orange")))) + '(org-document-info-keyword ((t (:inherit (shadow fixed-pitch))))) + '(org-indent ((t (:inherit (org-hide fixed-pitch))))) + '(org-link ((t (:foreground "royal blue" :underline t)))) + '(org-meta-line ((t (:inherit (font-lock-comment-face fixed-pitch))))) + '(org-property-value ((t (:inherit fixed-pitch))) t) + '(org-special-keyword ((t (:inherit (font-lock-comment-face fixed-pitch))))) + '(org-table ((t (:inherit fixed-pitch :foreground "#83a598")))) + '(org-tag ((t (:inherit (shadow fixed-pitch) :weight bold :height 0.8)))) + '(org-verbatim ((t (:inherit (shadow fixed-pitch)))))) + +(use-package org-roam + :ensure t + :custom + (org-roam-directory "~/RoamNotes") + :bind (("C-c n l" . org-roam-buffer-toggle) + ("C-c n f" . org-roam-node-find) + ("C-c n i" . org-roam-node-insert)) + :config + (org-roam-setup)) + +(use-package org-drill + :ensure t) + +;; setup agenda +(setq org-directory "~/Org" + org-agenda-files '("Tasks.org" "Birthdays.org" "Habits.org") + + org-agenda-start-with-log-mode t + org-log-done 'time + org-log-into-drawer t) + +(setq org-todo-keywords + '((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d!)") + (sequence "BACKLOG(b)" "PLANNED(p)" "READY(r)" "ACTIVE(a)" "REVIEW(v)" "WAIT(w@/!)" "HOLD(h)" "|" "COMPLETED(c)"))) + +(setq org-agenda-custom-commands + '(("d" "Dashboard" + ((agenda "" ((org-deadline-warning-days 7))) + (todo "NEXT" + ((org-agenda-overriding-header "Next Tasks"))) + (tags-todo "agenda/ACTIVE" ((org-agenda-overriding-header "Active Projects"))))) + + ("n" "Next Tasks" + ((todo "NEXT" + ((org-agenda-overriding-header "Next Tasks"))))) + + + ;; Low-effort next actions + ("e" tags-todo "+TODO=\"NEXT\"+Effort<15&+Effort>0" + ((org-agenda-overriding-header "Low Effort Tasks") + (org-agenda-max-todos 20) + (org-agenda-files org-agenda-files))) + + ("w" "Workflow Status" + ((todo "WAIT" + ((org-agenda-overriding-header "Waiting on External") + (org-agenda-files org-agenda-files))) + (todo "REVIEW" + ((org-agenda-overriding-header "In Review") + (org-agenda-files org-agenda-files))) + (todo "PLAN" + ((org-agenda-overriding-header "In Planning") + (org-agenda-todo-list-sublevels nil) + (org-agenda-files org-agenda-files))) + (todo "BACKLOG" + ((org-agenda-overriding-header "Project Backlog") + (org-agenda-todo-list-sublevels nil) + (org-agenda-files org-agenda-files))) + (todo "READY" + ((org-agenda-overriding-header "Ready for Work") + (org-agenda-files org-agenda-files))) + (todo "ACTIVE" + ((org-agenda-overriding-header "Active Projects") + (org-agenda-files org-agenda-files))) + (todo "COMPLETED" + ((org-agenda-overriding-header "Completed Projects") + (org-agenda-files org-agenda-files))) + (todo "CANC" + ((org-agenda-overriding-header "Cancelled Projects") + (org-agenda-files org-agenda-files))))))) + +(setq org-capture-templates + `(("t" "Tasks / Projects") + ("tt" "Task" entry (file+olp "~/Org/Tasks.org" "Inbox") + "* TODO %?\n %U\n %i" :empty-lines 1) + ("ts" "Clocked Entry Subtask" entry (clock) + "* TODO %?\n %U\n %i" :empty-lines 1) + + ("j" "Journal Entries") + ("jj" "Journal" entry + (file+olp+datetree "~/Org/Journal.org") + "\n* %<%I:%M %p> - Journal :journal:\n\n%?\n\n" + :clock-in :clock-resume + :empty-lines 1) + ("jm" "Meeting" entry + (file+olp+datetree "~/Org/Tasks.org") + "* %<%I:%M %p> - Meeting :meetings:\n\n%?\n\n" + :clock-in :clock-resume + :empty-lines 1))) + +(define-key global-map (kbd "C-c j") + (lambda () (interactive) (org-capture))) + +;; org-habit +(require 'org-habit) +(add-to-list 'org-modules 'org-habit) +(setq org-habit-graph-column 60) + +;; org-babel +(org-babel-do-load-languages + 'org-babel-load-languages + '( + (C . t) + (scheme . t))) + +(provide 'setup-org) diff --git a/Emacs/custom/setup-web.el b/Emacs/custom/setup-web.el new file mode 100644 index 0000000..863a23b --- /dev/null +++ b/Emacs/custom/setup-web.el @@ -0,0 +1,5 @@ +(use-package emmet-mode + :ensure t + :hook (sgml-mode . emmet-mode)) + +(provide 'setup-web) diff --git a/Readme.org b/Readme.org new file mode 100644 index 0000000..f06f56b --- /dev/null +++ b/Readme.org @@ -0,0 +1,3 @@ +* DotFiles + +I showed you my dotfiles please respond :sob: