All Projects → jdenen → Mastodon.el

jdenen / Mastodon.el

Licence: gpl-3.0
Emacs client for Mastodon

Projects that are alternatives of or similar to Mastodon.el

Evil Easymotion
⏩ A port of vim easymotion to Emacs' evil-mode
Stars: ✭ 140 (-6.67%)
Mutual labels:  emacs
Mu4e Alert
Desktop notifications and modeline display for mu4e
Stars: ✭ 143 (-4.67%)
Mutual labels:  emacs
Monroe
Clojure nREPL client for Emacs
Stars: ✭ 146 (-2.67%)
Mutual labels:  emacs
Org Graph View
View Org buffers as a clickable, graphical mind-map
Stars: ✭ 141 (-6%)
Mutual labels:  emacs
Org Mode Workshop
Workshop for Org-mode with focus on todo-, project- and workflow-management
Stars: ✭ 141 (-6%)
Mutual labels:  emacs
Webmacs
webmacs - keyboard driven (emacs key bindings) browser, https://webmacs.readthedocs.io/en/latest/
Stars: ✭ 145 (-3.33%)
Mutual labels:  emacs
Elpa
Emacs China ELPA 镜像
Stars: ✭ 137 (-8.67%)
Mutual labels:  emacs
Swiper
Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!
Stars: ✭ 1,948 (+1198.67%)
Mutual labels:  emacs
Monky
Magit for Hg
Stars: ✭ 142 (-5.33%)
Mutual labels:  emacs
Spiral
Emacs Clojure IDE based on UNREPL
Stars: ✭ 146 (-2.67%)
Mutual labels:  emacs
Prism.el
Disperse Lisp forms (and other languages) into a spectrum of colors by depth
Stars: ✭ 141 (-6%)
Mutual labels:  emacs
Hledger Mode
An Emacs major mode for Hledger
Stars: ✭ 142 (-5.33%)
Mutual labels:  emacs
Borg
Assimilate Emacs packages as Git submodules
Stars: ✭ 145 (-3.33%)
Mutual labels:  emacs
Emacs Cl
Common Lisp implemented in Emacs Lisp.
Stars: ✭ 140 (-6.67%)
Mutual labels:  emacs
Emacs Bootstrap
Your on-the-fly Emacs development environment.
Stars: ✭ 147 (-2%)
Mutual labels:  emacs
Tron Legacy Emacs Theme
Original retro-futuristic theme inspired by Tron: Legacy
Stars: ✭ 139 (-7.33%)
Mutual labels:  emacs
Dots
💾 — Dumb & Opinionated Configurations
Stars: ✭ 144 (-4%)
Mutual labels:  emacs
Writingwithemacs
Tips, Examples, and Resources for Writing with Emacs
Stars: ✭ 150 (+0%)
Mutual labels:  emacs
Org Fragtog
Automatically toggle Org mode LaTeX fragment previews as the cursor enters and exits them
Stars: ✭ 149 (-0.67%)
Mutual labels:  emacs
Docker Emacs
Run Emacs in docker containers!
Stars: ✭ 145 (-3.33%)
Mutual labels:  emacs
  • mastodon.el

