Move :tools macos to :os macos

This commit is contained in:
Henrik Lissner 2020-08-20 02:10:25 -04:00
parent 7081d833f6
commit f4ec42ae5c
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
8 changed files with 117 additions and 51 deletions

View file

@ -39,7 +39,8 @@ run before `doom-init-modules-hook'. Relevant to `doom-module-init-file'.")
(vterm (:term vterm)) (vterm (:term vterm))
(password-store (:tools pass)) (password-store (:tools pass))
(flycheck (:checkers syntax)) (flycheck (:checkers syntax))
(flyspell (:checkers spell))) (flyspell (:checkers spell))
(macos (:os macos)))
(:emacs (electric-indent (:emacs electric)) (:emacs (electric-indent (:emacs electric))
(hideshow (:editor fold)) (hideshow (:editor fold))
(eshell (:term eshell)) (eshell (:term eshell))

View file

@ -154,6 +154,7 @@ Modules that bring support for a language or group of languages to Emacs.
* :os * :os
Modules to improve integration into your OS, system, or devices. Modules to improve integration into your OS, system, or devices.
+ [[file:/mnt/projects/conf/doom-emacs/modules/os/macos/README.org][macos]] - Improve Emacs' compatibility with macOS
+ tty =+osc= - Improves the terminal Emacs experience. + tty =+osc= - Improves the terminal Emacs experience.
* :term * :term
@ -178,7 +179,6 @@ Small modules that give Emacs access to external tools & services.
+ [[file:../modules/tools/lookup/README.org][lookup]] =+dictionary +docsets +offline= - Universal jump-to & documentation lookup + [[file:../modules/tools/lookup/README.org][lookup]] =+dictionary +docsets +offline= - Universal jump-to & documentation lookup
backend backend
+ [[file:../modules/tools/lsp/README.org][lsp]] =+peek +eglot= - Installation and configuration of language server protocol client (lsp-mode or eglot) + [[file:../modules/tools/lsp/README.org][lsp]] =+peek +eglot= - Installation and configuration of language server protocol client (lsp-mode or eglot)
+ macos - TODO
+ [[file:../modules/tools/magit/README.org][magit]] =+forge= - TODO + [[file:../modules/tools/magit/README.org][magit]] =+forge= - TODO
+ make - TODO + make - TODO
+ pass =+auth= - TODO + pass =+auth= - TODO

View file

@ -93,7 +93,6 @@
;;gist ; interacting with github gists ;;gist ; interacting with github gists
lookup ; navigate your code and its documentation lookup ; navigate your code and its documentation
;;lsp ;;lsp
;;macos ; MacOS-specific commands
magit ; a git porcelain for Emacs magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs ;;make ; run make tasks from Emacs
;;pass ; password manager for nerds ;;pass ; password manager for nerds
@ -106,6 +105,7 @@
;;upload ; map local to remote projects via ssh/ftp ;;upload ; map local to remote projects via ssh/ftp
:os :os
(:if IS-MAC macos) ; improve compatibility with macOS
;;tty ; improve the terminal Emacs experience ;;tty ; improve the terminal Emacs experience
:lang :lang

View file

@ -0,0 +1,42 @@
#+TITLE: os/macos
#+DATE: February 19, 2017
#+SINCE: v1.3
#+STARTUP: inlineimages nofold
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#maintainers][Maintainers]]
- [[#plugins][Plugins]]
- [[#features][Features]]
- [[#open-with-x]["Open with X"]]
* Description
This module provides extra functionality for macOS.
** Module Flags
This module provides no flags.
** Maintainers
This module has no dedicated maintainers
** Plugins
+ [[https://github.com/emacsorphanage/osx-trash][osx-trash]]
+ [[https://github.com/purcell/ns-auto-titlebar][ns-auto-titlebar]]
* Features
** "Open with X"
This module adds various macOS-specific launchers under the =SPC o= prefix (=C-c
o= for users with Evil disabled).
It also enables Keychain integration for =auth-source=. This is used by our [[file:../../../modules/app/irc/README.org][irc]]
and [[file:../../../modules/tools/magit/README.org][magit]]-forge modules, for instance.
To support GitHub Forge add an internet password like this to your keychain:
| Field | Value |
|----------+-------------------------|
| Name | api.github.com |
| Kind | Internet password |
| Account | <username>^forge |
| Where | https://api.github.com/ |
| Password | <token> |

View file

@ -1,7 +1,4 @@
;;; tools/macos/autoload.el -*- lexical-binding: t; -*- ;;; os/macos/autoload.el -*- lexical-binding: t; -*-
;;;###autoload
(setq locate-command "mdfind")
;;;###autoload ;;;###autoload
(defun +macos-open-with (&optional app-name path) (defun +macos-open-with (&optional app-name path)
@ -27,28 +24,28 @@
(interactive) (interactive)
(+macos-open-with ,app ,dir))) (+macos-open-with ,app ,dir)))
;;;###autoload (autoload '+macos/open-in-default-program "tools/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)
;;;###autoload (autoload '+macos/reveal-in-finder "tools/macos/autoload" nil t) ;;;###autoload (autoload '+macos/reveal-in-finder "os/macos/autoload" nil t)
(+macos--open-with reveal-in-finder "Finder" default-directory) (+macos--open-with reveal-in-finder "Finder" default-directory)
;;;###autoload (autoload '+macos/reveal-project-in-finder "tools/macos/autoload" nil t) ;;;###autoload (autoload '+macos/reveal-project-in-finder "os/macos/autoload" nil t)
(+macos--open-with reveal-project-in-finder "Finder" (+macos--open-with reveal-project-in-finder "Finder"
(or (doom-project-root) default-directory)) (or (doom-project-root) default-directory))
;;;###autoload (autoload '+macos/send-to-transmit "tools/macos/autoload" nil t) ;;;###autoload (autoload '+macos/send-to-transmit "os/macos/autoload" nil t)
(+macos--open-with send-to-transmit "Transmit") (+macos--open-with send-to-transmit "Transmit")
;;;###autoload (autoload '+macos/send-cwd-to-transmit "tools/macos/autoload" nil t) ;;;###autoload (autoload '+macos/send-cwd-to-transmit "os/macos/autoload" nil t)
(+macos--open-with send-cwd-to-transmit "Transmit" default-directory) (+macos--open-with send-cwd-to-transmit "Transmit" default-directory)
;;;###autoload (autoload '+macos/send-to-launchbar "tools/macos/autoload" nil t) ;;;###autoload (autoload '+macos/send-to-launchbar "os/macos/autoload" nil t)
(+macos--open-with send-to-launchbar "LaunchBar") (+macos--open-with send-to-launchbar "LaunchBar")
;;;###autoload (autoload '+macos/send-project-to-launchbar "tools/macos/autoload" nil t) ;;;###autoload (autoload '+macos/send-project-to-launchbar "os/macos/autoload" nil t)
(+macos--open-with send-project-to-launchbar "LaunchBar" (+macos--open-with send-project-to-launchbar "LaunchBar"
(or (doom-project-root) default-directory)) (or (doom-project-root) default-directory))
;;;###autoload (autoload '+macos/open-in-iterm "tools/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 open-in-iterm "iTerm" default-directory)

View file

@ -0,0 +1,62 @@
;;; os/macos/config.el -*- lexical-binding: t; -*-
;;
;;; Reasonable defaults for macOS
;; Use spotlight search backend as a default for M-x locate (and helm/ivy
;; variants thereof), since it requires no additional setup.
(setq locate-command "mdfind")
;;
;;; Compatibilty fixes
;; Curse Lion and its sudden but inevitable fullscreen mode!
;; NOTE Meaningless to railwaycat's emacs-mac build
(setq ns-use-native-fullscreen nil)
;; Visit files opened outside of Emacs in existing frame, not a new one
(setq ns-pop-up-frames nil)
;; sane trackpad/mouse scroll settings
(setq mac-redisplay-dont-reset-vscroll t
mac-mouse-wheel-smooth-scroll nil)
;; Sets `ns-transparent-titlebar' and `ns-appearance' frame parameters so window
;; borders will match the enabled theme.
(and (or (daemonp)
(display-graphic-p))
(require 'ns-auto-titlebar nil t)
(ns-auto-titlebar-mode +1))
;; HACK On MacOS, disabling the menu bar makes MacOS treat Emacs as a
;; non-application window -- which means it doesn't automatically capture
;; focus when it is started, among other things. We enable menu-bar-lines
;; there, but we still want it disabled in terminal frames because there it
;; activates an ugly menu bar.
(add-hook! '(window-setup-hook after-make-frame-functions)
(defun doom-init-menu-bar-in-gui-frames-h (&optional frame)
"Re-enable menu-bar-lines in GUI frames."
(when-let (frame (or frame (selected-frame)))
(when (display-graphic-p frame)
(set-frame-parameter frame 'menu-bar-lines 1)))))
;; Integrate with Keychain
(after! auth-source
(pushnew! auth-sources 'macos-keychain-internet 'macos-keychain-generic))
;;
;;; Packages
(use-package! osx-trash
:commands osx-trash-move-file-to-trash
:init
;; Delete files to trash on macOS, as an extra layer of precaution against
;; accidentally deleting wanted files.
(setq delete-by-moving-to-trash t)
;; Lazy load `osx-trash'
(and IS-MAC
(not (fboundp 'system-move-file-to-trash))
(defalias #'system-move-file-to-trash #'osx-trash-move-file-to-trash)))

View file

@ -1,31 +0,0 @@
#+TITLE: tools/macos
#+DATE: February 19, 2017
#+SINCE: v1.3
#+STARTUP: inlineimages nofold
* Table of Contents :TOC_3:noexport:
- [[#description][Description]]
- [[#maintainers][Maintainers]]
- [[#features][Features]]
* Description
This module provides extra functionality for macOS.
** Maintainers
This module has no dedicated maintainers
* Features
This module adds various macOS specific launchers under the SPC o shortcuts.
It also enables keychain as an auth-source. This is used by apps like [[file:../../../modules/app/irc/README.org][irc]] and
[[file:../../../modules/tools/magit/README.org][magit]]'s forge module. For instance, to support GitHub Forge add an internet
password like this to your keychain:
| Field | Value |
|----------+-------------------------|
| Name | api.github.com |
| Kind | Internet password |
| Account | <username>^forge |
| Where | https://api.github.com/ |
| Password | <token> |

View file

@ -1,5 +0,0 @@
;;; tools/macos/config.el -*- lexical-binding: t; -*-
(after! auth-source
(when IS-MAC
(pushnew! auth-sources 'macos-keychain-internet 'macos-keychain-generic)))