;;; config.lisp -- My nyxt config ;; Copyright (C) 2023 Free Software Foundation. ;; Author: Yuchen Pei ;; 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 ;; . ;;; 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 :hint-mode "Set up QWERTY home row as the hint keys." ((hints-alphabet "ASDFGHJKL"))) (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 "i" 'jump-to-heading "g" 'reload-current-buffer "j" 'follow-hint "J" 'follow-hint-new-buffer "k" 'delete-current-buffer "l" 'history-bakcwards "n" 'scroll-down "o" 'set-url "p" 'scroll-up "r" 'history-forwards "w" 'copy-url "<" 'scroll-to-top ">" 'scroll-to-bottom "C-h x" 'describe-command "C-s" :search-buffer "C-z" 'switch-buffer "M-n" 'next-heading "M-p" 'previous-heading ))))) (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 )))))