aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-03 15:43:48 -0500
committerCraig Jennings <c@cjennings.net>2026-06-03 15:43:48 -0500
commita6cd143209dceb1a3c35f89952c87eeac9bf2133 (patch)
tree6bcb0b4c0a8c0d01da9b4b1fe6a65809e4f7c883 /modules
parentc0f92fbb1bed6275d19edd8ed83d16f9c5ebfdef (diff)
downloaddotemacs-a6cd143209dceb1a3c35f89952c87eeac9bf2133.tar.gz
dotemacs-a6cd143209dceb1a3c35f89952c87eeac9bf2133.zip
feat(linear): add global C-; L prefix and short assignee tags
I bound pearl-prefix-map globally under C-; L with :bind-keymap, so the full command surface is reachable from any buffer instead of only inside a pearl-rendered one or through M-x. The first press autoloads pearl. It's the same map pearl-mode binds in-buffer, so behavior is identical everywhere. I also set pearl-assignee-tag-short, so the assignee @-tag renders as the first name only (@first instead of @first_last), trading disambiguation for a tighter tag line. Both layer onto the prior vanilla setup after dogfooding the out-of-box experience. I updated the commentary to match.
Diffstat (limited to 'modules')
-rw-r--r--modules/linear-config.el23
1 files changed, 15 insertions, 8 deletions
diff --git a/modules/linear-config.el b/modules/linear-config.el
index e4b6599d..8fbae30c 100644
--- a/modules/linear-config.el
+++ b/modules/linear-config.el
@@ -10,18 +10,17 @@
;; 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.
+;; Near-vanilla pearl setup: close to what pearl's README documents for a
+;; first-time install (local checkout instead of a package archive), with two
+;; deliberate tweaks layered on after dogfooding the out-of-box experience — a
+;; global C-; L prefix (see below) and the shorter assignee @-tag.
;;
;; 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.
+;; also binds that same `pearl-prefix-map' globally under C-; L (`:bind-keymap'),
+;; so the full command surface is reachable from any buffer; the first press
+;; autoloads pearl. `M-x pearl-menu' / `M-x pearl-list-issues' still work too.
;;
;; Authentication: the Linear personal API key is read from authinfo.gpg. Add:
;; machine api.linear.app login apikey password lin_api_YOURKEYHERE
@@ -33,8 +32,16 @@
: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)
+ ;; Bind pearl's command map globally under C-; L, so the full surface is
+ ;; reachable from any buffer (not only inside a pearl-rendered one). The
+ ;; first press autoloads pearl; it's the same `pearl-prefix-map' that
+ ;; `pearl-mode' binds in-buffer, so behavior is identical everywhere.
+ :bind-keymap ("C-; L" . pearl-prefix-map)
:custom
(pearl-org-file-path (expand-file-name "gtd/linear.org" org-directory))
+ ;; Shorten the assignee @-tag to the first name only (e.g. @first instead of
+ ;; @first_last), trading disambiguation for a tighter tag line.
+ (pearl-assignee-tag-short t)
;; 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',