emacs-config/init.org.d/80-misc-end.org

5.7 KiB

Other Configurations/Packages

Intro

This is where other packages are configured, that are very short, not worthy of their own file

Ido

Ido is a autocomplete package for emacs' commands

  (use-package ido
    :custom
    (ido-virtual-buffers t)
    (ido-use-faces t)
    :config
    (ido-everywhere t)
    (ido-mode 1))

EWW

Emacs Web WOWSER! This config just sets the download directory

    (use-package eww
      :custom
      (eww-download-directory "~/dls" "location to put downloaded files")
      (eww-search-prefix "https://lite.duckduckgo.com/lite/?q=" "prefix url to do search"))

PDF-Tools

PDF-Tools is a emacs package that provides better PDF support to emacs. It is faster, and less resource intensive compared to Emacs' PDFView mode

  (use-package pdf-tools
    ;; :hook "\\.pdf\\'"
    :config
    (pdf-loader-install)
    :hook
    (pdf-major-mode . (lambda () (fringe-mode 0)))  
    (pdf-outline-buffer-mode . (lambda ()
                                 (display-line-numbers-mode -1))))

Fancy Battery

This shows the battery level on the emacs modeline

  (use-package fancy-battery
    :commands
    fancy-battery-mode
    :bind
    ("s-b b" . fancy-battery-mode))

Rainbow Delimiter

color delimiters (parentheses, brackets, braces, etc) according to their level/depth.

      (use-package rainbow-delimiters
        :hook ((emacs-lisp-mode . rainbow-delimiters-mode)
               (prog-mode . rainbow-delimiters-mode)))

Org Tree Slide

do presentations in Org mode

  (use-package org-tree-slide
        :after org
        :commands
        org-tree-slide-mode
        :config
        (define-key org-tree-slide-mode-map (kbd "<f8>") 'org-tree-slide-mode-next-tree)
        (define-key org-tree-slide-mode-map (kbd "<f9>") 'org-tree-slide-move-next-tree))

Emacs Shell

History

  (add-hook 'eshell-expand-input-functions 'eshell-expand-history-references)

Autocomplete

setup EShell's tab completion to be like bash's

  (add-hook 'eshell-mode-hook (lambda () (setq pcomplete-cycle-completions nil)))
  (setq eshell-cmpl-cycle-completions nil)

Prompt

This sets the prompt to a lambda, for aesthetic reasons

  (setq eshell-prompt-function
        (lambda nil
          (concat
          (propertize (concat
                       "\n# "
                       (user-login-name)
                       "@"
                       (car (split-string system-name "\\."))
                       ":"
                       (file-name-nondirectory (eshell/pwd))
                       (if (= (user-uid) 0) " #λ" " λ"))
          'face `(:inherit 'eshell-prompt :weight bold))
          (propertize " " 'face `(:inherit default)))))
  (setq eshell-highlight-prompt nil)

Undo Tree

a visualizer for Emacs' cool but confusing undo/history system

  (use-package undo-tree
    :diminish
    :custom
    (undo-tree-history-directory-alist `(("." . ,(expand-file-name "cache" user-emacs-directory))) ".undo-tree files dir")
    :config
    (global-undo-tree-mode))

Password store

  ; (use-package password-store)
  ; (use-package pass)

Nov.el

Mode to read epub files

  (use-package nov
    :mode ("\\.epub\\'" . nov-mode))

Elgrep

a built in grep command in emacs

  (use-package elgrep
    :commands elgrep)

Abbrev

Abbrev is helpful for typing long commands, but I don't need to know it in the modeline

  (diminish 'abbrev)

Pinentry

use emacs' internal pinentry

  (use-package pinentry
    :config
    ;; let's get encryption established
    (setenv "GPG_AGENT_INFO" nil)  ;; use emacs pinentry
    (setq auth-source-debug t)

    (setq epg-gpg-program "gpg2")  ;; not necessary
    (require 'epa-file)
    (epa-file-enable)
    (setq epa-pinentry-mode 'loopback)
    (pinentry-start)

    (require 'org-crypt)
    (org-crypt-use-before-save-magic))

Telega

Telegram chat client for Emacs

  (use-package telega
    :commands telega
    :pin "melpa-stable"
    :custom
    (telega-directory (expand-file-name "telega" user-emacs-directory) "set telega runtime files to be inside user-emacs-directory")
    (telega-use-images t)
    (telega-emoji-font-family "Noto Color Emoji")
    (telega-emoji-use-images nil))

Elfeed Web

Elfeed is a emacs package for reading RSS Web News.

  (use-package elfeed
          :commands
          elfeed
          elfeed-update
          :custom
          (elfeed-db-directory (expand-file-name "elfeed" user-emacs-directory)
                               "location for elfeed to put it's database")
          (elfeed-feeds '(("https://feeds.bbci.co.uk/news/technology/rss.xml" bbc technology)
                         ("https://feeds.feedburner.com/rsscna/engnews" taiwan central focustaiwan)
                         ("https://hnrss.org/frontpage.atom" hacker)
                         ("https://www.kernel.org/feeds/kdist.xml" linux kernel)
                         ("https:/hund.tty1.se/feed.xml" hund blog)
                         ("https://opensource.com/feed" opensource)
                         ("https://rss.slashdot.org/Slashdot/slashdot" slashdot technology)
                         ("https://www.cnet.com/rss/news/" cnet technology))
                        "links to the news sources and keywords associated to them"))