aboutsummaryrefslogtreecommitdiffstats
path: root/config/doom/config.org
diff options
context:
space:
mode:
Diffstat (limited to 'config/doom/config.org')
-rw-r--r--config/doom/config.org271
1 files changed, 211 insertions, 60 deletions
diff --git a/config/doom/config.org b/config/doom/config.org
index 3d203aa..577f1f9 100644
--- a/config/doom/config.org
+++ b/config/doom/config.org
@@ -11,6 +11,22 @@
#+begin_src emacs-lisp
(setq doom-font (font-spec :family "DejaVu Sans Mono" :size 18 :weight 'semi-light))
(setq doom-theme 'doom-gruvbox)
+(add-hook 'prog-mode-hook 'prettify-symbols-mode)
+
+(defun on/prettify-symbols ()
+ "Common added symbols."
+ (mapc (lambda (p)
+ (cl-pushnew p prettify-symbols-alist :test #'equal))
+ '(("<=" . ?≤)
+ (">=" . ?≥)
+ ("->" . ?→)
+ ("->>" . ?↠)
+ ("=>" . ?⇒)
+ ("/=" . ?≠) ("!=" . ?≠)
+ ("::" . ?∷)
+ ("lambda" . ?λ))))
+
+(add-hook 'prog-mode-hook 'on/prettify-symbols)
#+end_src
This determines the style of line numbers in effect. If set to `nil', line
numbers are disabled. For relative line numbers, set this to `relative'.
@@ -88,6 +104,9 @@ Because I always need help and it should come up quickly
(emacs-lisp-mode)
(display-buffer (current-buffer))))
#+end_src
+#+begin_src emacs-lisp
+ (add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p)
+#+end_src
* Dictionary
#+begin_src emacs-lisp :tangle "packages.el"
(package! lexic)
@@ -110,6 +129,7 @@ Shamelessly copied from https://tecosaur.github.io/emacs-config/#dictionary
* Orgmode
#+begin_src emacs-lisp
(after! org
+ (setq org-tags-column (- fill-column))
(setcdr (assoc "j" org-capture-templates)
'("Journal" entry (file+olp+datetree +org-capture-journal-file)
"* %(format-time-string \"%H:%M\") %?\n%a\n%i"
@@ -119,20 +139,19 @@ Shamelessly copied from https://tecosaur.github.io/emacs-config/#dictionary
`("e" "Event" entry (file ,(expand-file-name
"caldav.org" org-directory))
"* %?\n%^T\n%i\n%a"))
- (add-to-list 'org-capture-templates
- `("i" "Isar-Speak Contact"
- entry (file ,(expand-file-name "Isar-Speak.org" org-directory))
- "* INTRS [[notmuch-search:%:fromaddress][%:fromname]]
-:PROPERTIES:
-:EMAIL: %:fromaddress
-:END:
-Invited: %^t
-"))
+
(setq org-roam-capture-templates '(("d" "default" plain "%i\n%?"
:target (file+head "%<%Y%m%d%H%M%S>-${slug}.org"
"#+title: ${title}")
:unnarrowed t))
org-roam-capture-ref-templates org-roam-capture-templates))
+
+(use-package! semantic-search
+ :after org
+ :load-path "~/dev/dotfiles/scratch/semgrep"
+ :commands (semantic-search)
+ :config
+ (setq semantic-server-url "http://localhost:8080"))
#+end_src
** Alerts
This is to set the reminders of calendar events.
@@ -155,13 +174,18 @@ this new window.
#+begin_src emacs-lisp
(use-package! cal-sync
:load-path "~/dev/org-caldav"
- :commands (cal-sync-push cal-sync-import-file cal-sync-delete)
+ :commands (cal-sync-push cal-sync-import-file cal-sync-delete on/calendar-fetch)
:init (map! :leader
(:prefix-map "mc"
"p" #'cal-sync-push
"f" #'cal-sync-import-file))
:config
- (setq cal-sync-url "https://cloud.oscarnajera.com/remote.php/dav/calendars/oscar"
+ (defun on/calendar-fetch ()
+ (interactive)
+ (call-process "org_agenda_sync"
+ nil (list :file (expand-file-name "~/org/caldav.org")) nil
+ "--format" "org"))
+ (setq cal-sync-url "https://oscar@cloud.oscarnajera.com/remote.php/dav/calendars/oscar"
cal-sync-calendar-id "personal-1"
org-icalendar-date-time-format ":%Y%m%dT%H%M%SZ"))
#+end_src
@@ -219,23 +243,37 @@ this new window.
#+begin_src emacs-lisp
(after! elfeed
(setq elfeed-feeds
- '("https://sachachua.com/blog/feed"
+ '("http://feeds.feedburner.com/MeltingAsphalt"
+ "http://feeds.feedburner.com/TroyHunt"
+ "http://kitchingroup.cheme.cmu.edu/blog/feed/index.xml"
"http://www.howardism.org/index.xml"
- "https://reyify.com/api/rss"
- "https://guix.gnu.org/feeds/blog.atom"
"https://ag91.github.io/rss.xml"
+ "https://architectelevator.com/feed.xml"
+ "https://bitcoinops.org/feed.xml"
+ "https://cyberwardog.blogspot.com/feeds/posts/default"
"https://daryl.wakatara.com/rss.xml"
+ "https://guix.gnu.org/feeds/blog.atom"
+ "https://hboeck.de/rss.xml"
+ "https://jackrusher.com/feed.xml"
"https://nullprogram.com/feed/"
+ "https://oscarnajera.com/post/index.xml"
+ "https://paulstamatiou.com/posts.xml"
+ "https://planet.archlinux.org/atom.xml"
+ "https://reyify.com/api/rss"
+ "https://sachachua.com/blog/feed"
+ "https://serokell.io/blog.rss.xml"
+ "https://stevelosh.com/rss.xml"
+ "https://www.archlinux.org/feeds/news/"
+ "https://www.n16f.net/blog/index.xml"
"https://www.schneier.com/feed/atom"
- "https://stevelosh.com/rss.xml")))
-
+ "https://www.tweag.io/rss.xml")))
#+end_src
* Email
** Notmuch
#+begin_src emacs-lisp :tangle "packages.el"
-(package! notmuch :pin "7b5921877e748338359a25dae578771f768183af")
-(package! org-mime :pin "a7bf07316f93015e4f853ea0fc5b8d05b4a7695d")
-(package! ol-notmuch :pin "126fb446d8fa9e54cf21103afaf506fd81273c02")
+(package! notmuch :pin "c769658360e10a6d01a4134e680e2f498741bc5c")
+(package! org-mime :pin "cc00afcf0291633324364c1c83bfe2833cfdc1bf")
+(package! ol-notmuch :pin "781c3518a537da2a8b5e8a4424f9441df463a147")
#+end_src
#+BEGIN_SRC emacs-lisp
(use-package! notmuch
@@ -367,18 +405,14 @@ this new window.
(defun on/registered-mail-accounts ()
"Read mbsync config to extract IMAPAccounts."
- (let ((buffer (find-file-noselect
- (expand-file-name
- "~/dev/dotfiles/mail/dot-mbsyncrc.personal"))))
- (with-current-buffer buffer
- (goto-char (point-min))
- (let ((pick (prog1 (->>
- (cl-loop while (search-forward-regexp (rx bol "IMAPAccount " (group (+ any)) eol) nil t)
- collect (match-string 1))
- (cons "all")
- (completing-read "Which mailbox")))))
- (kill-buffer buffer)
- (if (string= pick "all") nil (list pick))))))
+ (with-temp-buffer
+ (insert-file-contents (expand-file-name "~/.mbsyncrc"))
+ (let ((pick (thread-last
+ (cl-loop while (search-forward-regexp (rx bol "IMAPAccount " (group (+ any)) eol) nil t)
+ collect (match-string 1))
+ (cons "all")
+ (completing-read "Which mailbox"))))
+ (if (string= pick "all") nil (list pick)))))
(define-derived-mode mail-sync-log-mode comint-mode "mail-sync-log"
"Major mode for reading mail sync."
@@ -407,21 +441,27 @@ this new window.
smtpmail-local-domain "oscarnajera.com")
(defun set-smtp-server ()
- (let* ((default-smtp-conf '("mail.oscarnajera.com" 587 starttls "hi"))
- (smtp-from-server-alist
- '(("Oscar Najera <najera.oscar@gmail.com>"
- "smtp.googlemail.com" 587 starttls "najera.oscar")))
- (smtp-conf (alist-get (save-restriction
- (message-narrow-to-headers)
- (message-fetch-field "from"))
- smtp-from-server-alist default-smtp-conf
- nil #'string=)))
- (-let [(server port protocol user) smtp-conf]
- (setq smtpmail-smtp-server server
- smtpmail-smtp-service port
- smtpmail-stream-type protocol
- smtpmail-smtp-user user)
- (message "SMTP server changed to %s in port %s by %s" server port protocol))))
+ (-let* (((user host)
+ (thread-first
+ (message-field-value "from" )
+ (mail-extract-address-components)
+ (cadr)
+ (string-split "@")))
+ (smtp-servers '("oscarnajera.com" "mail.oscarnajera.com"
+ "gmail.com" "smtp.googlemail.com"
+ "byteplant.com" "smtp.byteplant.com"))
+ ((&plist :host :user :port :secret)
+ (car
+ (auth-source-search :host
+ (or (plist-get smtp-servers host #'string=)
+ "mail.oscarnajera.com")
+ :user user
+ :max 1))))
+ (setq smtpmail-smtp-server host
+ smtpmail-smtp-service (string-to-number port)
+ smtpmail-stream-type 'starttls
+ smtpmail-smtp-user user)
+ (message "SMTP server changed to %s %s %s" host port user)))
(add-hook 'message-send-mail-hook 'set-smtp-server))
#+end_src
@@ -433,6 +473,19 @@ this new window.
#+begin_src emacs-lisp
(use-package! khardel)
#+end_src
+* IRC
+#+begin_src emacs-lisp
+(set-irc-server! "irc.libera.chat"
+ `(:tls t
+ :port 6697
+ :nick "titan-c"
+ :sasl-username ,(+pass-get-user "Social/freenode/titan-c")
+ :sasl-password (lambda (&rest _) (+pass-get-secret "Social/freenode/titan-c"))
+ :channels ("#emacs" "#guix")))
+#+end_src
+
+#+RESULTS:
+
* Ledger
Emacs mode for managing ledger text files
#+BEGIN_SRC emacs-lisp
@@ -442,20 +495,21 @@ Emacs mode for managing ledger text files
(defun on/ledger-link-invoice ()
"Attach an invoice file to this posting."
(interactive)
+ (ledger-navigate-beginning-of-xact)
+ (end-of-line)
(when-let* ((date (ledger-xact-date))
- (payee (replace-regexp-in-string " " "_" (string-trim-right (ledger-xact-payee))))
- (src-file (read-file-name "Attach: " "~/dev/journal/Empresa_DE/"))
+ (payee (thread-last
+ (ledger-xact-payee)
+ (string-trim)
+ (replace-regexp-in-string (rx (+ (or space punctuation))) "_")))
+ (src-file (read-file-name "Attach: "))
(file-name (concat "Empresa_DE/" date "_" payee "." (file-name-extension src-file))))
- (ledger-navigate-beginning-of-xact)
- (end-of-line)
- (rename-file src-file (expand-file-name file-name "/home/titan/dev/journal/"))
- (newline)
- (insert " ; Invoice: " file-name))))
+ (insert "\n ; Invoice: " file-name)
+ (rename-file src-file (expand-file-name file-name)))))
#+end_src
** CSV
#+begin_src emacs-lisp :tangle "packages.el"
(package! parse-csv)
-(package! emacsql-sqlite3)
#+end_src
** Crypto
#+begin_src emacs-lisp
@@ -465,8 +519,8 @@ Emacs mode for managing ledger text files
:init
(defun on/cardano-set-network ()
(interactive)
- (let* ((networks '((:mainnet "/tmp/nina-mn.socket" "http://localhost:8090" "--mainnet")
- (:preview "/tmp/nina-pr.socket" "http://localhost:8091" "--testnet-magic" "2")))
+ (let* ((networks '((:mainnet "/run/cardano-node-mainnet/socket" "http://localhost:8090" "--mainnet")
+ (:preview "/run/cardano-node-preview/socket" "http://localhost:8091" "--testnet-magic" "2")))
(pick
(alist-get
(completing-read "Pick network" networks)
@@ -485,7 +539,7 @@ Emacs mode for managing ledger text files
cardano-wallet-tx-log-mode)))))
(setq cardano-tx-log-level 'debug)
;; (setq cardano-cli-command (expand-file-name "~/dev/cardano/cardano-node/cli"))
- (setq cardano-tx-cli-command "/home/titan/dev/cardano/cardano-node/dist-newstyle/build/x86_64-linux/ghc-8.10.7/cardano-cli-1.35.3/x/cardano-cli/build/cardano-cli/cardano-cli")
+ (setq cardano-tx-cli-command "/usr/bin/cardano-cli")
(setq cardano-tx-db-keyring-dir "~/dev/cardano/emacs-wallet/keys/demo"))
(use-package! cardano-wallet
@@ -526,10 +580,33 @@ Emacs mode for managing ledger text files
#+begin_src emacs-lisp :tangle "packages.el"
(package! emacsql-psql)
#+end_src
+
+#+begin_src emacs-lisp
+(after! format-all
+ (define-format-all-formatter sqlformat
+ (:executable "pg_format")
+ (:install)
+ (:modes sql-mode)
+ (:format
+ (format-all--buffer-easy
+ executable
+ "-s2" "-g" "-U2"
+ "-"))))
+#+end_src
** WEB
+#+begin_src emacs-lisp :tangle "packages.el"
+(package! impatient-mode)
+#+end_src
#+begin_src emacs-lisp
-(after! web-mode
- (setq-hook! 'web-mode-hook +format-with :none))
+(after! skewer-mode
+ (setq httpd-port 8095))
+
+(use-package! impatient-mode
+ :commands impatient-mode)
+
+(use-package! trident-mode
+ :commands trident-mode
+ :load-path "~/dev/emacs-lisp/trident-mode.el/")
#+end_src
** Haskell
#+begin_src emacs-lisp
@@ -542,6 +619,36 @@ Emacs mode for managing ledger text files
#+begin_src emacs-lisp
(setq-hook! 'clojure-mode-hook +format-with :none)
#+end_src
+** Common Lisp
+#+begin_src emacs-lisp
+(after! sly
+ (setq sly-lisp-implementations
+ '((sbcl-large ("sbcl" "--dynamic-space-size" "2048"))
+ (sbcl ("sbcl")))))
+#+end_src
+** C
+#+begin_src emacs-lisp
+(after! lsp-clangd
+ (setq lsp-clients-clangd-args
+ '("-j=3"
+ "--background-index"
+ "--clang-tidy"
+ "--completion-style=detailed"
+ "--header-insertion=never"
+ "--header-insertion-decorators=0"))
+ (set-lsp-priority! 'clangd 2))
+#+end_src
+
+* Video Editing
+#+begin_src emacs-lisp :tangle "packages.el"
+(package! subed
+ :recipe (:host github :repo "sachac/subed" :files ("subed/*.el")))
+#+end_src
+
+#+begin_src emacs-lisp
+(use-package! subed)
+#+end_src
+
* Admin
#+begin_src emacs-lisp :tangle "packages.el"
(package! guix)
@@ -553,8 +660,43 @@ Emacs mode for managing ledger text files
(package! json-rpc)
#+end_src
#+begin_src emacs-lisp
-(use-package! json-rpc)
+(use-package! btc-explorer
+ :load-path "~/dev/emacs-lisp/btc-explorer/"
+ :commands (on/bitcoin-rpc-connect)
+ :config
+ (use-package json-rpc)
+ (defun on/bitcoin-rpc-connect ()
+ (interactive)
+ (let* ((networks '(:mainnet 8332
+ :mainnet-r 8335
+ :testnet 18332
+ :testnet-r 18335
+ :regtest 18443))
+ (host "localhost")
+ (user "crazy")
+ (port (plist-get networks
+ (intern (completing-read "Pick network: " networks))))
+ (secret (-some->
+ (auth-source-search :host host)
+ (car)
+ (plist-get :secret))))
+ (when (and btc-explorer-bitcoind
+ (json-rpc-live-p btc-explorer-bitcoind))
+ (json-rpc-close btc-explorer-bitcoind))
+ (setq btc-explorer-bitcoind
+ (json-rpc-connect host port user (funcall secret))))))
+
+(use-package! lnd
+ :load-path "~/dev/emacs-lisp/btc-explorer/"
+ :commands (lnd-pick-node)
+ :config
+ (setq lnd-nodes '(("local" "https://localhost:8480/v1/"
+ "/run/media/titan/ext_backup/personal/bitcoin/lnd/data/chain/bitcoin/testnet/admin.macaroon")
+ ("remote" "https://localhost:8481/v1/"
+ "~/dev/emacs-lisp/btc-explorer/admin.macaroon"))))
+
#+end_src
+
#+begin_src emacs-lisp
(use-package! shepherd
:load-path "~/dev/dotfiles/elisp/"
@@ -564,3 +706,12 @@ Emacs mode for managing ledger text files
#+begin_src emacs-lisp
(use-package! mpc)
#+end_src
+
+#+begin_src emacs-lisp
+(use-package! journalctl
+ :load-path "~/dev/dotfiles/elisp"
+ :commands (journalctl))
+#+end_src
+#+begin_src emacs-lisp
+(setq netstat-program-options '("-aptu"))
+#+end_src