aboutsummaryrefslogtreecommitdiff
path: root/misc/.config/nyxt/config.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'misc/.config/nyxt/config.lisp')
-rw-r--r--misc/.config/nyxt/config.lisp74
1 files changed, 74 insertions, 0 deletions
diff --git a/misc/.config/nyxt/config.lisp b/misc/.config/nyxt/config.lisp
new file mode 100644
index 0000000..7238e81
--- /dev/null
+++ b/misc/.config/nyxt/config.lisp
@@ -0,0 +1,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
+ )))))