#+TITLE:  Auxillary and Optional Applications
#+AUTHOR: Howard X. Abrams
#+DATE:   2021-11-18

A literate programming file for helper apps in Emacs.

#+begin_src emacs-lisp :exports none
  ;;; ha-aux-apps --- Configuring helper apps in Emacs. -*- lexical-binding: t; -*-
  ;;
  ;; © 2021-2022 Howard X. Abrams
  ;;   Licensed under a Creative Commons Attribution 4.0 International License.
  ;;   See http://creativecommons.org/licenses/by/4.0/
  ;;
  ;; Author: Howard X. Abrams <http://gitlab.com/howardabrams>
  ;; Maintainer: Howard X. Abrams
  ;; Created: November 18, 2021
  ;;
  ;; This file is not part of GNU Emacs.
  ;;
  ;; *NB:* Do not edit this file. Instead, edit the original literate file at:
  ;;            ~/other/hamacs/ha-aux-apps.org
  ;;       And tangle the file to recreate this one.
  ;;
  ;;; Code:
  #+end_src
* Introduction
The following applications are not needed. I alternate between trying to /stay in Emacs/ taking advantage of the consistent interface, and using a stand-alone app on my Workday computer.
* Twitter
The venerable [[https://github.com/hayamiz/twittering-mode/tree/master][twittering-mode]] allows me to follow all the twits.

#+begin_src emacs-lisp
  (use-package twittering-mode
    :init
    (setq twittering-use-master-password t
          epa-pinentry-mode 'loopback)
    :config
    (defalias 'epa--decode-coding-string 'decode-coding-string)
    (ha-leader "a t" '("twitter" . twit)))
#+end_src
* Telega
I'm thinking the [[https://zevlg.github.io/telega.el/][Telega package]] would be better than Bitlbee for Telegram communication. Seems to have a bug on the Melpa version, so I'm keeping this to the =HEAD=, if I've cloned it.

#+begin_src emacs-lisp
  (when (file-exists-p "~/other/telega.el")
    (use-package telega
      :straight (:local-repo "~/other/telega.el")
      :commands (telega)
      :init
      (setq telega-use-images nil)
      :config
      (ha-leader "a T" 'telega)))
#+end_src
For some reason, you need [[https://github.com/Fanael/rainbow-identifiers][rainbow-identifiers]] to work, oh, I guess the docs state this.
* RPG DM
Been working on a project for getting Emacs helping as a /Dungeon Master's Assistant/, and I must say, it is coming along nicely. In case you are reading this, let me know, and I'll start to share it.

#+begin_src emacs-lisp
  (when (f-directory? "~/other/rpgdm")
    (use-package rpgdm
      :straight (:local-repo "~/other/rpgdm")
      :commands (rpgdm-mode rpgdm-tables-load)
      :init (setq rpgdm-base (expand-file-name "~/other/rpgdm"))
      :config (ha-leader "t D" '("rpg dm" . rpgdm-mode))))
#+end_src
And my new Ironsworn project:

#+begin_src emacs-lisp
  (when (f-directory? "~/other/emacs-ironsworn")
    (use-package rpgdm-ironsworn
      :after rpgdm
      :straight (:local-repo "~/other/emacs-ironsworn")
      :init
      (setq rpgdm-ironsworn-project (expand-file-name "~/other/emacs-ironsworn")
            ;; Ignore org links that call my RPG functions:
            org-link-elisp-skip-confirm-regexp (rx string-start (optional "(") "rpgdm-"
                                                   (or "tables-" "ironsworn-")
                                                   (one-or-more any)))))
#+end_src
* Technical Artifacts                                :noexport:
Let's =provide= a name so we can =require= this file:

#+begin_src emacs-lisp :exports none
  (provide 'ha-aux-apps)
  ;;; ha-aux-apps.el ends here
  #+end_src

#+DESCRIPTION: A literate programming file for helper apps in Emacs.

#+PROPERTY:    header-args:sh :tangle no
#+PROPERTY:    header-args:emacs-lisp  :tangle yes
#+PROPERTY:    header-args    :results none :eval no-export :comments no mkdirp yes

#+OPTIONS:     num:nil toc:nil todo:nil tasks:nil tags:nil date:nil
#+OPTIONS:     skip:nil author:nil email:nil creator:nil timestamp:nil
#+INFOJS_OPT:  view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js