71 lines
2.7 KiB
EmacsLisp
71 lines
2.7 KiB
EmacsLisp
;;; core-os-osx.el --- Mac-specific settings
|
|
|
|
(eval-when-compile (require 'core))
|
|
|
|
;; Use a shared clipboard
|
|
(setq x-select-enable-clipboard t
|
|
;; Prefixes: Command = M, Alt = A
|
|
mac-command-modifier 'meta
|
|
mac-option-modifier 'alt
|
|
;;; NOTE These mean nothing to railwaycat's emacs-mac build on OSX
|
|
;; Curse Lion and its sudden but inevitable fullscreen mode!
|
|
ns-use-native-fullscreen nil
|
|
;; Don't open files from the workspace in a new frame
|
|
ns-pop-up-frames nil
|
|
;; smooth scrolling is slow
|
|
mac-mouse-wheel-smooth-scroll nil
|
|
|
|
mouse-wheel-scroll-amount '(2 ((shift) . 6)) ;; one line at a time
|
|
mouse-wheel-progressive-speed nil) ;; don't accelerate scrolling
|
|
|
|
;; fix emacs PATH on OSX (GUI only)
|
|
(when window-system
|
|
(setenv "SHELL" "/usr/local/bin/zsh")
|
|
(setenv "EMACS" "1") ; make sure the world knows
|
|
(setq exec-path (eval-when-compile
|
|
(require 'exec-path-from-shell)
|
|
(exec-path-from-shell-initialize)
|
|
exec-path)))
|
|
|
|
;; OSX Related Plugins ;;;;;;;;;;;;;;;;;
|
|
|
|
(use-package applescript-mode :mode "\\.applescript$")
|
|
|
|
(use-package dash-at-point
|
|
:commands (dash-at-point dash-at-point-with-docset)
|
|
:config
|
|
(mapc (lambda (r) (add-to-list 'dash-at-point-mode-alist r))
|
|
`((java-mode . "java,droid,javafx,grails,groovy,playjava,spring,cvj,processing,javadoc")
|
|
(scss-mode . ,(cdr (assoc 'sass-mode dash-at-point-mode-alist)))
|
|
)))
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(after! evil
|
|
(when (featurep 'ns)
|
|
;; On OSX, stop copying each visual state move to the clipboard:
|
|
;; https://bitbucket.org/lyro/evil/issue/336/osx-visual-state-copies-the-region-on
|
|
;; Most of this code grokked from:
|
|
;; http://stackoverflow.com/questions/15873346/elisp-rename-macro
|
|
(defadvice evil-visual-update-x-selection (around clobber-x-select-text activate)
|
|
(unless (featurep 'ns) ad-do-it))))
|
|
|
|
(defun narf-open-with (&optional app-name path)
|
|
"Send PATH to APP-NAME on OSX."
|
|
(interactive)
|
|
(let* ((path (f-full (s-replace "'" "\\'" (or path (if (eq major-mode 'dired-mode) (dired-get-file-for-visit) (buffer-file-name))))))
|
|
(command (concat "open " (when app-name (concat "-a " (shell-quote-argument app-name))) " '" path "'")))
|
|
(message "Running: %s" command)
|
|
(shell-command command)))
|
|
|
|
(defun narf-switch-to-iterm ()
|
|
(interactive)
|
|
(shell-command "osascript -e 'tell application \"iTerm2\" to activate'" nil))
|
|
|
|
(defun narf-switch-to-iterm-and-cd ()
|
|
(interactive)
|
|
(narf:tmux-chdir nil t)
|
|
(shell-command "osascript -e 'tell application \"iTerm2\" to activate'" nil))
|
|
|
|
(provide 'core-os-osx)
|
|
;;; core-os-osx.el ends here
|