blob: e4b6599d6b4f96c7a1e3879df3d7123bd056a727 (
plain)
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
|
;;; linear-config.el --- Linear.app integration -*- lexical-binding: t; -*-
;; author: Craig Jennings <c@cjennings.net>
;;; Commentary:
;;
;; Layer: 3 (Domain Workflow).
;; Category: D/P.
;; Load shape: deferred (command-loaded).
;; Top-level side effects: package configuration via use-package.
;; Runtime requires: none.
;; Direct test load: no.
;;
;; Vanilla pearl setup, deliberately kept to exactly what pearl's README
;; documents for a first-time install — no custom keymap, no team default, no
;; lazy-key advice — so it can be dogfooded as the real out-of-box experience.
;; The only deviation from the README is loading from the local checkout
;; (~/code/pearl) instead of a package archive.
;;
;; pearl owns its own keymap. `pearl-mode' turns on automatically in any buffer
;; pearl renders (it carries a `#+LINEAR-SOURCE' header) and binds the whole
;; command surface under `pearl-keymap-prefix' (default "C-; L"). This config
;; binds no global key, so from a non-Linear buffer reach pearl with `M-x'
;; (e.g. `M-x pearl-list-issues' or `M-x pearl-menu'); inside a Linear buffer
;; everything is live under C-; L.
;;
;; Authentication: the Linear personal API key is read from authinfo.gpg. Add:
;; machine api.linear.app login apikey password lin_api_YOURKEYHERE
;; Generate it in Linear: Settings -> Security & access -> Personal API keys.
;;; Code:
(use-package pearl
:ensure nil ;; local checkout, not from an archive
:load-path "~/code/pearl"
:commands (pearl-menu pearl-list-issues pearl-create-issue pearl-run-linear-view)
:custom
(pearl-org-file-path (expand-file-name "gtd/linear.org" org-directory))
;; Optional defaults — uncomment and fill in to skip the prompts. Set them
;; HERE, at init level, not via M-x pearl-set-default-view /
;; pearl-set-default-team: those persist through `customize-save-variable',
;; and this config redirects `custom-file' to a throwaway temp file
;; (system-defaults.el), so a setter's value is discarded on the next
;; restart. These :custom lines re-apply on every startup instead.
;; (pearl-default-view "My active work") ;; the local view `C-; L l' opens
;; (pearl-default-team-id "9fca2cf6-390c-4102-a9ff-f94a4ed823c5") ;; DeepSat SE; skips the team prompt on create / by-project
:config
(setq pearl-api-key
(auth-source-pick-first-password :host "api.linear.app")))
(provide 'linear-config)
;;; linear-config.el ends here
|