feat(macos): add 'open in new iTerm window' command
Plus keybinds on '<leader> o I'. Close: #6318 Co-authored-by: brorbw <brorbw@users.noreply.github.com>
This commit is contained in:
parent
db3ca52ed6
commit
ec2062f517
3 changed files with 29 additions and 5 deletions
|
@ -261,7 +261,8 @@
|
||||||
:desc "Send project to Transmit" "U" #'+macos/send-project-to-transmit
|
:desc "Send project to Transmit" "U" #'+macos/send-project-to-transmit
|
||||||
:desc "Send to Launchbar" "l" #'+macos/send-to-launchbar
|
:desc "Send to Launchbar" "l" #'+macos/send-to-launchbar
|
||||||
:desc "Send project to Launchbar" "L" #'+macos/send-project-to-launchbar
|
:desc "Send project to Launchbar" "L" #'+macos/send-project-to-launchbar
|
||||||
:desc "Open in iTerm" "i" #'+macos/open-in-iterm)
|
:desc "Open in iTerm" "i" #'+macos/open-in-iterm
|
||||||
|
:desc "Open in new iTerm window" "I" #'+macos/open-in-iterm-new-window)
|
||||||
(:when (featurep! :tools docker)
|
(:when (featurep! :tools docker)
|
||||||
:desc "Docker" "D" #'docker)
|
:desc "Docker" "D" #'docker)
|
||||||
(:when (featurep! :email mu4e)
|
(:when (featurep! :email mu4e)
|
||||||
|
|
|
@ -628,7 +628,8 @@
|
||||||
:desc "Send project to Transmit" "U" #'+macos/send-project-to-transmit
|
:desc "Send project to Transmit" "U" #'+macos/send-project-to-transmit
|
||||||
:desc "Send to Launchbar" "l" #'+macos/send-to-launchbar
|
:desc "Send to Launchbar" "l" #'+macos/send-to-launchbar
|
||||||
:desc "Send project to Launchbar" "L" #'+macos/send-project-to-launchbar
|
:desc "Send project to Launchbar" "L" #'+macos/send-project-to-launchbar
|
||||||
:desc "Open in iTerm" "i" #'+macos/open-in-iterm)
|
:desc "Open in iTerm" "i" #'+macos/open-in-iterm
|
||||||
|
:desc "Open in new iTerm window" "I" #'+macos/open-in-iterm-new-window)
|
||||||
(:when (featurep! :tools docker)
|
(:when (featurep! :tools docker)
|
||||||
:desc "Docker" "D" #'docker)
|
:desc "Docker" "D" #'docker)
|
||||||
(:when (featurep! :email mu4e)
|
(:when (featurep! :email mu4e)
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
;;; os/macos/autoload.el -*- lexical-binding: t; -*-
|
;;; os/macos/autoload.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
;;;###autoload
|
(defun +macos-defaults (action &rest args)
|
||||||
|
(apply #'doom-call-process "defaults" action args))
|
||||||
|
|
||||||
(defun +macos-open-with (&optional app-name path)
|
(defun +macos-open-with (&optional app-name path)
|
||||||
"Send PATH to APP-NAME on OSX."
|
"Send PATH to APP-NAME on OSX."
|
||||||
(interactive)
|
(interactive)
|
||||||
|
@ -18,12 +20,29 @@
|
||||||
(message "Running: %s" command)
|
(message "Running: %s" command)
|
||||||
(shell-command command)))
|
(shell-command command)))
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defmacro +macos--open-with (id &optional app dir)
|
(defmacro +macos--open-with (id &optional app dir)
|
||||||
`(defun ,(intern (format "+macos/%s" id)) ()
|
`(defun ,(intern (format "+macos/%s" id)) ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(+macos-open-with ,app ,dir)))
|
(+macos-open-with ,app ,dir)))
|
||||||
|
|
||||||
|
(defmacro +macos--open-with-iterm (id &optional dir newwindow?)
|
||||||
|
`(defun ,(intern (format "+macos/%s" id)) ()
|
||||||
|
(interactive)
|
||||||
|
(letf! ((defun read-newwindows ()
|
||||||
|
(cdr (+macos-defaults
|
||||||
|
"read" "com.googlecode.iterm2" "OpenFileInNewWindows")))
|
||||||
|
(defun write-newwindows (bool)
|
||||||
|
(+macos-defaults
|
||||||
|
"write" "com.googlecode.iterm2" "OpenFileInNewWindows"
|
||||||
|
"-bool" (if bool "true" "false"))))
|
||||||
|
(let ((newwindow?
|
||||||
|
(if newwindow? (not (equal (read-newwindows) "1")))))
|
||||||
|
(when newwindow?
|
||||||
|
(write-newwindows t))
|
||||||
|
(unwind-protect (+macos-open-with "iTerm" ,dir)
|
||||||
|
(when newwindow?
|
||||||
|
(write-newwindows nil)))))))
|
||||||
|
|
||||||
;;;###autoload (autoload '+macos/open-in-default-program "os/macos/autoload" nil t)
|
;;;###autoload (autoload '+macos/open-in-default-program "os/macos/autoload" nil t)
|
||||||
(+macos--open-with open-in-default-program)
|
(+macos--open-with open-in-default-program)
|
||||||
|
|
||||||
|
@ -48,4 +67,7 @@
|
||||||
(or (doom-project-root) default-directory))
|
(or (doom-project-root) default-directory))
|
||||||
|
|
||||||
;;;###autoload (autoload '+macos/open-in-iterm "os/macos/autoload" nil t)
|
;;;###autoload (autoload '+macos/open-in-iterm "os/macos/autoload" nil t)
|
||||||
(+macos--open-with open-in-iterm "iTerm" default-directory)
|
(+macos--open-with-iterm open-in-iterm default-directory)
|
||||||
|
|
||||||
|
;;;###autoload (autoload '+macos/open-in-iterm-new-window "os/macos/autoload" nil t)
|
||||||
|
(+macos--open-with-iterm open-in-iterm-new-window default-directory t)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue