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; -*-
|
;;; syd-prelude.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
;; (eval-when-compile (require 'cl-lib))
|
(eval-when-compile (require 'cl-lib))
|
||||||
|
|
||||||
(defvar syd-data-dir
|
(defvar syd-data-dir
|
||||||
(or (getenv "EMACS_DATA_DIR")
|
(or (getenv "EMACS_DATA_DIR")
|
||||||
@@ -11,6 +11,14 @@
|
|||||||
(or (getenv "EMACS_CACHE_DIR")
|
(or (getenv "EMACS_CACHE_DIR")
|
||||||
(error "Need $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
|
;; `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
|
;; Emacs. The hooks make it easier to speed up Emacs startup by providing
|
||||||
;; finer-grained control of the timing at which packages are loaded.
|
;; 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
|
(defvar-keymap syd-leader-map
|
||||||
:doc "Leader-prefixed commands")
|
:doc "Leader-prefixed commands")
|
||||||
|
|
||||||
(defvar-keymap syd-leader-window-map
|
|
||||||
:doc "Window commands")
|
|
||||||
|
|
||||||
(defun syd--initialise-leader ()
|
(defun syd--initialise-leader ()
|
||||||
"Set up the (empty) keymap associated with `syd-leader-key',
|
"Set up the (empty) keymap associated with `syd-leader-key',
|
||||||
`syd-localleader-key', `syd-alt-leader-key', and `syd-alt-localleader-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
|
;; Define `syd/leader' as a command corresponding to the prefix map
|
||||||
;; `syd-leader-map'.
|
;; `syd-leader-map'.
|
||||||
(define-prefix-command 'syd/leader '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)
|
(define-key syd-leader-map [override-state] 'all)
|
||||||
;; Finally, we shall bind the damned keys. }:)
|
;; Finally, we shall bind the damned keys. }:)
|
||||||
(let ((map general-override-mode-map))
|
(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-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))
|
(evil-define-key* syd-alt-leader-key-states map (kbd syd-alt-leader-key) 'syd/leader))
|
||||||
(general-override-mode 1))
|
(general-override-mode 1))
|
||||||
|
|
||||||
(defun syd-keybinds-initialise ()
|
(defun syd-keybinds-initialise ()
|
||||||
(syd--initialise-leader)
|
(syd--initialise-leader)
|
||||||
(general-define-key
|
|
||||||
:keymaps 'syd-leader-map
|
;;; Buffer
|
||||||
"." #'find-file))
|
(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
|
||||||
|
"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)
|
(syd-keybinds-initialise)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user