aboutsummaryrefslogtreecommitdiff
path: root/misc/.config/nyxt/config.lisp
blob: 7238e816c6ff6f24845d4300a8900f54eba4aa25 (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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
;;; config.lisp -- My nyxt config

;; Copyright (C) 2023 Free Software Foundation.

;; Author: Yuchen Pei <id@ypei.org>

;; This file is part of dotted.

;; dotted is free software: you can redistribute it and/or modify it
;; under the terms of the GNU Affero General Public License as
;; published by the Free Software Foundation, either version 3 of the
;; License, or (at your option) any later version.

;; dotted is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; Affero General Public License for more details.

;; You should have received a copy of the GNU Affero General Public
;; License along with dotted. If not, see
;; <https://www.gnu.org/licenses/>.

;;; Commentary:

;; My nyxt config.

;;; Code:

(defvar *web-buffer-modes*
  '(:emacs-mode :no-script-mode :blocker-mode))

(define-configuration web-buffer
    ((default-modes `(,@*web-buffer-modes* ,@%slot-value%))))

(define-configuration (:modable-buffer :prompt-buffer :editor-buffer)
    "Set up Emacs keybindings everywhere possible."
  ((default-modes `(:emacs-mode ,@%slot-value%))))

(define-configuration :document-mode
    "Document mode keybindings."
  ((keyscheme-map
    (keymaps:define-keyscheme-map
        "my-document" (list :import %slot-value%)
      nyxt/keyscheme:emacs
      (list
       "B" 'switch-buffer-previous
       "F" 'switch-buffer-next
       "b" 'scroll-left
       "f" 'scroll-right
       "j" 'jump-to-heading
       "g" 'reload-current-buffer
       "k" 'delete-current-buffer
       "n" 'scroll-down
       "o" 'set-url
       "p" 'scroll-up
       "w" 'copy-url
       "<" 'scroll-to-top
       ">" 'scroll-to-bottom
       "C-h x" 'describe-command
       "C-s" :search-buffer
       "C-z" 'switch-buffer
       )))))

(define-configuration :prompt-buffer-mode
    "Prompt buffer mode keybindings."
  ((keyscheme-map
    (keymaps:define-keyscheme-map
        "my-prompt-buffer" (list :import %slot-value%)
      ;; It is important to have the `nyxt/' namespace here
      nyxt/keyscheme:emacs
      (list
       "C-s" 'next-suggestion
       "C-r" 'previous-suggestion
       )))))