;;; 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. It is not usable yet - see the part with ;; prompt-buffer-mode binding ;;; 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 ))))) ;;; Does not work: ;;; https://discourse.atlas.engineer/t/hint-prompt-not-showing-up/840 (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" 'nyxt/mode/prompt-buffer:next-suggestion "C-r" 'nyxt/mode/prompt-buffer:previous-suggestion ))))) ;;; Neither does this work ;; (define-configuration :prompt-buffer-mode ;; "Prompt buffer mode keybindings." ;; ((override-map ;; (let ((map (make-keymap "override-map"))) ;; (define-key map ;; "C-s" 'nyxt/mode/prompt-buffer:next-suggestion ;; "C-r" 'nyxt/mode/prompt-buffer:previous-suggestion ;; )))))