#+TITLE: Transmission layer

#+TAGS: layer|tool

[[file:img/transmission.png]]

* Table of Contents                     :TOC_5_gh:noexport:
- [[#description][Description]]
  - [[#features][Features:]]
- [[#install][Install]]
- [[#faq][FAQ]]
  - [[#how-to-enable-status-auto-refresh][How to enable status auto refresh?]]
- [[#key-bindings][Key bindings]]
  - [[#global][Global]]
  - [[#transmission-mode][=transmission-mode=]]
  - [[#transmission-info-mode][=transmission-info-mode=]]
  - [[#transmission-files-mode][=transmission-files-mode=]]
  - [[#transmission-peers-mode][=transmission-peers-mode=]]

* Description
This layer integrates a BitTorrent client into Spacemacs.

** Features:
- Integration of [[https://transmissionbt.com/][Transmission]] into Emacs.

* Install
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
install and configure =transmission-daemon=. Debian example:

#+BEGIN_SRC sh
  sudo apt-get -y install transmission-daemon
  sudo service transmission-daemon stop
#+END_SRC

Set =rpc-authentication-required= to false (or 0 if it is numeric)
in /etc/transmission-daemon/settings.json or
configure authorization.
See transmission.el [[https://github.com/holomorph/transmission][README.org]] for details.
Start the daemon:

#+BEGIN_SRC sh
  sudo service transmission-daemon start
#+END_SRC

* FAQ
** How to enable status auto refresh?
Add =(transmission :variables transmission-auto-refresh-all t)= to
=dotspacemacs-configuration-layers= or pick modes manually:

#+BEGIN_SRC emacs-lisp
  (setq transmission-refresh-modes '(transmission-mode
                                     transmission-files-mode
                                     transmission-info-mode
                                     transmission-peers-mode))
#+END_SRC

* Key bindings
** Global

| Key binding | Description        |
|-------------+--------------------|
| ~SPC a t t~ | start transmission |

** =transmission-mode=

| Key binding | Description                                                   |
|-------------+---------------------------------------------------------------|
| ~SPC m g t~ | Open a `transmission-files-mode' buffer for torrent at point. |
| ~SPC m a t~ | Add torrent by filename, URL, magnet link, or info hash.      |
| ~SPC m s d~ | Set global download speed limit in kB/s.                      |
| ~SPC m g p~ | Open a =transmission-peers-mode= buffer for torrent at point. |
| ~SPC m g i~ | Open a =transmission-info-mode= buffer for torrent at point.  |
| ~SPC m s l~ | Set global seed ratio limit.                                  |
| ~SPC m m~   | Move torrent at point or in region to a new location.         |
| ~SPC m r~   | Prompt to remove torrent at point or torrents in region.      |
| ~SPC m t s~ | Toggle torrent between started and stopped.                   |
| ~SPC m a a~ | Add announce URLs to torrent or torrents.                     |
| ~SPC m s u~ | Set global upload speed limit in kB/s.                        |
| ~SPC m v~   | Verify torrent at point or in region.                         |
| ~SPC m q~   | Quit and bury the buffer.                                     |
| ~SPC m s b~ | Set bandwidth priority of torrent(s) at point or in region.   |

** =transmission-info-mode=

| Key binding | Description                                                   |
|-------------+---------------------------------------------------------------|
| ~SPC m c~   | Copy magnet link of current torrent.                          |
| ~SPC m s d~ | Set download limit of torrent(s) at point in kB/s.            |
| ~SPC m g p~ | Open a =transmission-peers-mode= buffer for torrent at point. |
| ~SPC m s l~ | Set seed ratio limit of torrent(s) at point.                  |
| ~SPC m m~   | Move torrent at point or in region to a new location.         |
| ~SPC m a a~ | Add announce URLs to torrent or torrents.                     |
| ~SPC m T~   | Remove trackers from torrent at point by ID or announce URL.  |
| ~SPC m s u~ | Set upload limit of torrent(s) at point in kB/s.              |
| ~SPC m s p~ | Set bandwidth priority of torrent(s) at point or in region.   |

** =transmission-files-mode=

| Key binding | Description                                                   |
|-------------+---------------------------------------------------------------|
| ~SPC g f~   | Visit the file at point with =find-file-read-only=.           |
| ~SPC m r~   | Run a command on the file at point.                           |
| ~SPC g p~   | Open a =transmission-peers-mode= buffer for torrent at point. |
| ~SPC g i~   | Open a =transmission-info-mode= buffer for torrent at point.  |
| ~SPC m m~   | Move torrent at point or in region to a new location.         |
| ~SPC m m u~ | Mark file(s) at point or in region as unwanted.               |
| ~SPC m m w~ | Mark file(s) at point or in region as wanted.                 |
| ~SPC s p~   | Set bandwidth priority on file(s) at point or in region.      |

** =transmission-peers-mode=

| Key binding | Description                                                  |
|-------------+--------------------------------------------------------------|
| ~SPC m g i~ | Open a =transmission-info-mode= buffer for torrent at point. |
