Move welcome to another file. Random stuff and embark
This commit is contained in:
parent
3ddf540c59
commit
0a5b7aa497
@ -374,7 +374,7 @@ Setup other stuff
|
||||
(add-to-list 'default-frame-alist '(fullscreen . maximized))
|
||||
(add-to-list 'default-frame-alist '(vertical-scroll-bars . nil))
|
||||
|
||||
(add-hook 'text-mode-hook (lambda () (setq fill-column 100) (turn-on-auto-fill)))
|
||||
(add-hook 'text-mode-hook (lambda () (setq fill-column 80) (turn-on-auto-fill)))
|
||||
|
||||
(setq-default display-line-numbers 'relative)
|
||||
(make-variable-buffer-local 'global-hl-line-mode)
|
||||
@ -784,76 +784,6 @@ weren't working, until I randomly saw this in someone's init.el
|
||||
(setq evil-goggles-pulse t)
|
||||
(setq evil-goggles-async-duration 0.55)
|
||||
|
||||
#+end_src
|
||||
** Initial Buffer
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
;; (require 'dashboard)
|
||||
;; (defun dashboard-center-text (start end)
|
||||
;; "Center the text between START and END."
|
||||
;; (save-excursion
|
||||
;; (goto-char start)
|
||||
;; (let ((width 0))
|
||||
;; (while (< (point) end)
|
||||
;; (let* ((line-str (buffer-substring (line-beginning-position) (line-end-position)))
|
||||
;; (line-length (dashboard-str-len line-str)))
|
||||
;; (setq width (max width line-length)))
|
||||
;; (forward-line 1))
|
||||
;; (let ((prefix (propertize " " 'display `(space . (:align-to (- center ,(/ width 2)))))))
|
||||
;; (add-text-properties start end `(line-prefix ,prefix indent-prefix ,prefix))))))
|
||||
|
||||
;; (defun dashboard-insert-center (&rest strings)
|
||||
;; "Insert STRINGS in the center of the buffer."
|
||||
;; (let ((start (point)))
|
||||
;; (apply #'insert strings)
|
||||
;; (dashboard-center-text start (point))))
|
||||
|
||||
(defvar joe/welcome-load-project-map (make-sparse-keymap)
|
||||
"High precedence keymap.")
|
||||
|
||||
(defun joe/welcome-open-project ()
|
||||
"Open the directory at point in dired."
|
||||
(interactive)
|
||||
(let ((path (file-truename (substring-no-properties
|
||||
(thing-at-point 'filename)))))
|
||||
(project-switch-project path)))
|
||||
|
||||
;; (evil-define-key 'normal 'joe/welcome-load-project-map (kbd "RET") #'joe/welcome-open-project)
|
||||
|
||||
(defun load-projects ()
|
||||
(with-temp-buffer
|
||||
(insert-file-contents project-list-file)
|
||||
(goto-char (point-min))
|
||||
(apply #'append (read (current-buffer)))))
|
||||
|
||||
(defun my-dashboard ()
|
||||
"Show Welcome buffer"
|
||||
(with-current-buffer (get-buffer-create "*Welcome*")
|
||||
|
||||
(erase-buffer)
|
||||
(goto-char (point-min))
|
||||
(insert-image (create-image "~/Documents/emacs-alt.png"))
|
||||
(insert "\n\n\n")
|
||||
(insert "Welcome to Emacs!\n\n")
|
||||
;; (dashboard-insert-center "testing this thing out\n\n")
|
||||
(let* ((time-str (emacs-init-time))
|
||||
(time (string-to-number (car (split-string time-str)))))
|
||||
(insert (format "It took %.3f seconds to start up\n\n" time)))
|
||||
(insert "Happy hacking!\n\n")
|
||||
(insert "Projects:\n")
|
||||
(dolist (proj (load-projects))
|
||||
(insert (format "\t%s\n" proj)))
|
||||
;; (insert (propertize (format "\t%s\n" proj) :keymap joe/welcome-load-project-map)))
|
||||
(setq cursor-type nil)
|
||||
(switch-to-buffer (current-buffer))
|
||||
(goto-char 86)
|
||||
(display-line-numbers-mode 0)
|
||||
(olivetti-mode)
|
||||
(read-only-mode +1)
|
||||
(current-buffer)))
|
||||
|
||||
(setq initial-buffer-choice #'my-dashboard)
|
||||
|
||||
#+end_src
|
||||
** Buffers
|
||||
#+begin_src emacs-lisp
|
||||
@ -917,6 +847,14 @@ The theme of `C-x 4` bindings is that they operate on other windows, so this fun
|
||||
(global-set-key (kbd "s-k") #'windmove-up)
|
||||
(global-set-key (kbd "s-j") #'windmove-down)
|
||||
|
||||
;; There's a bug in Gnome where frames are resized to the wrong dimensions
|
||||
(defun joe/resize-frames ()
|
||||
(interactive)
|
||||
(dolist (frame (frame-list))
|
||||
(toggle-frame-maximized frame)
|
||||
(toggle-frame-maximized frame)))
|
||||
|
||||
(global-set-key (kbd "s-<f10>") #'joe/resize-frames)
|
||||
#+end_src
|
||||
|
||||
Ace Window will show a hint if there are more than 2 windows, but I don't really use it
|
||||
@ -986,7 +924,6 @@ Ace Window will show a hint if there are more than 2 windows, but I don't really
|
||||
(add-to-list 'consult-buffer-sources 'beframe-consult-source))
|
||||
|
||||
(beframe-mode +1)
|
||||
|
||||
#+end_src
|
||||
*** Popper
|
||||
|
||||
@ -997,6 +934,7 @@ Ace Window will show a hint if there are more than 2 windows, but I don't really
|
||||
"^\\*vterm\\*" vterm-mode
|
||||
"^\\*Flymake.*" flymake-mode
|
||||
"^\\*Flycheck.*" flycheck-error-list-mode
|
||||
"^\\*Occur\\*$" occur-mode
|
||||
"^\\*lsp-help\\*" lsp-help-mode
|
||||
"^\\*eldoc\\*" special-mode
|
||||
"^\\*ert\\*" ert-results-mode
|
||||
@ -1387,51 +1325,74 @@ Ace Window will show a hint if there are more than 2 windows, but I don't really
|
||||
#+end_src
|
||||
*** Embark
|
||||
#+begin_src emacs-lisp
|
||||
(require 'embark)
|
||||
(require 'embark)
|
||||
|
||||
;; TODO Prot
|
||||
;; 1.) Cannot quickly deleete buffers from the mini buffer with emark
|
||||
;; 2.) switch-to-buffer-other-frame is not working
|
||||
(setq embark-quit-after-action '((kill-buffer . nil)))
|
||||
;; TODO Try using embark to kill this buffer
|
||||
(defun prot-simple-kill-buffer-current (&optional arg)
|
||||
"Kill current buffer.
|
||||
With optional prefix ARG (\\[universal-argument]) delete the
|
||||
buffer's window as well."
|
||||
(interactive "P")
|
||||
(let ((kill-buffer-query-functions nil))
|
||||
(if (and arg (not (one-window-p)))
|
||||
(kill-buffer-and-window)
|
||||
(kill-buffer))))
|
||||
|
||||
(defun embark-which-key-indicator ()
|
||||
"An embark indicator that displays keymaps using which-key.
|
||||
(defun prot-simple-kill-buffer (buffer)
|
||||
"Kill current BUFFER.
|
||||
When called interactively, prompt for BUFFER."
|
||||
(interactive (list (read-buffer "Select buffer: ")))
|
||||
(let ((kill-buffer-query-functions nil))
|
||||
(kill-buffer (or buffer (current-buffer)))))
|
||||
|
||||
(setq embark-quit-after-action '((kill-buffer . nil)))
|
||||
|
||||
;; TODO Add this to display-buffer-alist
|
||||
;; ("\\*Embark Actions\\*"
|
||||
;; (display-buffer-reuse-mode-window display-buffer-at-bottom)
|
||||
;; (window-height . fit-window-to-buffer)
|
||||
;; (window-parameters . ((no-other-window . t)
|
||||
;; (mode-line-format . none))))
|
||||
|
||||
;; TODO Remove the which-key stuff because it seems to be breaking things
|
||||
(defun embark-which-key-indicator ()
|
||||
"An embark indicator that displays keymaps using which-key.
|
||||
The which-key help message will show the type and value of the
|
||||
current target followed by an ellipsis if there are further
|
||||
targets."
|
||||
(lambda (&optional keymap targets prefix)
|
||||
(if (null keymap)
|
||||
(which-key--hide-popup-ignore-command)
|
||||
(which-key--show-keymap
|
||||
(if (eq (plist-get (car targets) :type) 'embark-become)
|
||||
"Become"
|
||||
(format "Act on %s '%s'%s"
|
||||
(plist-get (car targets) :type)
|
||||
(embark--truncate-target (plist-get (car targets) :target))
|
||||
(if (cdr targets) "…" "")))
|
||||
(if prefix
|
||||
(pcase (lookup-key keymap prefix 'accept-default)
|
||||
((and (pred keymapp) km) km)
|
||||
(_ (key-binding prefix 'accept-default)))
|
||||
keymap)
|
||||
nil nil t (lambda (binding)
|
||||
(not (string-suffix-p "-argument" (cdr binding))))))))
|
||||
(lambda (&optional keymap targets prefix)
|
||||
(if (null keymap)
|
||||
(which-key--hide-popup-ignore-command)
|
||||
(which-key--show-keymap
|
||||
(if (eq (plist-get (car targets) :type) 'embark-become)
|
||||
"Become"
|
||||
(format "Act on %s '%s'%s"
|
||||
(plist-get (car targets) :type)
|
||||
(embark--truncate-target (plist-get (car targets) :target))
|
||||
(if (cdr targets) "…" "")))
|
||||
(if prefix
|
||||
(pcase (lookup-key keymap prefix 'accept-default)
|
||||
((and (pred keymapp) km) km)
|
||||
(_ (key-binding prefix 'accept-default)))
|
||||
keymap)
|
||||
nil nil t (lambda (binding)
|
||||
(not (string-suffix-p "-argument" (cdr binding))))))))
|
||||
|
||||
(setq embark-indicators
|
||||
'(embark-which-key-indicator
|
||||
embark-highlight-indicator
|
||||
embark-isearch-highlight-indicator))
|
||||
(setq embark-indicators
|
||||
'(embark-which-key-indicator
|
||||
embark-highlight-indicator
|
||||
embark-isearch-highlight-indicator))
|
||||
|
||||
(defun embark-hide-which-key-indicator (fn &rest args)
|
||||
"Hide the which-key indicator immediately when using the completing-read prompter."
|
||||
(which-key--hide-popup-ignore-command)
|
||||
(let ((embark-indicators
|
||||
(remq #'embark-which-key-indicator embark-indicators)))
|
||||
(apply fn args)))
|
||||
|
||||
(advice-add #'embark-completing-read-prompter
|
||||
:around #'embark-hide-which-key-indicator)
|
||||
(defun embark-hide-which-key-indicator (fn &rest args)
|
||||
"Hide the which-key indicator immediately when using the completing-read prompter."
|
||||
(which-key--hide-popup-ignore-command)
|
||||
(let ((embark-indicators
|
||||
(remq #'embark-which-key-indicator embark-indicators)))
|
||||
(apply fn args)))
|
||||
|
||||
(advice-add #'embark-completing-read-prompter
|
||||
:around #'embark-hide-which-key-indicator)
|
||||
(advice-remove #'embark-completing-read-prompter #'embark-hide-which-key-indicator)
|
||||
#+end_src
|
||||
*** Marginalia
|
||||
#+begin_src emacs-lisp
|
||||
@ -1676,8 +1637,13 @@ startup. Reason we have to call this is so the vterm fucntion can call `vterm--i
|
||||
(setq mono-complete-backend-capf-complete-fn #'eglot-completion-at-point)
|
||||
(setq mono-complete-preview-delay 0.1)
|
||||
|
||||
;; TODO Prot This setting gets lost when creating a new frame
|
||||
(add-to-list 'face-remapping-alist '(mono-complete-preview-face . shadow))
|
||||
;; (add-to-list 'face-remapping-alist '(mono-complete-preview-face . shadow))
|
||||
|
||||
(set-face-attribute 'mono-complete-preview-face nil
|
||||
:foreground 'unspecified
|
||||
:background 'unspecified
|
||||
:inherit 'shadow)
|
||||
|
||||
(mono-complete-mode +1)
|
||||
#+end_src
|
||||
*** Eldoc
|
||||
@ -1923,7 +1889,7 @@ startup. Reason we have to call this is so the vterm fucntion can call `vterm--i
|
||||
(defun joe/sql-mode-hook ()
|
||||
(define-key sql-mode-map (kbd "C-M-h") #'joe/mark-sql-defun)
|
||||
(define-key sql-mode-map (kbd "C-M-x") #'sql-send-pg-function)
|
||||
(define-key sql-mode-map (kbd "<f8>") #'sql-connect))
|
||||
(global-set-key (kbd "<f8>") #'sql-connect))
|
||||
|
||||
(add-hook 'sql-mode-hook #'joe/sql-mode-hook)
|
||||
|
||||
@ -2096,7 +2062,7 @@ and there's no need for a middle-man when it's already been implemented.
|
||||
#+end_src
|
||||
** Magit
|
||||
|
||||
The best git porcelain/client I've ever used. Also kill stray magit buffers left over as explained [[https://manueluberti.eu/emacs/2018/02/17/magit-bury-buffer/][here]]
|
||||
The best git porcelain/client I've ever used. Also kill stray magit buffers left over as explained [[https://manueluberti.eu/2018/02/17/magit-bury-buffer.html][here]]
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(require 'magit)
|
||||
@ -2130,7 +2096,11 @@ The best git porcelain/client I've ever used. Also kill stray magit buffers left
|
||||
|
||||
#+end_src
|
||||
|
||||
** Initial Buffer
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(load-file "/home/joe/Dotfiles/.config/emacs/elisp/welcome.el")
|
||||
#+end_src
|
||||
|
||||
* COMMENT Local variables
|
||||
;; Local Variables:
|
||||
|
@ -3,6 +3,7 @@
|
||||
SETUVAR --export CARGO_HOME:/home/joe/\x2elocal/share/bin/cargo/
|
||||
SETUVAR EDITOR:hx
|
||||
SETUVAR --export LC_COLLATE:C
|
||||
SETUVAR --export --path LD_LIBRARY_PATH:/usr/local/lib
|
||||
SETUVAR --export PYTHONSTARTUP:/etc/python/pythonrc
|
||||
SETUVAR --export RUSTUP_HOME:/home/joe/\x2elocal/share/rustup/
|
||||
SETUVAR XDG_CACHE_HOME:/home/joe/\x2ecache
|
||||
@ -32,6 +33,7 @@ SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrbl
|
||||
SETUVAR fish_color_status:red
|
||||
SETUVAR fish_color_user:brgreen
|
||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||
SETUVAR fish_greeting:
|
||||
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||
SETUVAR fish_pager_color_completion:normal
|
||||
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
||||
|
Loading…
x
Reference in New Issue
Block a user