aboutsummaryrefslogtreecommitdiff
path: root/misc/.config/nyxt
diff options
context:
space:
mode:
authorYuchen Pei <id@ypei.org>2023-08-14 18:13:32 +1000
committerYuchen Pei <id@ypei.org>2023-08-14 18:13:44 +1000
commitebbb7679fec3f5b880fe4b941470ca80ddc6a220 (patch)
treeaae4074be85d491600a22fb0ddc276c0c042a244 /misc/.config/nyxt
parentc8e22f94fc0fbbb4568b382e6e3ce593a99ad914 (diff)
[nyxt] Add initial nyxt config.
Diffstat (limited to 'misc/.config/nyxt')
-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
+ )))))