blob: 82e526710fa2808cc49b3f1eb7794ad8e932dfd6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
* mastodon.el
Emacs client for [[https://github.com/tootsuite/mastodon][Mastodon]]
#+CAPTION: built with spacemacs
#+ATTR_HTML: :alt built with spacemacs :href 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
I'll make mastdon.el available on MELPA when I feel like it's reached a
stable state.
Mastodon mode provides a overview of it's shortcuts through [[https://github.com/mickeynp/discover.el][Discover mode]].
To activate Discover mode locally for Mastodon mode buffers add this to your emacs configuration:
#+BEGIN_SRC emacs-lisp
(add-hook 'mastodon-mode-hook 'discover-mode-turn-on)
#+END_SRC
The context menu is then activated by pressing '?'.
** Usage
*** 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
*** App registration
=M-x mastodon-register=
Retrieves =client_id= and =client_secret= tokens. They're stored in the =mastdon-token-file=.
This value can be customized too, and defaults to
=${EMACS_HOME_DIRECTORY}/mastodon.plstore=.
*** Timelines
=M-x mastodon=
Opens a =*mastodon-home*= buffer in the major mode so you can see toots. Keybindings:
|-----+------------------------------------------|
| Key | Action |
|-----+------------------------------------------|
| =F= | Open federated timeline |
| =H= | Open home timeline |
| =L= | Open local timeline |
| =n= | Switch to =mastodon-toot= buffer |
| =q= | Quit mastodon buffer. Leave window open. |
| =Q= | Quit mastodon buffer and kill window. |
| =T= | Prompt for tag and open its timeline |
|-----+------------------------------------------|
*** 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--api-token-string= variable. It is not stored on your
filesystem, so
you will have to re-authenticate when you close/reopen Emacs.
** Roadmap
TODOs for the =1.0.0= release are as far as I plan to roadmap. Repo
issues track the roadmap via a label.
Click [[https://github.com/jdenen/mastodon.el/issues?q=is%3Aopen+is%3Aissue+label%3A%22road+to+1.0.0%22][here]].
Issues labeled as bugs should also be fixed before 1.0.0, but delievered
is better than perfect, so I don't consider them blocking.
Issues labeled as enhancements can happen whenever.
** 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. I'll give you a thumbs up and assign you the issue.
3. Fork the repository and create a branch.
4. 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. I'll assign you the issue.
3. Fork the repository and create a branch.
4. 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]].
|