X-Git-Url: https://njoseph.me/gitweb/nimcoon.git/blobdiff_plain/c30c694e0345ca527c695387aa3f68c0c98ca911..51c1ed3851d643c4308b165a0a2ea81eed21d6f1:/nimcoon.el diff --git a/nimcoon.el b/nimcoon.el new file mode 100644 index 0000000..5fdb2c9 --- /dev/null +++ b/nimcoon.el @@ -0,0 +1,43 @@ +;;; nimcoon.el -*- lexical-binding: t; -*- +;;; +;;; Usage in Doom Emacs +;;; Place or symlink the file into ~/.doom.d/ +;;; (load! "nimcoon") + +;;; Non-interactive functions to respond to URL clicks +(defun nimcoon-play-url (url) + "Play given url in NimCoon" + (start-process "nimcoon" nil "nimcoon" url)) + +;; Play all YouTube URLs in NimCoon +(setq browse-url-browser-function + (quote + (("youtu\\.?be" . nimcoon-play-url) + ("." . browse-url-default-browser)))) + +;;; Interactive functions +(defun nimcoon-feeling-lucky-music(query) + (interactive "sSearch query: ") + (call-process "nimcoon" nil 0 nil "-m" "-l" (format "'%s'" query))) + +(defun nimcoon-feeling-lucky-video(query) + (interactive "sSearch query: ") + (call-process "nimcoon" nil 0 nil "-l" (format "'%s'" query))) + +(defun nimcoon-download-video(query) + (interactive "sSearch query: ") + (call-process "nimcoon" nil 0 nil "-d" "-l" (format "'%s'" query))) + +(defun nimcoon-download-music(query) + (interactive "sSearch query: ") + (call-process "nimcoon" nil 0 nil "-d" "-l" "-m" (format "'%s'" query))) + +;;; Keybindings +(map! :leader + ;;; N --- NimCoon + (:prefix-map ("N" . "NimCoon") + (:prefix ("d" . "Download") + :desc "Video" "v" #'nimcoon-download-video + :desc "Music" "m" #'nimcoon-download-music) + :desc "Video" "v" #'nimcoon-feeling-lucky-video + :desc "Music" "m" #'nimcoon-feeling-lucky-music))