Skip to content
This repository has been archived by the owner on Jun 2, 2022. It is now read-only.

akirak/corefighter.el

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

corefighter.el

https://travis-ci.org/akirak/corefighter.el.svg?branch=master

Core Fighter (corefighter.el) lets you choose the next action in Emacs. With properly configured modules, it fetches information from external sources and arranges tasks for you.

Features

  • Multiple interfaces: Sidebar, helm, and no window
  • Extensibility through modules
  • List-oriented: Each module is a feed that provides links to items

Prerequisites

  • Emacs 25.1
  • page-break-lines
  • dash.el
  • ov.el

Configuration

An example configuration with use-package (and straight.el) is:

(use-package corefighter
  ;; If you use straight.el
  :straight (corefighter :host github
                         :repo "akirak/corefighter.el"
                         :files
                         (:defaults
                          (:exclude "helm-corefighter.el")))
  :commands (corefighter-sidebar
             corefighter-next-item
             corefighter-next-module
             corefighter-first-item)
  :init
  (global-set-key (kbd "C-c h") #'corefighter-sidebar)
  (global-set-key (kbd "<S-f12>") #'corefighter-next-item)
  :config
  ;; Configure the module list
  (setq corefighter-modules
        '((corefighter-org-agenda)))
  (corefighter-load-modules))

;; helm-corefighter (optional)
(use-package helm-corefighter
  :straight (helm-corefighter :host github :repo "akirak/corefighter.el"
                              :files ("helm-corefighter.el"))
  :commands (helm-corefighter))

If you don’t use use-package, you probably can configure it like this:

(autoload 'corefighter-sidebar "corefighter")
(setq corefighter-modules
      '((corefighter-org-agenda)))
(with-eval-after-load 'corefighter
  (corefighter-load-modules))

;; helm-corefighter (optional)
(autoload 'helm-corefighter "helm-corefighter")

That is, you have to set corefighter-modules variable properly (which is described in the subsequent subsection) and then call (corefighter-load-modules) after that.

Modules

See this wiki page.

Usage

Run corefighter-sidebar to pop up a sidebar window.

There is also helm-corefighter command, which lets you browse items via Helm. In the Helm session, you can use helm-persistent-action (C-j) to preview an item without closing Helm.

You can even navigate to an item without any extra window using the following commands:

  • corefighter-next-item visits the next item or the first item in the next module (or even another module if it doesn’t have an item).
  • corefighter-next-module visits the first item the next module.
  • corefighter-first-item visits the first item in all modules.

Keybindings inside the sidebar

The following keybindgs are available in the sidebar buffer:

  • n / p to go to the next/previous link
  • RET to follow the link, and SPC to open the link but remain in the sidebar window
  • TAB / S-TAB to go to the next/previous section
  • g to refresh
    • With a prefix, g reloads items in all modules.
  • q to close the window

Comparisons

  • Dashboard is a buffer displayed in a normal Emacs window. Core Fighter is a sidebar.
  • While Dashboard allows you to freely layout individual sections (called widgets), the main dashboard application is less aware of its contents. Core Fighter is based on a list-oriented model of modules, so modules are more introspective.

Sauron is a background application to keep track of events in Emacs. In theory, Core Fighter can support features similar to Sauron by updating items in the background by watching external stuffs. Or maybe a Sauron module can be added to Core Fighter.

Make Core Fighter more like Sauron

The following is a list of features to add to make Core Fighter compete with Sauron:

  • [ ] Manage notifications
  • [ ] A pop-up window to display urgent items/modules
  • [ ] Integration with alert

Yoke.io is a web application that displays statuses of a bunch of external services. The module model of Core Fighter is analogous to the card model of Yoke.io. Core Fighter wishes to become Yoke.io for Emacs.

About

Choosing the next GTD action smartly in Emacs

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published