[[https://melpa.org/#/mastodon][file:https://melpa.org/packages/mastodon-badge.svg]]

[[https://travis-ci.org/jdenen/mastodon.el][https://travis-ci.org/jdenen/mastodon.el.svg?branch=master]] [[http://waffle.io/jdenen/mastodon.el][https://badge.waffle.io/jdenen/mastodon.el.png?label=in%20progress&title=In%20Progress]]

Emacs client for [[https://github.com/tootsuite/mastodon][Mastodon]]

[[http://spacemacs.org][https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]]

** Installation

Clone this repository and add the lisp directory to your load path. Then, require it and go.

#+BEGIN_SRC emacs-lisp (add-to-list 'load-path "/path/to/mastodon.el/lisp") (require 'mastodon) #+END_SRC

Or, with =use-package=:

#+BEGIN_SRC emacs-lisp (use-package mastodon :ensure t) #+END_SRC

*** MELPA

Add =MELPA= to your archives:

#+BEGIN_SRC emacs-lisp (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t) #+END_SRC

Update and install:

=M-x package-refresh-contents RET=

=M-x package-install RET mastodon RET=

*** Emoji

=mastodon-mode= will enable [[https://github.com/iqbalansari/emacs-emojify][Emojify]] if it is loaded in your Emacs environment, so there's no need to write your own hook anymore. =emojify-mode= is not required.

*** Discover

=mastodon-mode= can provide a context menu for its keybindings if [[https://github.com/mickeynp/discover.el][Discover]] is installed. It is not required.

if you have Discover, add the following to your Emacs init configuration:

#+BEGIN_SRC emacs-lisp (require 'mastodon-discover) (with-eval-after-load 'mastodon (mastodon-discover)) #+END_SRC

Or, with =use-package=:

#+BEGIN_SRC emacs-lisp (use-package mastodon :ensure t :config (mastodon-discover)) #+END_SRC

** Usage *** 2 Factor Auth 2FA is not supported yet. It is in the [[https://github.com/jdenen/mastodon.el/milestone/2][plans]] for the =1.0.0= release.

If you have 2FA enabled and try to use mastodon.el, your Emacs client will hang until you C-g your way out. *** Instance

Set =mastodon-instance-url= in your =.emacs= or =customize=. Defaults to the [[https://mastodon.social][flagship]].

#+BEGIN_SRC emacs-lisp (setq mastodon-instance-url "https://my.instance.url") #+END_SRC

There is an option to have your user credentials (email address and password) saved to disk so you don't have to re-enter them on every restart. The default is not to do this because if not properly configured it would save these unencrypted which is not a good default to have. Customize the variable =mastodon-auth-source-file= if you want to enable this feature.

*** Timelines

=M-x mastodon=

Opens a =mastodon-home= buffer in the major mode so you can see toots. You will be prompted for email and password. The app registration process will take place if your =mastodon-token-file= does not contain =:client_id= and =:client_secret=.

**** Keybindings

|-----------------+---------------------------------------------------------| | Key | Action | |-----------------+---------------------------------------------------------| | | /Help/ | | =?= | Open context menu if =discover= is available | | | /Timeline actions/ | | =n= | Go to next item (toot, notification) | | =p= | Go to previous item (toot, notification) | | =M-n=/== | Go to the next interesting thing that has an action | | =M-p=/== | Go to the previous interesting thing that has an action | | =u= | Update timeline | | =#= | Prompt for tag and open its timeline | | =A= | Open author profile of toot under =point= | | =F= | Open federated timeline | | =H= | Open home timeline | | =L= | Open local timeline | | =N= | Open notifications timeline | | =P= | Open profile of user attached to toot under =point= | | =T= | Open thread buffer for toot under =point= | | | /Toot actions/ | | =c= | Toggle content warning content | | =b= | Boost toot under =point= | | =f= | Favourite toot under =point= | | =r= | Reply to toot under =point= | | =n= | Compose a new toot | | | /Switching to other buffers/ | | | /Quitting/ | | =q= | Quit mastodon buffer, leave window open | | =Q= | Quit mastodon buffer and kill window | |-----------------+---------------------------------------------------------|

**** Legend

|--------+-------------------------| | Marker | Meaning | |--------+-------------------------| | =(B)= | I boosted this toot. | | =(F)= | I favourited this toot. | |--------+-------------------------|

*** Toot toot

=M-x mastodon-toot=

Pops a new buffer/window with a =mastodon-toot= minor mode. Enter the contents of your toot here. =C-c C-c= sends the toot. =C-c C-k= cancels. Both actions kill the buffer and window.

If you have not previously authenticated, you will be prompted for your account email and password. NOTE: Email and password are NOT stored by mastodon.el.

Authentication stores your access token in the =mastodon-auth--token= variable. It is not stored on your filesystem, so you will have to re-authenticate when you close/reopen Emacs.

**** Customization The default toot visibility can be changed by setting or customizing the =mastodon-toot--default-visibility= variable. Valid values are ="public"=, ="unlisted"=, ="private"=, or =direct=.

Toot visibility can also be changed on a per-toot basis from the new toot buffer.

**** Keybindings

|-----------+------------------------| | Key | Action | |-----------+------------------------| | =C-c C-c= | Send toot | | =C-c C-k= | Cancel toot | | =C-c C-w= | Add content warning | | =C-c C-v= | Change toot visibility | |-----------+------------------------|

** Roadmap

[[https://github.com/jdenen/mastodon.el/milestone/1][Here]] are the features I plan to implement before putting mastodon.el on MELPA.

[[https://github.com/jdenen/mastodon.el/milestone/2][Here]] are the plans I have for the =1.0.0= release.

** Contributing

PRs, issues, and feature requests are very welcome!

*** Features

  1. Create an [[https://github.com/jdenen/mastodon.el/issues][issue]] detailing the feature you'd like to add.
  2. Fork the repository and create a branch off of =develop=.
  3. Create a pull request referencing the issue created in step 1.

*** Fixes

  1. In an [[https://github.com/jdenen/mastodon.el/issues][issue]], let me know that you're working to fix it.
  2. Fork the repository and create a branch off of =develop=.
  3. Create a pull request referencing the issue from step 1.

** Connect

If you want to get in touch with me, give me a [[https://mastodon.social/@johnson][toot]] or leave an [[https://github.com/jdenen/mastodon.el/issues][issue]].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].