tweaks to toggle changes and empv
This commit is contained in:
parent
51e283e587
commit
476b820019
60
README.org
60
README.org
|
@ -581,6 +581,9 @@ Here let's try to add ligatures to our font system since the VictorMono Nerd Fon
|
||||||
There are two major packages we need to get the functionality I desire. Evil and general.
|
There are two major packages we need to get the functionality I desire. Evil and general.
|
||||||
|
|
||||||
*** Evil
|
*** Evil
|
||||||
|
:PROPERTIES:
|
||||||
|
:ID: 20250304T164537.064599
|
||||||
|
:END:
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package evil
|
(use-package evil
|
||||||
|
@ -614,6 +617,12 @@ This evil-collection package includes a lot of other evil based things.
|
||||||
:after evil
|
:after evil
|
||||||
:init (evil-escape-mode +1)
|
:init (evil-escape-mode +1)
|
||||||
:config
|
:config
|
||||||
|
(defun chris/toggle-evil-escape-sequence ()
|
||||||
|
(interactive)
|
||||||
|
(if (string= evil-escape-key-sequence "ae")
|
||||||
|
(setq evil-escape-key-sequence "fd")
|
||||||
|
(setq evil-escape-key-sequence "ae")))
|
||||||
|
|
||||||
(setq evil-escape-key-sequence (kbd "ae")
|
(setq evil-escape-key-sequence (kbd "ae")
|
||||||
evil-escape-delay 0.3))
|
evil-escape-delay 0.3))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
@ -5049,25 +5058,34 @@ With empv we can perhaps control mpv much more fine grainly and even search yout
|
||||||
(message args)
|
(message args)
|
||||||
(empv-play-or-enqueue video))
|
(empv-play-or-enqueue video))
|
||||||
|
|
||||||
(defun chris/empv-yt-dlp ()
|
(defun chris/empv-yt-dlp (&optional file)
|
||||||
"Download the current video and and play it"
|
"Download the current video and and play it"
|
||||||
(interactive)
|
(interactive)
|
||||||
(let* ((item (empv-youtube-results--current-item))
|
(setq lexical-binding t)
|
||||||
(video-id (alist-get 'videoId item))
|
(let* ((item (when (not file) (empv-youtube-results--current-item)))
|
||||||
(playlist-id (alist-get 'playlistId item))
|
(video-id (when (not file) (alist-get 'videoId item)))
|
||||||
(title (alist-get 'title item))
|
(playlist-id (when (not file) (alist-get 'playlistId item)))
|
||||||
(url (format
|
(title (if file (shell-command
|
||||||
|
(format "yt-dlp --get-title %s" file))
|
||||||
|
(alist-get 'title item)))
|
||||||
|
(url (if file file
|
||||||
|
(format
|
||||||
"https://youtube.com/%s=%s"
|
"https://youtube.com/%s=%s"
|
||||||
(if video-id "watch?v" "playlist?list")
|
(if video-id "watch?v" "playlist?list")
|
||||||
(or video-id playlist-id))))
|
(or video-id playlist-id)))))
|
||||||
(async-shell-command (concat
|
(message url)
|
||||||
"yt-dlp" " -o '/home/chris/vids/%(title)s.%(ext)s'"
|
(async-start-process
|
||||||
" \"" url "\""))
|
"yt-dlp" "yt-dlp"
|
||||||
|
(lambda ()
|
||||||
(let ((file (format "/home/chris/vids/%s.%s" title "webm")))
|
(let ((file (format "/home/chris/vids/%s.%s" title "webm")))
|
||||||
(empv-play file))
|
(empv-play-or-enqueue file))
|
||||||
(message url)))
|
(message "here be the url %s" url))
|
||||||
|
"-o" "'/home/chris/vids/%(title)s.%(ext)s'" url)))
|
||||||
|
|
||||||
(defun chris/empv-yt-dlp-jellyfin ()
|
(get-process "yt-dlp")
|
||||||
|
(chris/empv-yt-dlp "https://inv.cochrun.xyz/watch?v=qRE6kf30u4g")
|
||||||
|
|
||||||
|
(defun chris/empv-yt-dlp-jellyfin ()
|
||||||
"Grabs the current video at point and downloads it to my jellyfin server"
|
"Grabs the current video at point and downloads it to my jellyfin server"
|
||||||
(interactive)
|
(interactive)
|
||||||
(let* ((server "jelly.cochrun.xyz")
|
(let* ((server "jelly.cochrun.xyz")
|
||||||
|
@ -5088,7 +5106,7 @@ With empv we can perhaps control mpv much more fine grainly and even search yout
|
||||||
" '" url "'" "\""))
|
" '" url "'" "\""))
|
||||||
(message (format "%s is downloading to the %s folder on jellyfin" url location))))
|
(message (format "%s is downloading to the %s folder on jellyfin" url location))))
|
||||||
|
|
||||||
(defun chris/empv-org-play-link (&optional link)
|
(defun chris/empv-org-play-link (&optional link)
|
||||||
"Play link in empv from either supplied link or link at point in org-mode"
|
"Play link in empv from either supplied link or link at point in org-mode"
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((link (if link
|
(let ((link (if link
|
||||||
|
@ -5096,19 +5114,19 @@ With empv we can perhaps control mpv much more fine grainly and even search yout
|
||||||
(org-babel-read-link))))
|
(org-babel-read-link))))
|
||||||
(empv-play link)))
|
(empv-play link)))
|
||||||
|
|
||||||
(defun chris/dired-empv-play-or-enqueue ()
|
(defun chris/dired-empv-play-or-enqueue ()
|
||||||
"Play file at point in dired"
|
"Play file at point in dired"
|
||||||
(interactive)
|
(interactive)
|
||||||
(let* ((file (dired-get-filename)))
|
(let* ((file (dired-get-filename)))
|
||||||
(empv-play-or-enqueue file)))
|
(empv-play-or-enqueue file)))
|
||||||
|
|
||||||
(defun chris/empv-seek-forward ()
|
(defun chris/empv-seek-forward ()
|
||||||
"Seek forward 20 seconds"
|
"Seek forward 20 seconds"
|
||||||
(interactive)
|
(interactive)
|
||||||
(empv-seek "20"))
|
(empv-seek "20"))
|
||||||
|
|
||||||
:general
|
:general
|
||||||
(chris/leader-keys
|
(chris/leader-keys
|
||||||
:states 'normal
|
:states 'normal
|
||||||
:keymaps 'override
|
:keymaps 'override
|
||||||
"vo" 'empv-play-or-enqueue
|
"vo" 'empv-play-or-enqueue
|
||||||
|
@ -5120,7 +5138,7 @@ With empv we can perhaps control mpv much more fine grainly and even search yout
|
||||||
"vp" 'empv-playlist-prev
|
"vp" 'empv-playlist-prev
|
||||||
"vs" 'empv-playlist-select
|
"vs" 'empv-playlist-select
|
||||||
"vS" 'chris/empv-seek-forward)
|
"vS" 'chris/empv-seek-forward)
|
||||||
(general-def
|
(general-def
|
||||||
:states 'normal
|
:states 'normal
|
||||||
:keymaps 'empv-youtube-results-mode-map
|
:keymaps 'empv-youtube-results-mode-map
|
||||||
"q" 'kill-current-buffer
|
"q" 'kill-current-buffer
|
||||||
|
@ -5128,7 +5146,7 @@ With empv we can perhaps control mpv much more fine grainly and even search yout
|
||||||
"i" 'empv-youtube-results-inspect
|
"i" 'empv-youtube-results-inspect
|
||||||
"d" 'chris/empv-yt-dlp
|
"d" 'chris/empv-yt-dlp
|
||||||
"D" 'chris/empv-yt-dlp-jellyfin)
|
"D" 'chris/empv-yt-dlp-jellyfin)
|
||||||
(general-def
|
(general-def
|
||||||
:states 'normal
|
:states 'normal
|
||||||
:keymaps 'dired-mode-map
|
:keymaps 'dired-mode-map
|
||||||
"vi" 'chris/dired-empv-play-or-enqueue))
|
"vi" 'chris/dired-empv-play-or-enqueue))
|
||||||
|
@ -5272,7 +5290,7 @@ q quit-window
|
||||||
(elfeed-search-untag-all-unread)
|
(elfeed-search-untag-all-unread)
|
||||||
(if (process-live-p proc)
|
(if (process-live-p proc)
|
||||||
(set-process-sentinel
|
(set-process-sentinel
|
||||||
proc `(empv-play-or-enqueue
|
proc `(empv-enqueue
|
||||||
,(concat "/home/chris/vids/" title ".webm")))
|
,(concat "/home/chris/vids/" title ".webm")))
|
||||||
(message "No process running"))))
|
(message "No process running"))))
|
||||||
|
|
||||||
|
|
57
init.el
57
init.el
|
@ -350,6 +350,12 @@
|
||||||
:after evil
|
:after evil
|
||||||
:init (evil-escape-mode +1)
|
:init (evil-escape-mode +1)
|
||||||
:config
|
:config
|
||||||
|
(defun chris/toggle-evil-escape-sequence ()
|
||||||
|
(interactive)
|
||||||
|
(if (string= evil-escape-key-sequence "ae")
|
||||||
|
(setq evil-escape-key-sequence "fd")
|
||||||
|
(setq evil-escape-key-sequence "ae")))
|
||||||
|
|
||||||
(setq evil-escape-key-sequence (kbd "ae")
|
(setq evil-escape-key-sequence (kbd "ae")
|
||||||
evil-escape-delay 0.3))
|
evil-escape-delay 0.3))
|
||||||
|
|
||||||
|
@ -3698,25 +3704,34 @@ targets."
|
||||||
(message args)
|
(message args)
|
||||||
(empv-play-or-enqueue video))
|
(empv-play-or-enqueue video))
|
||||||
|
|
||||||
(defun chris/empv-yt-dlp ()
|
(defun chris/empv-yt-dlp (&optional file)
|
||||||
"Download the current video and and play it"
|
"Download the current video and and play it"
|
||||||
(interactive)
|
(interactive)
|
||||||
(let* ((item (empv-youtube-results--current-item))
|
(setq lexical-binding t)
|
||||||
(video-id (alist-get 'videoId item))
|
(let* ((item (when (not file) (empv-youtube-results--current-item)))
|
||||||
(playlist-id (alist-get 'playlistId item))
|
(video-id (when (not file) (alist-get 'videoId item)))
|
||||||
(title (alist-get 'title item))
|
(playlist-id (when (not file) (alist-get 'playlistId item)))
|
||||||
(url (format
|
(title (if file (shell-command
|
||||||
|
(format "yt-dlp --get-title %s" file))
|
||||||
|
(alist-get 'title item)))
|
||||||
|
(url (if file file
|
||||||
|
(format
|
||||||
"https://youtube.com/%s=%s"
|
"https://youtube.com/%s=%s"
|
||||||
(if video-id "watch?v" "playlist?list")
|
(if video-id "watch?v" "playlist?list")
|
||||||
(or video-id playlist-id))))
|
(or video-id playlist-id)))))
|
||||||
(async-shell-command (concat
|
(message url)
|
||||||
"yt-dlp" " -o '/home/chris/vids/%(title)s.%(ext)s'"
|
(async-start-process
|
||||||
" \"" url "\""))
|
"yt-dlp" "yt-dlp"
|
||||||
|
(lambda ()
|
||||||
(let ((file (format "/home/chris/vids/%s.%s" title "webm")))
|
(let ((file (format "/home/chris/vids/%s.%s" title "webm")))
|
||||||
(empv-play file))
|
(empv-play-or-enqueue file))
|
||||||
(message url)))
|
(message "here be the url %s" url))
|
||||||
|
"-o" "'/home/chris/vids/%(title)s.%(ext)s'" url)))
|
||||||
|
|
||||||
(defun chris/empv-yt-dlp-jellyfin ()
|
(get-process "yt-dlp")
|
||||||
|
(chris/empv-yt-dlp "https://inv.cochrun.xyz/watch?v=qRE6kf30u4g")
|
||||||
|
|
||||||
|
(defun chris/empv-yt-dlp-jellyfin ()
|
||||||
"Grabs the current video at point and downloads it to my jellyfin server"
|
"Grabs the current video at point and downloads it to my jellyfin server"
|
||||||
(interactive)
|
(interactive)
|
||||||
(let* ((server "jelly.cochrun.xyz")
|
(let* ((server "jelly.cochrun.xyz")
|
||||||
|
@ -3737,7 +3752,7 @@ targets."
|
||||||
" '" url "'" "\""))
|
" '" url "'" "\""))
|
||||||
(message (format "%s is downloading to the %s folder on jellyfin" url location))))
|
(message (format "%s is downloading to the %s folder on jellyfin" url location))))
|
||||||
|
|
||||||
(defun chris/empv-org-play-link (&optional link)
|
(defun chris/empv-org-play-link (&optional link)
|
||||||
"Play link in empv from either supplied link or link at point in org-mode"
|
"Play link in empv from either supplied link or link at point in org-mode"
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((link (if link
|
(let ((link (if link
|
||||||
|
@ -3745,19 +3760,19 @@ targets."
|
||||||
(org-babel-read-link))))
|
(org-babel-read-link))))
|
||||||
(empv-play link)))
|
(empv-play link)))
|
||||||
|
|
||||||
(defun chris/dired-empv-play-or-enqueue ()
|
(defun chris/dired-empv-play-or-enqueue ()
|
||||||
"Play file at point in dired"
|
"Play file at point in dired"
|
||||||
(interactive)
|
(interactive)
|
||||||
(let* ((file (dired-get-filename)))
|
(let* ((file (dired-get-filename)))
|
||||||
(empv-play-or-enqueue file)))
|
(empv-play-or-enqueue file)))
|
||||||
|
|
||||||
(defun chris/empv-seek-forward ()
|
(defun chris/empv-seek-forward ()
|
||||||
"Seek forward 20 seconds"
|
"Seek forward 20 seconds"
|
||||||
(interactive)
|
(interactive)
|
||||||
(empv-seek "20"))
|
(empv-seek "20"))
|
||||||
|
|
||||||
:general
|
:general
|
||||||
(chris/leader-keys
|
(chris/leader-keys
|
||||||
:states 'normal
|
:states 'normal
|
||||||
:keymaps 'override
|
:keymaps 'override
|
||||||
"vo" 'empv-play-or-enqueue
|
"vo" 'empv-play-or-enqueue
|
||||||
|
@ -3769,7 +3784,7 @@ targets."
|
||||||
"vp" 'empv-playlist-prev
|
"vp" 'empv-playlist-prev
|
||||||
"vs" 'empv-playlist-select
|
"vs" 'empv-playlist-select
|
||||||
"vS" 'chris/empv-seek-forward)
|
"vS" 'chris/empv-seek-forward)
|
||||||
(general-def
|
(general-def
|
||||||
:states 'normal
|
:states 'normal
|
||||||
:keymaps 'empv-youtube-results-mode-map
|
:keymaps 'empv-youtube-results-mode-map
|
||||||
"q" 'kill-current-buffer
|
"q" 'kill-current-buffer
|
||||||
|
@ -3777,7 +3792,7 @@ targets."
|
||||||
"i" 'empv-youtube-results-inspect
|
"i" 'empv-youtube-results-inspect
|
||||||
"d" 'chris/empv-yt-dlp
|
"d" 'chris/empv-yt-dlp
|
||||||
"D" 'chris/empv-yt-dlp-jellyfin)
|
"D" 'chris/empv-yt-dlp-jellyfin)
|
||||||
(general-def
|
(general-def
|
||||||
:states 'normal
|
:states 'normal
|
||||||
:keymaps 'dired-mode-map
|
:keymaps 'dired-mode-map
|
||||||
"vi" 'chris/dired-empv-play-or-enqueue))
|
"vi" 'chris/dired-empv-play-or-enqueue))
|
||||||
|
@ -3839,7 +3854,7 @@ targets."
|
||||||
(elfeed-search-untag-all-unread)
|
(elfeed-search-untag-all-unread)
|
||||||
(if (process-live-p proc)
|
(if (process-live-p proc)
|
||||||
(set-process-sentinel
|
(set-process-sentinel
|
||||||
proc `(empv-play-or-enqueue
|
proc `(empv-enqueue
|
||||||
,(concat "/home/chris/vids/" title ".webm")))
|
,(concat "/home/chris/vids/" title ".webm")))
|
||||||
(message "No process running"))))
|
(message "No process running"))))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue