blob: b55dd4abf980a4d452bee7bcc86e3e00956d5e87 (
plain)
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
|
;;; -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
(defun bd/file-has-extension? (file types)
"Returns t if file has an extension in LST, nil otherwise."
(string-match (regexp-opt lst) (or (file-name-extension file) "")))
(defmacro bd/defun-find-file-wrapper (name types open-f)
`(defun ,name (f &rest args)
"Wrapper around F (find-file), passing ARGS."
(if (bd/file-has-extension? (car args) ,types)
(progn
(,(eval open-f) (car args))
(recentf-add-file (car args))
nil)
(apply f args))))
;;;; dired
(require 'dired)
(keymap-global-set "C-c d" 'dired-jump)
(keymap-set dired-mode-map "h" #'dired-hide-details-mode)
(setopt dired-listing-switches "-alhLG --time-style=long-iso --group-directories-first"
dired-recursive-copies 'always
dired-recursive-deletes 'always
dired-auto-revert-buffer t
;; "dwim": guess where to move files
dired-dwim-target t
dired-guess-shell-alist-user
`((,(regexp-opt '(".jpeg" ".jpg" ".png")) "nsxiv &")
(,(regexp-opt '(".pdf")) "pdftotext -nopgbrk -enc UTF-8 -eol unix -layout")
(,(regexp-opt '(".html")) "icecat &")))
;; pdf
(defun bd/zathura (file)
"Open FILE with zathura"
(interactive)
(start-process (concat "zathura (" (file-name-base file) ")") nil "zathura" (expand-file-name file)))
(bd/defun-find-file-wrapper bd/pdf-find-file-wrapper '("epub" "pdf") #'bd/zathura)
(advice-add 'find-file :around #'bd/pdf-find-file-wrapper)
;; video
(defun bd/mpv (file)
"Open FILE with mpv"
(start-process (concat "mpv (" (file-name-base file) ")") nil "mpv" "--force-window=yes" (expand-file-name file)))
(bd/defun-find-file-wrapper bd/video-find-file-wrapper
'("mkv" "mov" "mp4" "webm" "m4v" "wav" "mp3" "opus" "ogv" "flac")
#'bd/mpv)
(advice-add 'find-file :around 'bd/video-find-file-wrapper)
;;;; transmission
(use-package transmission
:bind
(:map transmission-mode-map
("R" . #'transmission-move)))
(provide 'bd--files)
;;; bd-files ends here
|