emacs: Add transmission mode.

This commit is contained in:
Kevin Baensch 2019-12-18 09:48:37 +01:00
parent 6987397142
commit bf80718916
Signed by: derped
GPG key ID: C0F1D326C7626543
2 changed files with 50 additions and 0 deletions

View file

@ -30,9 +30,12 @@ with lib;
# "emacs::powerline"
"emacs::nix-mode"
"emacs::magit"
"emacs::mu4e"
"emacs::org"
"emacs::elpy"
"emacs::transmission"
# "emacs::rust"
# "emacs::lsp"
"extra"
"cpp"
"haskell"

View file

@ -0,0 +1,47 @@
{ config, lib, pkgs, ... }:
with lib;
mkIf (elem "emacs::transmission" config.machine.pkgs) {
programs.emacs.init.usePackage = {
transmission = {
enable = true;
defer = true;
command = [ "transmission" ];
bindLocal = {
transmission-mode-map = {
"A" = ''(lambda ()
(interactive)
(transmission-add (read-string "Magnet URI: ")))'';
};
};
config = ''
;; Auto refresh for all transmission buffers
(setq transmission-refresh-modes '(transmission-mode
transmission-files-mode
transmission-info-mode
transmission-peers-mode))
(defun transmission ()
"Open a `transmission-mode' buffer."
(interactive)
(let* ((name "*transmission*")
(buffer (or (get-buffer name)
(generate-new-buffer name))))
(transmission-turtle-poll)
(unless (eq buffer (current-buffer))
(with-current-buffer buffer
(unless (eq major-mode 'transmission-mode)
(condition-case e
(progn
(transmission-mode)
(transmission-draw)
(goto-char (point-min)))
(error
(kill-buffer buffer)
(signal (car e) (cdr e))))))
(switch-to-buffer buffer))))
'';
};
};
}