- 3 Posts
- 13 Comments
xenodiumOPBto Emacs@communick.news•Emacs Swift module is wonderful for macOS native UX integrationsEnglish1·2 years agoI hope this post brings more visibility to u/vsavchenko’s https://github.com/SavchenkoValeriy/emacs-swift-module and spark more more integrations. u/divinedominion got ideas https://mastodon.social/@ctietze/111470001921901575 Maybe Maps https://xenodium.com/hey-emacs-where-did-i-take-that-photo?
xenodiumOPBto Emacs@communick.news•Emacs Swift module is wonderful for macOS native UX integrationsEnglish1·2 years agoSo far, in the small experiments I’ve done, it’s been fantastic. Thank you! You’ve also done a wonderful job with the documentation https://savchenkovaleriy.github.io/emacs-swift-module/documentation/emacsswiftmodule
I’ll file issues if I run into any troubles.
Apart from https://github.com/roife/emt (which reminded me to look at your project), I haven’t seen other integrations. I’d love to see what others are doing. What are you using it for?
So far, I’m replacing my previous implementations of reveal in finder (w/ selection) and sharing, with a snappy module implementation. Good times :)
Thanks again for the thorough work on it.
xenodiumOPBto Emacs@communick.news•Emacs Swift module is wonderful for macOS native UX integrationsEnglish1·2 years agoIt’s been a solid companion for many years :)
xenodiumOPBto Emacs@communick.news•Emacs Swift module is wonderful for macOS native UX integrationsEnglish1·2 years agoA year ago, u/vsavchenko announced https://www.reddit.com/r/emacs/comments/wemj1z/writing_emacs_dynamic_modules_in_swift. I had been meaning to try it out for some time. Finally had the chance and it’s really neat!
For example, most of the sharing logic from the experiment in the screen grab is below:
try env.defun( "macos-module--share", with: """ Share files in ARG1. ARG1 must be a vector (not a list) of file paths. """ ) { (env: Environment, files: [String]) in let urls = files.map { URL(fileURLWithPath: $0) } let picker = NSSharingServicePicker(items: urls) guard let view = NSApp.mainWindow?.contentView else { return } let x = try env.funcall("macos--emacs-point-x") as Int let y = try env.funcall("macos--emacs-point-y") as Int let rect = NSRect( x: x + 15, y: Int(view.bounds.height) - y + 15, width: 1, height: 1 ) picker.show(relativeTo: rect, of: view, preferredEdge: .maxY) return }
xenodiumBto Emacs@communick.news•Advice from elisp hackers on improvemenets to tuedachu/ytdl?English1·2 years agoI use dwim shell command for these things (async by default). For example https://github.com/xenodium/dwim-shell-command/blob/e4a139fe181ed1b576302fb36f3761fbf9914580/dwim-shell-commands.el#L83C7-L83C7
Disclosure: authored the package
xenodiumBto Emacs@communick.news•just started using emacs elisp guide for beginners?English1·2 years agoIt’s been a while since I’ve updated this page, but I had bookmarked a bunch of elisp things. https://xenodium.com/emacs-lisp-bookmarks
There should be some links there that qualify the requirements, examples:
https://harryrschwartz.com/2014/04/08/an-introduction-to-emacs-lisp.html
https://github.com/abo-abo/elisp-guide
https://github.com/caiorss/Emacs-Elisp-Programming
Having said that, go to the built-in elisp manual to go deeper.
xenodiumBto Emacs@communick.news•Dired: How to move all files in subdirectories to directory above?English1·2 years agoI can think of two options:
M-x find-dired RET RET RET
(or adjust query): which will list all files recursively in dired. You probably don’t need to copy them elsewhere for renaming. UseM-x dired-toggle-read-only
(orC-x C-q
), rename in-place, and commit (toggle againC-x C-q
). https://xenodium.com/batch-renaming-with-counsel-find-dired-and-wdireddired-subtree
: enables drilling down to multipe subdirectories from the same dired buffer. Expand the subdirectories needing management, and edit like 1. (viaC-x C-q
) https://xenodium.com/drill-down-emacs-dired-with-dired-subtree
Edit: markup
i want a video or a proof that emacs is wayy faster and efficient to code on than conventional vim
Watch all of https://emacsrocks.com
As a sneak peek, check out episode 13 (watch til the end)
Probably MELPA hadn’t picked up my changes when you tried it. Maybe update the lckage and try again.
As a macOS user, I typically glue these dired things via dwim-shell-command (disclosure, I wrote that).
Not super tested, but I added dwim-shell-commands-macos-add-to-photos to dwim-shell-commands.el (the optional part of the package).
(defun dwim-shell-commands-macos-add-to-photos () "Add to Photos.app." (interactive) (dwim-shell-command-on-marked-files "Add to Photos.app" "osascript <>\" end tell EOF" :silent-success t :utils "osascript" :on-completion (lambda (buffer process) (if-let ((success (= (process-exit-status process) 0))) (start-process "Open Photos" nil "open" "-a" "Photos") (switch-to-buffer buffer)))))
- Select 1 or multiple photos from dired
- M-x dwim-shell-commands-macos-add-to-photos
ps. This also works on current buffer if you’re viewing an image in a buffer.
Pick any that you like from https://emacsrocks.com. My favourite is https://emacsrocks.com/e13.html well worth watching until the end where it all comes together.