summaryrefslogtreecommitdiffstats
path: root/lisp/init-mac.el
blob: b0a278b699003a1cc6ab7dd88161f985cff10251 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
;;; init-mac.el --- configuration specific to macos  -*- lexical-binding:t -*-
;;; Commentary:
;;; Code:

;; use command as meta
(setq mac-command-modifier 'meta)

;; keyboard configuration when not using mac port
(unless (featurep 'mac)
  ;; configure modifiers
  (setq mac-option-modifier 'super)
  (setq ns-function-modifier 'hyper)

  ;; Norwegian mac-keyboard
  (define-key key-translation-map (kbd "s-8") (kbd "["))
  (define-key key-translation-map (kbd "s-(") (kbd "{"))
  (define-key key-translation-map (kbd "s-9") (kbd "]"))
  (define-key key-translation-map (kbd "s-)") (kbd "}"))
  (define-key key-translation-map (kbd "s-7") (kbd "|"))
  (define-key key-translation-map (kbd "s-/") (kbd "\\"))
  (define-key key-translation-map (kbd "M-s-7") (kbd "M-|")))

;; disable native tabs
(setq mac-frame-tabbing nil)

;; remove default mappings for tab bar
(when (featurep 'mac)
  (global-unset-key (kbd "C-<tab>"))
  (global-unset-key (kbd "C-S-<tab>")))

;; don't open files from the workspace in a new frame
(setq ns-pop-up-frames nil)

;; use old-style fullscreen
(setq ns-use-native-fullscreen nil)

;; move deleted files to ~/.Trash
(setq trash-directory "~/.Trash")

;; use paths from shell
(use-package exec-path-from-shell
  :ensure t
  :init (setq exec-path-from-shell-variables '("PATH" "MANPATH" "GOPATH"
                                               "JAVA_HOME" "SSH_AUTH_SOCK"))
  :config (exec-path-from-shell-initialize))

;; use gls if available (which supports --dired option)
(when (executable-find "gls")
  (setq insert-directory-program "gls"))

(provide 'init-mac)

;;; init-mac.el ends here