feat: Add keybinding stubs
This commit is contained in:
25
users/crumb/programs/emacs/lib/syd-buffers.el
Normal file
25
users/crumb/programs/emacs/lib/syd-buffers.el
Normal file
@@ -0,0 +1,25 @@
|
||||
;;; syd-buffers.el -*- lexical-binding: t; -*-
|
||||
|
||||
(require 'syd-prelude)
|
||||
|
||||
(syd-define-stub
|
||||
syd/kill-all-buffers
|
||||
:desc "Kill all buffers. See `doom/kill-all-buffers'."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/kill-other-buffers
|
||||
:desc "Kill other buffers. See `doom/kill-other-buffers'."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/kill-burried-buffers
|
||||
:desc "Kill burried buffers. See `doom/kill-burried-buffers'."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/save-buffer-as-root
|
||||
:desc "Sudo save buffer as root. See `doom/sudo-save-buffer'"
|
||||
:interactive t)
|
||||
|
||||
(provide 'syd-buffers)
|
||||
50
users/crumb/programs/emacs/lib/syd-file.el
Normal file
50
users/crumb/programs/emacs/lib/syd-file.el
Normal file
@@ -0,0 +1,50 @@
|
||||
;;; syd-file.el -*- lexical-binding: t; -*-
|
||||
|
||||
(require 'syd-prelude)
|
||||
|
||||
(syd-define-stub
|
||||
syd/copy-this-file
|
||||
:desc "Copy current file. See `doom/copy-this-file'."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/delete-this-file
|
||||
:desc "Delete current file. See `doom/delete-this-file'."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/move-this-file
|
||||
:desc "Move current file. See `doom/move-this-file'."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/find-file-under-emacs-user-directory
|
||||
:desc "Find under `emacs-user-directory'. See `doom/find-file-in-private-config'."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/find-file-under-here
|
||||
:desc "Find under CWD. See `+default/find-file-under-here'."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/yank-buffer-path
|
||||
:desc "Yank buffer path."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/find-file-in-emacs-user-directory
|
||||
:desc "Find file in `emacs-user-directory'. See `doom/open-private-config'."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/open-this-file-as-root
|
||||
:desc "Open current file as root. See `doom/sudo-this-file'."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/find-file-as-root
|
||||
:desc "Open current file as root. See `doom/sudo-this-file'."
|
||||
:interactive t)
|
||||
|
||||
(provide 'syd-file)
|
||||
@@ -1,6 +1,6 @@
|
||||
;;; syd-prelude.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; (eval-when-compile (require 'cl-lib))
|
||||
(eval-when-compile (require 'cl-lib))
|
||||
|
||||
(defvar syd-data-dir
|
||||
(or (getenv "EMACS_DATA_DIR")
|
||||
@@ -11,6 +11,14 @@
|
||||
(or (getenv "EMACS_CACHE_DIR")
|
||||
(error "Need $EMACS_CACHE_DIR")))
|
||||
|
||||
(cl-defmacro syd-define-stub
|
||||
(name &key (desc "implement me!") interactive)
|
||||
(let ((todo (format "%s: TODO: %s" name desc)))
|
||||
`(defun ,name (&rest args)
|
||||
,@(if interactive (list '(interactive)) nil)
|
||||
,todo
|
||||
(error ,todo))))
|
||||
|
||||
;; `on.el' provies a collection of utility hooks and functions ported from Doom
|
||||
;; Emacs. The hooks make it easier to speed up Emacs startup by providing
|
||||
;; finer-grained control of the timing at which packages are loaded.
|
||||
|
||||
28
users/crumb/programs/emacs/lib/syd-window.el
Normal file
28
users/crumb/programs/emacs/lib/syd-window.el
Normal file
@@ -0,0 +1,28 @@
|
||||
;;; syd-window.el -*- lexical-binding: t; -*-
|
||||
|
||||
(syd-define-stub
|
||||
syd/window-swap-left
|
||||
:desc "Select left window."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/window-swap-down
|
||||
:desc "Select down window."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/window-swap-up
|
||||
:desc "Select up window."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/window-swap-right
|
||||
:desc "Select right window."
|
||||
:interactive t)
|
||||
|
||||
(syd-define-stub
|
||||
syd/window-maximise
|
||||
:desc "Maximise window"
|
||||
:interactive t)
|
||||
|
||||
(provide 'syd-window)
|
||||
@@ -36,12 +36,10 @@ are active.")
|
||||
(defvar-keymap syd-leader-map
|
||||
:doc "Leader-prefixed commands")
|
||||
|
||||
(defvar-keymap syd-leader-window-map
|
||||
:doc "Window commands")
|
||||
|
||||
(defun syd--initialise-leader ()
|
||||
"Set up the (empty) keymap associated with `syd-leader-key',
|
||||
`syd-localleader-key', `syd-alt-leader-key', and `syd-alt-localleader-key'."
|
||||
(require 'evil)
|
||||
;; Define `syd/leader' as a command corresponding to the prefix map
|
||||
;; `syd-leader-map'.
|
||||
(define-prefix-command 'syd/leader 'syd-leader-map)
|
||||
@@ -54,16 +52,68 @@ are active.")
|
||||
(define-key syd-leader-map [override-state] 'all)
|
||||
;; Finally, we shall bind the damned keys. }:)
|
||||
(let ((map general-override-mode-map))
|
||||
(require 'evil)
|
||||
(evil-define-key* syd-leader-key-states map (kbd syd-leader-key) 'syd/leader)
|
||||
(evil-define-key* syd-alt-leader-key-states map (kbd syd-alt-leader-key) 'syd/leader))
|
||||
(general-override-mode 1))
|
||||
|
||||
(defun syd-keybinds-initialise ()
|
||||
(syd--initialise-leader)
|
||||
(general-define-key
|
||||
|
||||
;;; Buffer
|
||||
(require 'syd-buffers)
|
||||
(general-def
|
||||
:prefix-map 'syd-leader-buffer-map
|
||||
"k" `("Kill buffer" . ,#'kill-current-buffer)
|
||||
"K" `("Kill all buffers" . ,#'syd/kill-all-buffers)
|
||||
"O" `("Kill other buffers" . ,#'syd/kill-other-buffers)
|
||||
"i" `("IBuffer" . ,#'ibuffer)
|
||||
"Z" `("Kill burried buffers" . ,#'syd/kill-burried-buffers)
|
||||
"C" `("Clone (indirect) buffer O/W" . ,#'clone-indirect-buffer-other-window)
|
||||
"c" `("Clone (indirect) buffer" . ,#'clone-indirect-buffer)
|
||||
"u" `("Save buffer as root" . ,#'syd/save-buffer-as-root)
|
||||
"r" `("Revert buffer" . ,#'revert-buffer))
|
||||
|
||||
;;; File
|
||||
(require 'syd-file)
|
||||
(general-def
|
||||
:prefix-map 'syd-leader-file-map
|
||||
"D" `("Delete file" . ,#'syd/delete-this-file)
|
||||
"R" `("Move file" . ,#'syd/move-this-file)
|
||||
"C" `("Copy file" . ,#'syd/copy-this-file)
|
||||
"F" `("Find file under current" . ,#'syd/find-file-under-here)
|
||||
"p" `("Find under Emacs config" . ,#'syd/find-file-under-emacs-user-directory)
|
||||
"P" `("Browse Emacs config" . ,#'syd/find-file-in-emacs-user-directory)
|
||||
"u" `("Find file as root" . ,#'syd/find-file-as-root)
|
||||
"U" `("Open this file as root" . ,#'syd/open-this-file-as-root)
|
||||
"y" `("Yank buffer path" . ,#'syd/yank-buffer-path))
|
||||
|
||||
;;; Window
|
||||
(require 'syd-window)
|
||||
(general-def
|
||||
:prefix-map 'syd-leader-window-maximise-map
|
||||
"m" `("Maximise" . ,#'syd/window-maximise))
|
||||
(general-def
|
||||
:prefix-map 'syd-leader-window-map
|
||||
"h" `("Select window left" . ,#'evil-window-left)
|
||||
"j" `("Select window below" . ,#'evil-window-down)
|
||||
"k" `("Select window above" . ,#'evil-window-up)
|
||||
"l" `("Select window right" . ,#'evil-window-right)
|
||||
"H" `("Swap window left" . ,#'syd/window-swap-left)
|
||||
"J" `("Swap window below" . ,#'syd/window-swap-down)
|
||||
"K" `("Swap window above" . ,#'syd/window-swap-up)
|
||||
"L" `("Swap window right" . ,#'syd/window-swap-right)
|
||||
"T" `("Tear off window" . ,#'tear-off-window)
|
||||
"=" `("Balance windows" . ,#'balance-windows)
|
||||
"m" `("Maximise" . ,syd-leader-window-maximise-map))
|
||||
|
||||
;;; Leader
|
||||
(general-def
|
||||
:keymaps 'syd-leader-map
|
||||
"." #'find-file))
|
||||
"." #'find-file
|
||||
"b" `("Buffer" . ,syd-leader-buffer-map)
|
||||
"w" `("Window" . ,syd-leader-window-map)
|
||||
"f" `("File" . ,syd-leader-file-map)
|
||||
"h" `("Help" . ,help-map)))
|
||||
|
||||
(syd-keybinds-initialise)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user